@jobber/components 4.26.8 → 4.26.9-JOB-75261.10
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/dist/DataTable/Body.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ interface BodyProps<T> {
|
|
|
5
5
|
onRowClick?: (row: Row<T>) => void;
|
|
6
6
|
height?: number;
|
|
7
7
|
emptyState?: ReactNode | ReactNode[];
|
|
8
|
+
loading: boolean;
|
|
8
9
|
}
|
|
9
|
-
export declare function Body<T extends object>({ table, onRowClick, emptyState, }: BodyProps<T>): JSX.Element;
|
|
10
|
+
export declare function Body<T extends object>({ table, onRowClick, emptyState, loading, }: BodyProps<T>): JSX.Element;
|
|
10
11
|
export {};
|
|
@@ -49,5 +49,9 @@ export interface DataTableProps<T> {
|
|
|
49
49
|
* The elements to display when the data table is empty
|
|
50
50
|
*/
|
|
51
51
|
emptyState?: ReactNode | ReactNode[];
|
|
52
|
+
/**
|
|
53
|
+
* When true, shows the loading state of the DataTable
|
|
54
|
+
*/
|
|
55
|
+
loading?: boolean;
|
|
52
56
|
}
|
|
53
|
-
export declare function DataTable<T extends object>({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, }: DataTableProps<T>): JSX.Element;
|
|
57
|
+
export declare function DataTable<T extends object>({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, loading, }: DataTableProps<T>): JSX.Element;
|
|
@@ -4,6 +4,7 @@ interface PaginationProps<T> {
|
|
|
4
4
|
table: Table<T>;
|
|
5
5
|
itemsPerPage?: number[];
|
|
6
6
|
totalItems: number;
|
|
7
|
+
loading: boolean;
|
|
7
8
|
}
|
|
8
|
-
export declare function Pagination<T extends object>({ table, itemsPerPage, totalItems, }: PaginationProps<T>): JSX.Element;
|
|
9
|
+
export declare function Pagination<T extends object>({ table, itemsPerPage, totalItems, loading, }: PaginationProps<T>): JSX.Element;
|
|
9
10
|
export {};
|
package/dist/DataTable/index.js
CHANGED
|
@@ -7,10 +7,12 @@ var classnames = require('classnames');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var jobberHooks = require('@jobber/hooks/useResizeObserver');
|
|
9
9
|
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
10
|
+
var Glimmer = require('../Glimmer-a14ad7fd.js');
|
|
10
11
|
var tslib_es6 = require('../tslib.es6-5b8768b7.js');
|
|
11
12
|
var Option = require('../Option-63267b27.js');
|
|
12
13
|
var Button = require('../Button-7698424c.js');
|
|
13
14
|
var Text = require('../Text-e7ed0974.js');
|
|
15
|
+
require('../Content-a6590328.js');
|
|
14
16
|
require('../FormField-0f880b07.js');
|
|
15
17
|
require('uuid');
|
|
16
18
|
require('react-hook-form');
|
|
@@ -50,14 +52,16 @@ var css_248z$3 = ".m5A5oeRFaMs- {\n position: relative;\n border: calc(16px /
|
|
|
50
52
|
var styles$3 = {"dataTableContainer":"m5A5oeRFaMs-","tableContainer":"cY-5BrIIUg8-","table":"y8xnHe7fwrI-","pinFirstColumn":"t8QYvdtkQXQ-","stickyHeader":"Y21JuHX6fhk-","pinFirstHeaderSortable":"PJEX8dlqCMA-","sortableColumn":"_9ps4aWGs8W0-","clickableRow":"_59XEEB8l5pI-","emptyState":"a2BGGBkY5J8-"};
|
|
51
53
|
styleInject_es.styleInject(css_248z$3);
|
|
52
54
|
|
|
53
|
-
function Body({ table, onRowClick, emptyState, }) {
|
|
55
|
+
function Body({ table, onRowClick, emptyState, loading, }) {
|
|
54
56
|
const bodyRowClasses = classnames__default["default"]({ [styles$3.clickableRow]: !!onRowClick });
|
|
55
57
|
const handleRowClick = React.useCallback((row) => () => {
|
|
56
58
|
if (onRowClick == undefined)
|
|
57
59
|
return;
|
|
58
60
|
onRowClick(row);
|
|
59
61
|
}, [onRowClick]);
|
|
60
|
-
|
|
62
|
+
const loaderRows = table.getState().pagination.pageSize;
|
|
63
|
+
const loaderColumns = table.getAllColumns().length;
|
|
64
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, !loading ? (table.getRowModel().rows.length ? (React__default["default"].createElement("tbody", null, table.getRowModel().rows.map(row => {
|
|
61
65
|
return (React__default["default"].createElement("tr", { key: row.id, onClick: handleRowClick(row), className: bodyRowClasses }, row.getVisibleCells().map(cell => {
|
|
62
66
|
return (React__default["default"].createElement("td", { key: cell.id, style: {
|
|
63
67
|
width: cell.column.getSize(),
|
|
@@ -65,7 +69,8 @@ function Body({ table, onRowClick, emptyState, }) {
|
|
|
65
69
|
maxWidth: cell.column.columnDef.maxSize,
|
|
66
70
|
} }, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext())));
|
|
67
71
|
})));
|
|
68
|
-
}))) : (React__default["default"].createElement("div", { className: classnames__default["default"](styles$3.emptyState) }, emptyState))
|
|
72
|
+
}))) : (React__default["default"].createElement("div", { className: classnames__default["default"](styles$3.emptyState) }, emptyState))) : (React__default["default"].createElement("tbody", null, Array.from(Array(loaderRows).keys()).map(row => (React__default["default"].createElement("tr", { key: row }, Array.from(Array(loaderColumns).keys()).map(arr => (React__default["default"].createElement("td", { key: arr },
|
|
73
|
+
React__default["default"].createElement(Glimmer.Glimmer, null)))))))))));
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
function createTableSettings(data, columns, options) {
|
|
@@ -126,15 +131,14 @@ var styles$2 = {"pagination":"zn0VRVhObt0-","paginationInfo":"_1d4uh90gfSI-","pa
|
|
|
126
131
|
styleInject_es.styleInject(css_248z$2);
|
|
127
132
|
|
|
128
133
|
const defaultItemsPerPageOptions = ["10", "20", "30", "40", "50"];
|
|
129
|
-
function Pagination({ table, itemsPerPage, totalItems, }) {
|
|
134
|
+
function Pagination({ table, itemsPerPage, totalItems, loading, }) {
|
|
130
135
|
const { pageIndex, pageSize } = table.getState().pagination;
|
|
131
136
|
const totalRows = totalItems;
|
|
132
137
|
const firstPosition = pageIndex * pageSize + 1;
|
|
133
138
|
const secondPosition = Math.min(totalRows, pageSize * (pageIndex + 1));
|
|
134
139
|
const itemsPerPageOptions = React.useMemo(() => { var _a; return (_a = itemsPerPage === null || itemsPerPage === void 0 ? void 0 : itemsPerPage.map(item => String(item))) !== null && _a !== void 0 ? _a : defaultItemsPerPageOptions; }, [itemsPerPage]);
|
|
135
140
|
return secondPosition <= 0 ? (React__default["default"].createElement("div", { className: styles$2.pagination },
|
|
136
|
-
React__default["default"].createElement("div", { className: styles$2.paginationInfo },
|
|
137
|
-
React__default["default"].createElement(Text.Text, null, "No items")))) : (React__default["default"].createElement("div", { className: styles$2.pagination },
|
|
141
|
+
React__default["default"].createElement("div", { className: styles$2.paginationInfo }, !loading ? React__default["default"].createElement(Text.Text, null, "No items") : React__default["default"].createElement(Glimmer.Glimmer, { width: 200 })))) : (React__default["default"].createElement("div", { className: styles$2.pagination },
|
|
138
142
|
React__default["default"].createElement("div", { className: styles$2.paginationInfo }, `Showing ${firstPosition}-${secondPosition} of ${totalRows} items`),
|
|
139
143
|
React__default["default"].createElement("div", { className: styles$2.paginationNav },
|
|
140
144
|
React__default["default"].createElement("div", { className: styles$2.paginationSelect },
|
|
@@ -233,7 +237,7 @@ function Header({ table, stickyHeader, sorting, onRowClick, }) {
|
|
|
233
237
|
}))))));
|
|
234
238
|
}
|
|
235
239
|
|
|
236
|
-
function DataTable({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, }) {
|
|
240
|
+
function DataTable({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, loading = false, }) {
|
|
237
241
|
const [ref, { exactWidth }] = jobberHooks.useResizeObserver();
|
|
238
242
|
const tableSettings = createTableSettings(data, columns, {
|
|
239
243
|
pagination,
|
|
@@ -247,7 +251,7 @@ function DataTable({ data, columns, pagination, sorting, height, stickyHeader, p
|
|
|
247
251
|
React__default["default"].createElement("div", { className: styles$3.tableContainer, style: { height }, ref: ref },
|
|
248
252
|
React__default["default"].createElement("table", { className: tableClasses },
|
|
249
253
|
React__default["default"].createElement(Header, { table: table, sorting: sorting, onRowClick: onRowClick, stickyHeader: stickyHeader }),
|
|
250
|
-
React__default["default"].createElement(Body, { table: table, onRowClick: onRowClick, height: height ? height * 0.7 : undefined, emptyState: emptyState }),
|
|
254
|
+
React__default["default"].createElement(Body, { table: table, onRowClick: onRowClick, height: height ? height * 0.7 : undefined, emptyState: emptyState, loading: loading }),
|
|
251
255
|
table.getRowModel().rows.length &&
|
|
252
256
|
exactWidth &&
|
|
253
257
|
exactWidth > jobberHooks.Breakpoints.small ? (React__default["default"].createElement(Footer, { table: table, viewType: "desktop" })) : null)),
|
|
@@ -256,7 +260,7 @@ function DataTable({ data, columns, pagination, sorting, height, stickyHeader, p
|
|
|
256
260
|
exactWidth <= jobberHooks.Breakpoints.small ? (React__default["default"].createElement(Footer, { table: table })) : null,
|
|
257
261
|
pagination && (React__default["default"].createElement(Pagination, { table: table, itemsPerPage: pagination.itemsPerPage, totalItems: pagination.manualPagination
|
|
258
262
|
? pagination.totalItems
|
|
259
|
-
: table.getCoreRowModel().rows.length }))));
|
|
263
|
+
: table.getCoreRowModel().rows.length, loading: loading }))));
|
|
260
264
|
}
|
|
261
265
|
|
|
262
266
|
const mockContainerWidth = (exactWidth) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.26.
|
|
3
|
+
"version": "4.26.9-JOB-75261.10+493a1c3c",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@jobber/design": "^0.44.4",
|
|
23
|
-
"@jobber/formatters": "
|
|
23
|
+
"@jobber/formatters": "^0.2.2",
|
|
24
24
|
"@jobber/hooks": "^2.1.5",
|
|
25
25
|
"@popperjs/core": "^2.0.6",
|
|
26
26
|
"@std-proposal/temporal": "0.0.1",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"> 1%",
|
|
85
85
|
"IE 10"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "493a1c3c084f53371d31038edb0ccb07a2f57cce"
|
|
88
88
|
}
|