morse-react-tables
Advanced tools
Comparing version 1.1.3 to 1.1.4
@@ -32,2 +32,13 @@ "use strict"; | ||
}; | ||
var __rest = (this && this.__rest) || function (s, e) { | ||
var t = {}; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) | ||
t[p] = s[p]; | ||
if (s != null && typeof Object.getOwnPropertySymbols === "function") | ||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { | ||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) | ||
t[p[i]] = s[p[i]]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -46,14 +57,15 @@ exports.DatasetTable = void 0; | ||
var DatasetTable = function (props) { | ||
var dataset = props.dataset, sorts = props.sorts, onSortDirectionChange = props.onSortDirectionChange, columns = props.columns, rowRender = props.rowRender, onRowClick = props.onRowClick, rowLinkTo = props.rowLinkTo, footer = props.footer, additionalHeader = props.additionalHeader, tableProps = __rest(props, ["dataset", "sorts", "onSortDirectionChange", "columns", "rowRender", "onRowClick", "rowLinkTo", "footer", "additionalHeader"]); | ||
// Build the collection of headings | ||
var headings = props.columns.map(function (column, index) { | ||
var _a, _b; | ||
var headings = columns.map(function (column, index) { | ||
var _a; | ||
var sort = column instanceof columns_1.BoundDatasetTableColumn && | ||
((_a = props.sorts) === null || _a === void 0 ? void 0 : _a.find(function (sort) { return sort.property === column.propertyName; })); | ||
(sorts === null || sorts === void 0 ? void 0 : sorts.find(function (sort) { return sort.property === column.propertyName; })); | ||
var isSortable = !!sort; | ||
var sortDirection = sort ? sort.direction : undefined; | ||
var handleOnClick = (isSortable || ((_b = column.headingCellProps) === null || _b === void 0 ? void 0 : _b.sortable)) && | ||
var handleOnClick = (isSortable || ((_a = column.headingCellProps) === null || _a === void 0 ? void 0 : _a.sortable)) && | ||
column instanceof columns_1.BoundDatasetTableColumn | ||
? function () { | ||
if (props.onSortDirectionChange) { | ||
props.onSortDirectionChange( | ||
if (onSortDirectionChange) { | ||
onSortDirectionChange( | ||
/** | ||
@@ -71,19 +83,19 @@ * FIXME assertion because the type of | ||
: undefined; | ||
return (react_1.default.createElement(morse_react_1.TableHeaderCell, __assign({ key: "table-cell-cell-" + index, sortable: isSortable, sortDirection: sortDirection, onClick: handleOnClick }, column.headingCellProps), column.heading(props.dataset))); | ||
return (react_1.default.createElement(morse_react_1.TableHeaderCell, __assign({ key: "table-cell-cell-" + index, sortable: isSortable, sortDirection: sortDirection, onClick: handleOnClick }, column.headingCellProps), column.heading(dataset))); | ||
}); | ||
var linkMap = react_1.useMemo(function () { | ||
var map = new Map(); | ||
if (props.rowLinkTo) { | ||
for (var _i = 0, _a = props.dataset; _i < _a.length; _i++) { | ||
var item = _a[_i]; | ||
map.set(item, props.rowLinkTo(item)); | ||
if (rowLinkTo) { | ||
for (var _i = 0, dataset_1 = dataset; _i < dataset_1.length; _i++) { | ||
var item = dataset_1[_i]; | ||
map.set(item, rowLinkTo(item)); | ||
} | ||
} | ||
return map; | ||
}, [props.dataset, props.rowLinkTo]); | ||
}, [dataset, rowLinkTo]); | ||
// Build the collection of rows | ||
var rows = props.dataset.map(function (item, i) { | ||
var rows = dataset.map(function (item, i) { | ||
var linkTo = linkMap.get(item); | ||
// Containing cells | ||
var cells = props.columns.map(function (column, index) { | ||
var cells = columns.map(function (column, index) { | ||
return (react_1.default.createElement(morse_react_1.TableCell, __assign({ key: "table-cell-row-" + index + "-column-" + column.heading }, column.cellProps), linkTo ? (react_1.default.createElement(react_router_dom_1.Link, { style: { | ||
@@ -93,12 +105,12 @@ display: "block", | ||
color: "inherit", | ||
}, to: linkTo }, column.cell(item, props.dataset))) : (column.cell(item, props.dataset)))); | ||
}, to: linkTo }, column.cell(item, dataset))) : (column.cell(item, dataset)))); | ||
}); | ||
// If we have a rowRender prop provided delegate this to the parent | ||
if (props.rowRender) { | ||
return props.rowRender(item, cells, i); | ||
if (rowRender) { | ||
return rowRender(item, cells, i); | ||
} | ||
else { | ||
var handleOnClick = function () { | ||
if (props.onRowClick) { | ||
props.onRowClick(item); | ||
if (onRowClick) { | ||
onRowClick(item); | ||
} | ||
@@ -109,10 +121,10 @@ }; | ||
}); | ||
return (react_1.default.createElement(morse_react_1.Table, __assign({}, props), | ||
return (react_1.default.createElement(morse_react_1.Table, __assign({}, tableProps), | ||
react_1.default.createElement(morse_react_1.TableHead, null, | ||
react_1.default.createElement(morse_react_1.TableRow, null, headings), | ||
props.additionalHeader), | ||
additionalHeader), | ||
react_1.default.createElement(morse_react_1.TableBody, null, rows), | ||
props.footer && react_1.default.createElement(morse_react_1.TableFoot, null, props.footer))); | ||
footer && react_1.default.createElement(morse_react_1.TableFoot, null, footer))); | ||
}; | ||
exports.DatasetTable = DatasetTable; | ||
//# sourceMappingURL=DatasetTable.js.map |
{ | ||
"name": "morse-react-tables", | ||
"version": "1.1.3", | ||
"version": "1.1.4", | ||
"description": "Patterns for building tables", | ||
@@ -41,3 +41,3 @@ "repository": { | ||
], | ||
"gitHead": "ea3ed6f958ce09d8666c1145ae6e28a824b6f819" | ||
"gitHead": "7fb6d915e39624216dc60a5ae699eee4cfeb98b9" | ||
} |
Sorry, the diff of this file is not supported yet
46713
751