@table-utils/jsx-table
Version:
A simple, accessible table view.
195 lines (159 loc) • 4.64 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var jsxRuntime = require('react/jsx-runtime');
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
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;
}
function _objectSpread2(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;
}
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = _objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
const TableBody = (_ref) => {
let {
as = 'tbody'
} = _ref,
rest = _objectWithoutProperties(_ref, ["as"]);
return React.createElement(as, _objectSpread2({
role: as !== 'tbody' ? 'rowgroup' : undefined
}, rest));
};
const TableHead = (_ref) => {
let {
as = 'thead'
} = _ref,
rest = _objectWithoutProperties(_ref, ["as"]);
return React.createElement(as, _objectSpread2({
role: as !== 'thead' ? 'rowgroup' : undefined
}, rest));
};
const TableRow = (_ref) => {
let {
as = 'tr',
children
} = _ref,
rest = _objectWithoutProperties(_ref, ["as", "children"]);
return React.createElement(as, _objectSpread2({
role: as !== 'tr' ? 'row' : undefined
}, rest), children);
};
const TableCell = (_ref) => {
let {
as = 'td'
} = _ref,
rest = _objectWithoutProperties(_ref, ["as"]);
return React.createElement(as, _objectSpread2({
role: as !== 'td' ? 'cell' : undefined
}, rest));
};
const TableHeadCell = (_ref) => {
let {
as = 'th',
sortable
} = _ref,
rest = _objectWithoutProperties(_ref, ["as", "sortable"]);
const native = as === 'th';
const sort = rest['aria-sort'];
return React.createElement(as, _objectSpread2(_objectSpread2({
role: !native ? 'columnheader' : undefined
}, rest), {}, {
'aria-sort': !native && sortable ? 'none' : sort
}));
};
const TableHeadRow = TableRow;
const TableFoot = (_ref) => {
let {
as = 'tfoot'
} = _ref,
rest = _objectWithoutProperties(_ref, ["as"]);
return jsxRuntime.jsx(TableBody, Object.assign({
as: as,
role: as !== 'tfoot' ? 'rowgroup' : undefined
}, rest), void 0);
};
const Table = (_ref) => {
let {
as = 'table'
} = _ref,
rest = _objectWithoutProperties(_ref, ["as"]);
return React.createElement(as, _objectSpread2({
role: as !== 'table' ? 'table' : undefined
}, rest));
};
Table.Body = TableBody;
Table.Head = TableHead;
Table.HeadRow = TableHeadRow;
Table.HeadCell = TableHeadCell;
Table.Row = TableRow;
Table.Cell = TableCell;
Table.Foot = TableFoot;
exports.Table = Table;
exports.TableBody = TableBody;
exports.TableCell = TableCell;
exports.TableFoot = TableFoot;
exports.TableHead = TableHead;
exports.TableHeadCell = TableHeadCell;
exports.TableHeadRow = TableHeadRow;
exports.TableRow = TableRow;
//# sourceMappingURL=index.js.map
;