@algolia/satellite 1.0.0-beta.119 → 1.0.0-beta.123
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/README.md +2 -2
- package/cjs/AutoComplete/AutoComplete.d.ts +6 -2
- package/cjs/AutoComplete/AutoComplete.js +10 -5
- package/cjs/AutoComplete/types.d.ts +5 -0
- package/cjs/AutoComplete/utils.js +1 -1
- package/cjs/Avatars/ApplicationAvatar.d.ts +1 -1
- package/cjs/Avatars/utils.js +1 -1
- package/cjs/Button/styles.d.ts +1 -1
- package/cjs/Button/styles.js +1 -1
- package/cjs/Card/components/CardHeader.d.ts +2 -2
- package/cjs/Checkbox/Checkbox.d.ts +1 -1
- package/cjs/Checkbox/Checkbox.js +1 -0
- package/cjs/ClickAwayContainer/ClickAwayContainer.js +1 -1
- package/cjs/DatePicker/DatePicker/datePickerReducer.js +1 -1
- package/cjs/DatePicker/DatePicker.tailwind.js +7 -2
- package/cjs/DatePicker/DateRangePicker/dateRangePickerReducer.js +1 -1
- package/cjs/DatePicker/DateRangePicker/dateRangePickerTimeRange.js +1 -1
- package/cjs/DatePicker/utils.d.ts +1 -1
- package/cjs/Dropdown/DropdownButton.d.ts +1 -1
- package/cjs/Dropdown/DropdownContext.js +1 -1
- package/cjs/Dropdown/components/DropdownCollapsibleItem/DropdownCollapsibleItem.d.ts +0 -2
- package/cjs/Dropdown/components/DropdownCollapsibleItem/DropdownCollapsibleItem.js +2 -2
- package/cjs/Dropdown/useDropdownItemProps.js +1 -1
- package/cjs/Field/useFieldState.js +1 -1
- package/cjs/Link/Link.d.ts +2 -2
- package/cjs/Pagination/CompactPagination/CompactPagination.js +1 -1
- package/cjs/Pagination/DotPagination/DotPagination.d.ts +2 -1
- package/cjs/Pagination/DotPagination/DotPagination.js +4 -2
- package/cjs/Pagination/Pagination/Pagination.js +3 -0
- package/cjs/ProgressSpinner/ProgressSpinner.js +1 -1
- package/cjs/RadioGroup/RadioButton.d.ts +1 -1
- package/cjs/RadioGroup/RadioGroup.js +1 -1
- package/cjs/RangeSlider/RangeSlider.d.ts +1 -1
- package/cjs/Satellite/SatelliteContext.js +1 -1
- package/cjs/Sidebar/SidebarContext.js +1 -1
- package/cjs/Switch/utils.js +1 -1
- package/cjs/Tables/DataTable/DataTable.d.ts +41 -0
- package/cjs/Tables/DataTable/DataTable.js +280 -0
- package/cjs/Tables/DataTable/DataTable.tailwind.d.ts +5 -0
- package/cjs/Tables/DataTable/DataTable.tailwind.js +23 -0
- package/cjs/Tables/DataTable/components/Body.d.ts +14 -0
- package/cjs/Tables/DataTable/components/Body.js +125 -0
- package/cjs/Tables/DataTable/components/Footer.d.ts +8 -0
- package/cjs/Tables/DataTable/components/Footer.js +81 -0
- package/cjs/Tables/DataTable/components/Header.d.ts +10 -0
- package/cjs/Tables/DataTable/components/Header.js +44 -0
- package/cjs/Tables/DataTable/components/HeaderCell.d.ts +11 -0
- package/cjs/Tables/DataTable/components/HeaderCell.js +61 -0
- package/cjs/Tables/DataTable/components/Loader.d.ts +6 -0
- package/cjs/Tables/DataTable/components/Loader.js +63 -0
- package/cjs/Tables/DataTable/components/index.d.ts +5 -0
- package/cjs/Tables/DataTable/components/index.js +70 -0
- package/cjs/Tables/DataTable/index.d.ts +3 -0
- package/cjs/Tables/DataTable/index.js +46 -0
- package/cjs/Tables/DataTable/types.d.ts +49 -0
- package/cjs/Tables/DataTable/types.js +5 -0
- package/cjs/Tables/DataTable/utils.d.ts +4 -0
- package/cjs/Tables/DataTable/utils.js +32 -0
- package/cjs/{Table → Tables/Table}/Table.d.ts +1 -1
- package/cjs/{Table → Tables/Table}/Table.js +8 -6
- package/cjs/Tables/Table/Table.tailwind.d.ts +5 -0
- package/cjs/{Table → Tables/Table}/Table.tailwind.js +6 -20
- package/cjs/Tables/Table/components/Footer.d.ts +8 -0
- package/cjs/Tables/Table/components/Footer.js +35 -0
- package/cjs/Tables/Table/index.d.ts +2 -0
- package/cjs/{Table → Tables/Table}/index.js +7 -5
- package/cjs/Tables/index.d.ts +3 -0
- package/cjs/Tables/index.js +46 -0
- package/cjs/Tabs/LinkTabs.js +1 -1
- package/cjs/Tag/Tag.d.ts +1 -1
- package/cjs/Toggle/Toggle.d.ts +1 -1
- package/cjs/Tooltip/OverflowTooltipWrapper.js +1 -1
- package/cjs/Tooltip/Tooltip.d.ts +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +12 -12
- package/cjs/styles/brandColors.d.ts +6 -6
- package/cjs/styles/colors.d.ts +9 -9
- package/cjs/styles/helpers/icons.d.ts +12 -0
- package/cjs/styles/helpers/makeTailwindPrefixer.d.ts +1 -1
- package/cjs/styles/tailwind.config.d.ts +24 -33
- package/cjs/styles/tailwind.config.js +1 -1
- package/cjs/styles/zIndexes.d.ts +7 -7
- package/cjs/utils/genericChangeHandler.js +1 -1
- package/cjs/utils/hashCode.js +1 -1
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +15 -7
- package/cjs/utils/isCssPropertySupported.d.ts +1 -1
- package/cjs/utils/isNil.js +1 -1
- package/cjs/utils/matchLocation.d.ts +1 -1
- package/cjs/utils/parseUrl.js +1 -1
- package/cjs/utils/pluralize.js +1 -1
- package/cjs/utils/range.js +1 -1
- package/cjs/utils/toSentenceCase.d.ts +3 -0
- package/cjs/utils/toSentenceCase.js +21 -0
- package/cjs/utils/uniqBy.js +1 -1
- package/cjs/utils/uniqueId.js +1 -1
- package/cjs/utils/useLinkProps.d.ts +1 -1
- package/cjs/utils/useLinkProps.js +1 -1
- package/cjs/utils/useTriggerInputChange.d.ts +2 -1
- package/esm/AutoComplete/AutoComplete.d.ts +6 -2
- package/esm/AutoComplete/AutoComplete.js +10 -5
- package/esm/AutoComplete/types.d.ts +5 -0
- package/esm/Avatars/ApplicationAvatar.d.ts +1 -1
- package/esm/Button/styles.d.ts +1 -1
- package/esm/Card/components/CardHeader.d.ts +2 -2
- package/esm/Checkbox/Checkbox.d.ts +1 -1
- package/esm/Checkbox/Checkbox.js +1 -0
- package/esm/DatePicker/DatePicker.tailwind.js +7 -2
- package/esm/DatePicker/utils.d.ts +1 -1
- package/esm/Dropdown/DropdownButton.d.ts +1 -1
- package/esm/Dropdown/components/DropdownCollapsibleItem/DropdownCollapsibleItem.d.ts +0 -2
- package/esm/Dropdown/components/DropdownCollapsibleItem/DropdownCollapsibleItem.js +1 -1
- package/esm/Link/Link.d.ts +2 -2
- package/esm/Pagination/DotPagination/DotPagination.d.ts +2 -1
- package/esm/Pagination/DotPagination/DotPagination.js +4 -2
- package/esm/Pagination/Pagination/Pagination.js +3 -0
- package/esm/ProgressSpinner/ProgressSpinner.js +1 -1
- package/esm/RadioGroup/RadioButton.d.ts +1 -1
- package/esm/RangeSlider/RangeSlider.d.ts +1 -1
- package/esm/Tables/DataTable/DataTable.d.ts +41 -0
- package/esm/Tables/DataTable/DataTable.js +248 -0
- package/esm/Tables/DataTable/DataTable.tailwind.d.ts +5 -0
- package/esm/Tables/DataTable/DataTable.tailwind.js +21 -0
- package/esm/Tables/DataTable/components/Body.d.ts +14 -0
- package/esm/Tables/DataTable/components/Body.js +106 -0
- package/esm/Tables/DataTable/components/Footer.d.ts +8 -0
- package/esm/Tables/DataTable/components/Footer.js +60 -0
- package/esm/Tables/DataTable/components/Header.d.ts +10 -0
- package/esm/Tables/DataTable/components/Header.js +29 -0
- package/esm/Tables/DataTable/components/HeaderCell.d.ts +11 -0
- package/esm/Tables/DataTable/components/HeaderCell.js +42 -0
- package/esm/Tables/DataTable/components/Loader.d.ts +6 -0
- package/esm/Tables/DataTable/components/Loader.js +40 -0
- package/esm/Tables/DataTable/components/index.d.ts +5 -0
- package/esm/Tables/DataTable/components/index.js +5 -0
- package/esm/Tables/DataTable/index.d.ts +3 -0
- package/esm/Tables/DataTable/index.js +3 -0
- package/esm/Tables/DataTable/types.d.ts +49 -0
- package/esm/Tables/DataTable/types.js +1 -0
- package/esm/Tables/DataTable/utils.d.ts +4 -0
- package/esm/Tables/DataTable/utils.js +14 -0
- package/esm/{Table → Tables/Table}/Table.d.ts +1 -1
- package/esm/{Table → Tables/Table}/Table.js +7 -6
- package/esm/Tables/Table/Table.tailwind.d.ts +5 -0
- package/esm/{Table → Tables/Table}/Table.tailwind.js +6 -20
- package/esm/Tables/Table/components/Footer.d.ts +8 -0
- package/esm/Tables/Table/components/Footer.js +20 -0
- package/esm/Tables/Table/index.d.ts +2 -0
- package/esm/Tables/Table/index.js +2 -0
- package/esm/Tables/index.d.ts +3 -0
- package/esm/Tables/index.js +3 -0
- package/esm/Tag/Tag.d.ts +1 -1
- package/esm/Toggle/Toggle.d.ts +1 -1
- package/esm/Tooltip/Tooltip.d.ts +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/styles/brandColors.d.ts +6 -6
- package/esm/styles/colors.d.ts +9 -9
- package/esm/styles/helpers/icons.d.ts +12 -0
- package/esm/styles/helpers/makeTailwindPrefixer.d.ts +1 -1
- package/esm/styles/tailwind.config.d.ts +24 -33
- package/esm/styles/tailwind.config.js +1 -1
- package/esm/styles/zIndexes.d.ts +7 -7
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +2 -1
- package/esm/utils/isCssPropertySupported.d.ts +1 -1
- package/esm/utils/matchLocation.d.ts +1 -1
- package/esm/utils/toSentenceCase.d.ts +3 -0
- package/esm/utils/toSentenceCase.js +9 -0
- package/esm/utils/useLinkProps.d.ts +1 -1
- package/esm/utils/useTriggerInputChange.d.ts +2 -1
- package/package.json +4 -4
- package/satellite.css +445 -175
- package/satellite.min.css +2 -2
- package/cjs/Table/Table.tailwind.d.ts +0 -5
- package/cjs/Table/index.d.ts +0 -3
- package/esm/Table/Table.tailwind.d.ts +0 -5
- package/esm/Table/index.d.ts +0 -3
- package/esm/Table/index.js +0 -3
@@ -0,0 +1,248 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
2
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
5
|
+
|
6
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
7
|
+
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
9
|
+
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
11
|
+
|
12
|
+
import React, { useEffect, useState } from "react";
|
13
|
+
import compact from "lodash/compact";
|
14
|
+
import get from "lodash/get";
|
15
|
+
import stl from "../../styles/helpers/satellitePrefixer";
|
16
|
+
import Checkbox from "../../Checkbox";
|
17
|
+
import { RadioButton } from "../../RadioGroup";
|
18
|
+
import { toSentenceCase } from "../../utils";
|
19
|
+
import Table from "../Table";
|
20
|
+
import DataTableHeader from "./components/Header";
|
21
|
+
import DataTableFooter from "./components/Footer";
|
22
|
+
import DataTableBody from "./components/Body";
|
23
|
+
import DataTableLoader from "./components/Loader";
|
24
|
+
|
25
|
+
var DEFAULT_GET_ITEM_ID = function DEFAULT_GET_ITEM_ID(_, idx) {
|
26
|
+
return String(idx);
|
27
|
+
};
|
28
|
+
/**
|
29
|
+
* Tables are used to structure content in a grid to make it easier to see relationships and to facilitate understanding.
|
30
|
+
*
|
31
|
+
* #### Do
|
32
|
+
*
|
33
|
+
* - Organize columns and rows based on the needs of your users. To help people read the table, order the columns by importance from left to right, with the key pieces of content opening the row
|
34
|
+
* - Include units of measurement symbols in the header so you don't need to repeat them throughout the columns
|
35
|
+
* - Indicate sorting capabilities of a column with a chevron in the cell header
|
36
|
+
* - Start by columns with highest value to the user, and continue with less important ones
|
37
|
+
*
|
38
|
+
* #### Do not
|
39
|
+
*
|
40
|
+
* - Center align text in cells
|
41
|
+
*
|
42
|
+
* ## Best practices
|
43
|
+
*
|
44
|
+
* - If a cell is empty or unavailable, keep the cell empty to reduce noise and help with legibility.
|
45
|
+
* - Truncate long text to make it fit into a cell. However, choose column width wisely based on expected values, and adjust the table accordingly
|
46
|
+
*/
|
47
|
+
|
48
|
+
|
49
|
+
export var DataTable = function DataTable(_ref) {
|
50
|
+
var data = _ref.data,
|
51
|
+
itemId = _ref.itemId,
|
52
|
+
columns = _ref.columns,
|
53
|
+
onChange = _ref.onChange,
|
54
|
+
_ref$status = _ref.status,
|
55
|
+
status = _ref$status === void 0 ? "success" : _ref$status,
|
56
|
+
noDataContent = _ref.noDataContent,
|
57
|
+
errorContent = _ref.errorContent,
|
58
|
+
_ref$sorting = _ref.sorting,
|
59
|
+
sorting = _ref$sorting === void 0 ? [] : _ref$sorting,
|
60
|
+
_ref$pagination = _ref.pagination,
|
61
|
+
pagination = _ref$pagination === void 0 ? false : _ref$pagination,
|
62
|
+
_ref$selectMode = _ref.selectMode,
|
63
|
+
selectMode = _ref$selectMode === void 0 ? "none" : _ref$selectMode,
|
64
|
+
selection = _ref.selection,
|
65
|
+
onSelectionChange = _ref.onSelectionChange,
|
66
|
+
canSelectItem = _ref.canSelectItem,
|
67
|
+
canHoverRow = _ref.canHoverRow,
|
68
|
+
onRowHoveredChanged = _ref.onRowHoveredChanged;
|
69
|
+
|
70
|
+
if (process.env.NODE_ENV !== "production") {
|
71
|
+
var _selection$length;
|
72
|
+
|
73
|
+
if (itemId === undefined && (sorting.length > 0 || selectMode !== null)) {
|
74
|
+
console.warn("You did not provide a custom `itemId` function, but you have defined `sorting` and/or `selectMode`. This can lead to unexpected results.");
|
75
|
+
}
|
76
|
+
|
77
|
+
if (selectMode === "single" && ((_selection$length = selection === null || selection === void 0 ? void 0 : selection.length) !== null && _selection$length !== void 0 ? _selection$length : 0) > 1) {
|
78
|
+
console.warn("You can only have one selected item at a time in single `selectMode`.");
|
79
|
+
}
|
80
|
+
|
81
|
+
if (pagination && data.length > pagination.itemsPerPage) {
|
82
|
+
console.warn("`pagination.itemsPerPage` (".concat(pagination.itemsPerPage, ") doesn't match `data.length` (").concat(data.length, ")."));
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
var _useState = useState(),
|
87
|
+
_useState2 = _slicedToArray(_useState, 2),
|
88
|
+
hoveredRowId = _useState2[0],
|
89
|
+
setHoveredRowId = _useState2[1];
|
90
|
+
|
91
|
+
useEffect(function () {
|
92
|
+
// Reset hovered row when data changes to avoid inconsistent state
|
93
|
+
setHoveredRowId(undefined);
|
94
|
+
}, [data]);
|
95
|
+
var computedColumns = compact([selectMode === "single" && {
|
96
|
+
id: "singleSelect",
|
97
|
+
accessor: "singleSelect",
|
98
|
+
Header: function Header() {
|
99
|
+
return null;
|
100
|
+
},
|
101
|
+
Cell: function Cell(_ref2) {
|
102
|
+
var row = _ref2.row;
|
103
|
+
return /*#__PURE__*/React.createElement("div", {
|
104
|
+
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex"])))
|
105
|
+
}, /*#__PURE__*/React.createElement(RadioButton, {
|
106
|
+
defaultChecked: row.selected,
|
107
|
+
disabled: !row.selectable,
|
108
|
+
className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
|
109
|
+
}));
|
110
|
+
},
|
111
|
+
className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["w-3"])))
|
112
|
+
}, selectMode === "multi" && {
|
113
|
+
id: "multiSelect",
|
114
|
+
accessor: "multiSelect",
|
115
|
+
Header: function Header() {
|
116
|
+
var unselectableRows = rows.filter(function (row) {
|
117
|
+
return !row.selectable;
|
118
|
+
}).map(function (r) {
|
119
|
+
return r.id;
|
120
|
+
});
|
121
|
+
var selectableRows = rows.filter(function (row) {
|
122
|
+
return row.selectable;
|
123
|
+
}).map(function (r) {
|
124
|
+
return r.id;
|
125
|
+
});
|
126
|
+
var selectionLength = (selection !== null && selection !== void 0 ? selection : []).length;
|
127
|
+
var dataLength = pagination ? pagination.itemsPerPage : data.length;
|
128
|
+
var isChecked = selectionLength === dataLength;
|
129
|
+
return /*#__PURE__*/React.createElement(Checkbox, {
|
130
|
+
"aria-label": "Select all" // Small hack to position the checkbox in the center of the header
|
131
|
+
,
|
132
|
+
className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["absolute mb-2.5"]))),
|
133
|
+
checked: isChecked,
|
134
|
+
indeterminate: selectionLength > 0 && selectionLength !== dataLength,
|
135
|
+
onClick: function onClick() {
|
136
|
+
return isChecked ? onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(unselectableRows) : onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([].concat(_toConsumableArray(unselectableRows), _toConsumableArray(selectableRows)));
|
137
|
+
}
|
138
|
+
});
|
139
|
+
},
|
140
|
+
Cell: function Cell(_ref3) {
|
141
|
+
var row = _ref3.row;
|
142
|
+
return /*#__PURE__*/React.createElement("div", {
|
143
|
+
className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["flex"])))
|
144
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
145
|
+
checked: row.selected,
|
146
|
+
disabled: !row.selectable,
|
147
|
+
className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
|
148
|
+
}));
|
149
|
+
},
|
150
|
+
className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["w-3"])))
|
151
|
+
}].concat(_toConsumableArray(columns.map(function (c) {
|
152
|
+
var _c$Header;
|
153
|
+
|
154
|
+
return typeof c === "string" ? {
|
155
|
+
id: c,
|
156
|
+
accessor: c,
|
157
|
+
Header: function Header() {
|
158
|
+
return /*#__PURE__*/React.createElement("span", null, toSentenceCase(c));
|
159
|
+
}
|
160
|
+
} : _objectSpread(_objectSpread({}, c), {}, {
|
161
|
+
Header: (_c$Header = c.Header) !== null && _c$Header !== void 0 ? _c$Header : function () {
|
162
|
+
return /*#__PURE__*/React.createElement("span", null, toSentenceCase(c.id));
|
163
|
+
}
|
164
|
+
});
|
165
|
+
}))));
|
166
|
+
var getItemIdInternal = itemId || DEFAULT_GET_ITEM_ID;
|
167
|
+
var rows = data.map(function (item, index) {
|
168
|
+
var _ref4;
|
169
|
+
|
170
|
+
var id = typeof getItemIdInternal === "string" ? String(get(item, getItemIdInternal, DEFAULT_GET_ITEM_ID(item, index))) : getItemIdInternal(item, index);
|
171
|
+
var hovered = hoveredRowId === id;
|
172
|
+
var sanitizedSelection = (_ref4 = selectMode === "single" ? selection === null || selection === void 0 ? void 0 : selection.slice(0, 1) : selectMode === "none" ? [] : selection) !== null && _ref4 !== void 0 ? _ref4 : [];
|
173
|
+
var selected = sanitizedSelection.includes(id);
|
174
|
+
var selectable = selectMode !== "none" && (!canSelectItem || canSelectItem(item, index));
|
175
|
+
return {
|
176
|
+
item: item,
|
177
|
+
id: id,
|
178
|
+
hovered: hovered,
|
179
|
+
selected: selected,
|
180
|
+
selectable: selectable
|
181
|
+
};
|
182
|
+
});
|
183
|
+
var internalSorting = computedColumns.map(function (c) {
|
184
|
+
var _sorting$find$, _sorting$find;
|
185
|
+
|
186
|
+
return [c.id, c.sort ? (_sorting$find$ = (_sorting$find = sorting.find(function (_ref5) {
|
187
|
+
var _ref6 = _slicedToArray(_ref5, 1),
|
188
|
+
columnId = _ref6[0];
|
189
|
+
|
190
|
+
return columnId === c.id;
|
191
|
+
})) === null || _sorting$find === void 0 ? void 0 : _sorting$find[1]) !== null && _sorting$find$ !== void 0 ? _sorting$find$ : "desc" : "none"];
|
192
|
+
});
|
193
|
+
|
194
|
+
var onRowHoverChange = function onRowHoverChange(row) {
|
195
|
+
setHoveredRowId(row === null || row === void 0 ? void 0 : row.id);
|
196
|
+
onRowHoveredChanged === null || onRowHoveredChanged === void 0 ? void 0 : onRowHoveredChanged(row);
|
197
|
+
};
|
198
|
+
|
199
|
+
var handleToggleSort = function handleToggleSort(columnId, direction) {
|
200
|
+
var newSorting = internalSorting.map(function (_ref7) {
|
201
|
+
var _ref8 = _slicedToArray(_ref7, 2),
|
202
|
+
colId = _ref8[0],
|
203
|
+
d = _ref8[1];
|
204
|
+
|
205
|
+
return columnId === colId ? [columnId, direction] : [colId, d];
|
206
|
+
});
|
207
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({
|
208
|
+
pagination: pagination,
|
209
|
+
sorting: newSorting
|
210
|
+
});
|
211
|
+
};
|
212
|
+
|
213
|
+
var handlePaginationChange = function handlePaginationChange(dataConfiguration) {
|
214
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange(dataConfiguration);
|
215
|
+
};
|
216
|
+
|
217
|
+
return /*#__PURE__*/React.createElement("div", {
|
218
|
+
className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["relative"])))
|
219
|
+
}, status === "loading" && /*#__PURE__*/React.createElement("div", {
|
220
|
+
className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["absolute bg-white z-10 bg-opacity-50 w-full h-full flex items-center justify-center"])))
|
221
|
+
}, /*#__PURE__*/React.createElement(DataTableLoader, {
|
222
|
+
className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["-mt-12"])))
|
223
|
+
})), /*#__PURE__*/React.createElement(Table, {
|
224
|
+
className: stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["datatable ", " ", ""])), status === "loading" && "pointer-events-none select-none", status === "loading" && data.length === 0 && "h-48"),
|
225
|
+
highlight: false,
|
226
|
+
footer: pagination !== false && /*#__PURE__*/React.createElement(DataTableFooter, {
|
227
|
+
pagination: pagination,
|
228
|
+
onChange: handlePaginationChange
|
229
|
+
})
|
230
|
+
}, /*#__PURE__*/React.createElement(DataTableHeader, {
|
231
|
+
disabled: status !== "success" || rows.length === 0,
|
232
|
+
columns: computedColumns,
|
233
|
+
onToggleSort: handleToggleSort,
|
234
|
+
sorting: internalSorting
|
235
|
+
}), /*#__PURE__*/React.createElement(DataTableBody, {
|
236
|
+
rows: rows,
|
237
|
+
columns: computedColumns,
|
238
|
+
status: status,
|
239
|
+
noDataContent: noDataContent,
|
240
|
+
errorContent: errorContent,
|
241
|
+
selectMode: selectMode,
|
242
|
+
selection: selection,
|
243
|
+
canHoverRow: canHoverRow,
|
244
|
+
onRowHoverChange: onRowHoverChange,
|
245
|
+
onSelectionChange: onSelectionChange
|
246
|
+
})));
|
247
|
+
};
|
248
|
+
export default DataTable;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// purgecss whitelist: th, td, tr
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @type {import('../../tailwind-types').TailwindPlugin}
|
5
|
+
*/
|
6
|
+
var datatablePlugin = function datatablePlugin(_ref) {
|
7
|
+
var addComponents = _ref.addComponents,
|
8
|
+
theme = _ref.theme;
|
9
|
+
addComponents({
|
10
|
+
".datatable": {
|
11
|
+
"tr.row-disabled td": {
|
12
|
+
cursor: "not-allowed"
|
13
|
+
},
|
14
|
+
"tr:not(.row-disabled):hover td": {
|
15
|
+
backgroundColor: theme("colors.grey.50")
|
16
|
+
}
|
17
|
+
}
|
18
|
+
});
|
19
|
+
};
|
20
|
+
|
21
|
+
export default datatablePlugin;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import type { DataTableProps } from "../DataTable";
|
3
|
+
import type { Row, AdvancedColumnDefinition, Status, SelectMode } from "../types";
|
4
|
+
export interface BodyProps<Item> extends Pick<DataTableProps<Item>, "selection" | "onSelectionChange" | "canHoverRow"> {
|
5
|
+
rows: Row<Item>[];
|
6
|
+
status?: Status;
|
7
|
+
noDataContent?: React.ReactNode;
|
8
|
+
errorContent?: React.ReactNode;
|
9
|
+
columns: AdvancedColumnDefinition<Item>[];
|
10
|
+
onRowHoverChange(row: Row<Item> | null): void;
|
11
|
+
selectMode: SelectMode;
|
12
|
+
}
|
13
|
+
export declare const Body: <Item extends {}>({ rows, columns, status, noDataContent, errorContent, selectMode, selection, onSelectionChange, onRowHoverChange, canHoverRow, }: BodyProps<Item>) => JSX.Element;
|
14
|
+
export default Body;
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
2
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
4
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
5
|
+
|
6
|
+
var _templateObject, _templateObject2, _templateObject3;
|
7
|
+
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
9
|
+
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
11
|
+
|
12
|
+
import React from "react";
|
13
|
+
import stl from "../../../styles/helpers/satellitePrefixer";
|
14
|
+
import EmptyState from "../../../EmptyState";
|
15
|
+
import { getCellValue } from "../utils";
|
16
|
+
export var Body = function Body(_ref) {
|
17
|
+
var rows = _ref.rows,
|
18
|
+
columns = _ref.columns,
|
19
|
+
status = _ref.status,
|
20
|
+
noDataContent = _ref.noDataContent,
|
21
|
+
errorContent = _ref.errorContent,
|
22
|
+
selectMode = _ref.selectMode,
|
23
|
+
_ref$selection = _ref.selection,
|
24
|
+
selection = _ref$selection === void 0 ? [] : _ref$selection,
|
25
|
+
onSelectionChange = _ref.onSelectionChange,
|
26
|
+
onRowHoverChange = _ref.onRowHoverChange,
|
27
|
+
_ref$canHoverRow = _ref.canHoverRow,
|
28
|
+
canHoverRow = _ref$canHoverRow === void 0 ? function () {
|
29
|
+
return true;
|
30
|
+
} : _ref$canHoverRow;
|
31
|
+
|
32
|
+
var handleRowSelection = function handleRowSelection(row) {
|
33
|
+
if (!onSelectionChange) return;
|
34
|
+
var rowId = row.id;
|
35
|
+
var isSelected = selection.includes(rowId);
|
36
|
+
var newSelection = isSelected ? selection.filter(function (id) {
|
37
|
+
return id !== rowId;
|
38
|
+
}) : selectMode === "multi" ? [].concat(_toConsumableArray(selection), [rowId]) : [rowId];
|
39
|
+
onSelectionChange(newSelection);
|
40
|
+
};
|
41
|
+
|
42
|
+
var additionalRowProps = function additionalRowProps(row) {
|
43
|
+
return _objectSpread(_objectSpread({}, canHoverRow(row) ? {
|
44
|
+
onMouseEnter: function onMouseEnter() {
|
45
|
+
return onRowHoverChange(row);
|
46
|
+
},
|
47
|
+
onMouseLeave: function onMouseLeave() {
|
48
|
+
return onRowHoverChange(null);
|
49
|
+
},
|
50
|
+
className: "hoverable"
|
51
|
+
} : {
|
52
|
+
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["row-disabled"])))
|
53
|
+
}), row.selectable && {
|
54
|
+
onClick: function onClick() {
|
55
|
+
return handleRowSelection(row);
|
56
|
+
}
|
57
|
+
});
|
58
|
+
};
|
59
|
+
|
60
|
+
if (status === "error") {
|
61
|
+
return /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
62
|
+
colSpan: columns.length
|
63
|
+
}, /*#__PURE__*/React.createElement("span", {
|
64
|
+
className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex justify-center py-6"])))
|
65
|
+
}, errorContent || /*#__PURE__*/React.createElement(EmptyState, {
|
66
|
+
title: "Error",
|
67
|
+
description: "An error occurred while loading data.",
|
68
|
+
centered: true,
|
69
|
+
usageContext: "result"
|
70
|
+
})))));
|
71
|
+
}
|
72
|
+
|
73
|
+
if (rows.length === 0 && status !== "loading") {
|
74
|
+
return /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
75
|
+
colSpan: columns.length
|
76
|
+
}, /*#__PURE__*/React.createElement("span", {
|
77
|
+
className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex justify-center py-6"])))
|
78
|
+
}, noDataContent || /*#__PURE__*/React.createElement(EmptyState, {
|
79
|
+
title: "Empty",
|
80
|
+
description: "There is no data to display",
|
81
|
+
centered: true,
|
82
|
+
usageContext: "result"
|
83
|
+
})))));
|
84
|
+
}
|
85
|
+
|
86
|
+
return /*#__PURE__*/React.createElement("tbody", null, rows.map(function (row, rowIndex) {
|
87
|
+
return /*#__PURE__*/React.createElement("tr", _extends({}, additionalRowProps(row), {
|
88
|
+
key: rowIndex
|
89
|
+
}), columns.map(function (column) {
|
90
|
+
var value = getCellValue(column, row);
|
91
|
+
var Cell = column.Cell;
|
92
|
+
return Cell ? /*#__PURE__*/React.createElement("td", {
|
93
|
+
className: column === null || column === void 0 ? void 0 : column.className,
|
94
|
+
key: column.id
|
95
|
+
}, /*#__PURE__*/React.createElement(Cell, {
|
96
|
+
row: rows[rowIndex],
|
97
|
+
column: column,
|
98
|
+
value: value
|
99
|
+
})) : /*#__PURE__*/React.createElement("td", {
|
100
|
+
className: column === null || column === void 0 ? void 0 : column.className,
|
101
|
+
key: column.id
|
102
|
+
}, value !== null && value !== void 0 ? value : "-");
|
103
|
+
}));
|
104
|
+
}));
|
105
|
+
};
|
106
|
+
export default Body;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { PaginationConfiguration, DataConfiguration } from "../types";
|
3
|
+
export interface FooterProps {
|
4
|
+
pagination: PaginationConfiguration;
|
5
|
+
onChange(dataConfiguration: DataConfiguration): void;
|
6
|
+
}
|
7
|
+
export declare const Footer: ({ pagination, onChange }: FooterProps) => JSX.Element | null;
|
8
|
+
export default Footer;
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
2
|
+
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
4
|
+
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
6
|
+
|
7
|
+
import React from "react";
|
8
|
+
import Pagination, { CompactPagination } from "../../../Pagination";
|
9
|
+
import { isDeterminatePagination, isIndeterminatePagination } from "../utils";
|
10
|
+
export var Footer = function Footer(_ref) {
|
11
|
+
var pagination = _ref.pagination,
|
12
|
+
onChange = _ref.onChange;
|
13
|
+
return isDeterminatePagination(pagination) ? /*#__PURE__*/React.createElement(Pagination, {
|
14
|
+
nbPages: Math.ceil(pagination.totalItemsCount / pagination.itemsPerPage),
|
15
|
+
currentPage: pagination.currentPage,
|
16
|
+
maxButtons: 8,
|
17
|
+
onChange: function (_onChange) {
|
18
|
+
function onChange(_x) {
|
19
|
+
return _onChange.apply(this, arguments);
|
20
|
+
}
|
21
|
+
|
22
|
+
onChange.toString = function () {
|
23
|
+
return _onChange.toString();
|
24
|
+
};
|
25
|
+
|
26
|
+
return onChange;
|
27
|
+
}(function (page) {
|
28
|
+
return onChange({
|
29
|
+
pagination: _objectSpread(_objectSpread({}, pagination), {}, {
|
30
|
+
currentPage: page
|
31
|
+
}),
|
32
|
+
sorting: []
|
33
|
+
});
|
34
|
+
})
|
35
|
+
}) : isIndeterminatePagination(pagination) ? /*#__PURE__*/React.createElement(CompactPagination, {
|
36
|
+
label: "compact",
|
37
|
+
currentPage: pagination.currentPage,
|
38
|
+
showGoToFirstPage: true,
|
39
|
+
nextDisabled: pagination.isLastPage,
|
40
|
+
onChange: function (_onChange2) {
|
41
|
+
function onChange(_x2) {
|
42
|
+
return _onChange2.apply(this, arguments);
|
43
|
+
}
|
44
|
+
|
45
|
+
onChange.toString = function () {
|
46
|
+
return _onChange2.toString();
|
47
|
+
};
|
48
|
+
|
49
|
+
return onChange;
|
50
|
+
}(function (page) {
|
51
|
+
return onChange({
|
52
|
+
pagination: _objectSpread(_objectSpread({}, pagination), {}, {
|
53
|
+
currentPage: page
|
54
|
+
}),
|
55
|
+
sorting: []
|
56
|
+
});
|
57
|
+
})
|
58
|
+
}) : null;
|
59
|
+
};
|
60
|
+
export default Footer;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { AdvancedColumnDefinition, Sorting, SortingDirection } from "../types";
|
3
|
+
export interface HeaderProps<Item> {
|
4
|
+
columns: AdvancedColumnDefinition<Item>[];
|
5
|
+
sorting?: Sorting[];
|
6
|
+
onToggleSort: (columnId: string, direction: SortingDirection) => void;
|
7
|
+
disabled?: boolean;
|
8
|
+
}
|
9
|
+
export declare const Header: <Item extends {}>({ columns, sorting, onToggleSort, disabled }: HeaderProps<Item>) => JSX.Element;
|
10
|
+
export default Header;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
|
+
import React from "react";
|
3
|
+
import HeaderCell from "./HeaderCell";
|
4
|
+
export var Header = function Header(_ref) {
|
5
|
+
var columns = _ref.columns,
|
6
|
+
_ref$sorting = _ref.sorting,
|
7
|
+
sorting = _ref$sorting === void 0 ? [] : _ref$sorting,
|
8
|
+
onToggleSort = _ref.onToggleSort,
|
9
|
+
disabled = _ref.disabled;
|
10
|
+
return /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, columns.map(function (column) {
|
11
|
+
var Header = column.Header;
|
12
|
+
var sortingDirection = sorting.find(function (_ref2) {
|
13
|
+
var _ref3 = _slicedToArray(_ref2, 1),
|
14
|
+
colId = _ref3[0];
|
15
|
+
|
16
|
+
return colId === column.id;
|
17
|
+
}) || [null];
|
18
|
+
return /*#__PURE__*/React.createElement(HeaderCell, {
|
19
|
+
key: column.id,
|
20
|
+
column: column,
|
21
|
+
disabled: disabled,
|
22
|
+
sortingDirection: sortingDirection[1],
|
23
|
+
onToggleSort: onToggleSort
|
24
|
+
}, Header ? /*#__PURE__*/React.createElement(Header, {
|
25
|
+
column: column
|
26
|
+
}) : Header);
|
27
|
+
})));
|
28
|
+
};
|
29
|
+
export default Header;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import type { AdvancedColumnDefinition, SortingDirection } from "../types";
|
3
|
+
export interface HeaderCellProps<Item> extends React.HTMLAttributes<HTMLTableCellElement> {
|
4
|
+
column: AdvancedColumnDefinition<Item>;
|
5
|
+
disabled?: boolean;
|
6
|
+
sortingDirection?: SortingDirection;
|
7
|
+
onToggleSort: (columnId: string, sortingDirection: SortingDirection) => void;
|
8
|
+
children: React.ReactNode;
|
9
|
+
}
|
10
|
+
export declare const HeaderCell: <Item extends {}>({ sortingDirection, onToggleSort, column: { id, className, sort }, disabled, children, ...props }: HeaderCellProps<Item>) => JSX.Element;
|
11
|
+
export default HeaderCell;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
3
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
4
|
+
var _excluded = ["sortingDirection", "onToggleSort", "column", "disabled", "children"];
|
5
|
+
|
6
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
7
|
+
|
8
|
+
import React from "react";
|
9
|
+
import cx from "classnames";
|
10
|
+
import { ChevronDown, ChevronUp } from "react-feather";
|
11
|
+
import stl from "../../../styles/helpers/satellitePrefixer";
|
12
|
+
var iconClassName = stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["h-4 inline ml-1"])));
|
13
|
+
export var HeaderCell = function HeaderCell(_ref) {
|
14
|
+
var _ref$sortingDirection = _ref.sortingDirection,
|
15
|
+
sortingDirection = _ref$sortingDirection === void 0 ? "none" : _ref$sortingDirection,
|
16
|
+
onToggleSort = _ref.onToggleSort,
|
17
|
+
_ref$column = _ref.column,
|
18
|
+
id = _ref$column.id,
|
19
|
+
className = _ref$column.className,
|
20
|
+
_ref$column$sort = _ref$column.sort,
|
21
|
+
sort = _ref$column$sort === void 0 ? false : _ref$column$sort,
|
22
|
+
disabled = _ref.disabled,
|
23
|
+
children = _ref.children,
|
24
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
25
|
+
|
26
|
+
return /*#__PURE__*/React.createElement("th", _extends({}, props, {
|
27
|
+
"aria-sort": sortingDirection === "desc" ? "descending" : sortingDirection === "asc" ? "ascending" : "none",
|
28
|
+
onClick: function onClick() {
|
29
|
+
return sort && !disabled && onToggleSort(id, sortingDirection === "desc" ? "asc" : sortingDirection === "asc" ? "none" : "desc");
|
30
|
+
},
|
31
|
+
className: cx(className, stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["group ", ""])), sort && (disabled ? "cursor-not-allowed" : "cursor-pointer")))
|
32
|
+
}), /*#__PURE__*/React.createElement("span", {
|
33
|
+
className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["inline-flex items-center"])))
|
34
|
+
}, children, sort ? sortingDirection === "desc" ? /*#__PURE__*/React.createElement(ChevronDown, {
|
35
|
+
className: iconClassName
|
36
|
+
}) : sortingDirection === "asc" ? /*#__PURE__*/React.createElement(ChevronUp, {
|
37
|
+
className: iconClassName
|
38
|
+
}) : /*#__PURE__*/React.createElement(ChevronDown, {
|
39
|
+
className: cx(iconClassName, stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["text-grey-300 opacity-0 group-hover:opacity-100"]))))
|
40
|
+
}) : null));
|
41
|
+
};
|
42
|
+
export default HeaderCell;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
3
|
+
|
4
|
+
var _templateObject;
|
5
|
+
|
6
|
+
import React, { useEffect, useState } from "react";
|
7
|
+
import stl from "../../../styles/helpers/satellitePrefixer";
|
8
|
+
import EmptyState from "../../../EmptyState";
|
9
|
+
import ProgressSpinner from "../../../ProgressSpinner";
|
10
|
+
export var Loader = function Loader(_ref) {
|
11
|
+
var className = _ref.className;
|
12
|
+
|
13
|
+
var _useState = useState(false),
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
15
|
+
showLoadMessage = _useState2[0],
|
16
|
+
setShowLoadMessage = _useState2[1];
|
17
|
+
|
18
|
+
useEffect(function () {
|
19
|
+
// See https://github.com/algolia/AlgoliaWeb/blob/develop/_client/src/common/components/AsyncWrapper/AsyncWrapper.tsx#L56
|
20
|
+
var loadTimer = setTimeout(function () {
|
21
|
+
return setShowLoadMessage(true);
|
22
|
+
}, 5000);
|
23
|
+
return function () {
|
24
|
+
clearTimeout(loadTimer);
|
25
|
+
setShowLoadMessage(false);
|
26
|
+
};
|
27
|
+
}, []);
|
28
|
+
return /*#__PURE__*/React.createElement("div", {
|
29
|
+
className: className
|
30
|
+
}, showLoadMessage ? /*#__PURE__*/React.createElement(EmptyState, {
|
31
|
+
usageContext: "result",
|
32
|
+
medallion: /*#__PURE__*/React.createElement("div", {
|
33
|
+
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex justify-center"])))
|
34
|
+
}, /*#__PURE__*/React.createElement(ProgressSpinner, null)),
|
35
|
+
title: "It appears to be taking a while to get your data",
|
36
|
+
description: "Please hold or try again later",
|
37
|
+
centered: true
|
38
|
+
}) : /*#__PURE__*/React.createElement(ProgressSpinner, null));
|
39
|
+
};
|
40
|
+
export default Loader;
|