UNPKG

@cimpress/react-components

Version:
39 lines 2.19 kB
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; }; import React from 'react'; import { css, cx } from '@emotion/css'; import * as colors from '../colors'; import cvar from '../theme/cvar'; const ascDirection = 'asc'; const descDirection = 'desc'; const Triangle = ({ up, active, style = {} }) => (React.createElement("div", { style: Object.assign({ width: '0px', height: '0px', borderLeft: '4px solid transparent', borderRight: '4px solid transparent', borderBottom: up ? `4px solid ${active ? colors.alloy : colors.shale}` : 'none', borderTop: up ? 'none' : `4px solid ${active ? colors.alloy : colors.shale}` }, style) })); const TableHeader = (_a) => { var { children, className, sortable, sorted, toggleSort } = _a, rest = __rest(_a, ["children", "className", "sortable", "sorted", "toggleSort"]); const direction = (sorted === null || sorted === void 0 ? void 0 : sorted.desc) ? 'desc' : 'asc'; const rtTh = css ` display: flex; justify-content: space-between; align-items: center; text-transform: uppercase; cursor: ${sortable ? 'pointer' : 'default'}; &:not(:last-child) { border-right: 1px solid ${cvar('color-background')}; } `; return (React.createElement("div", Object.assign({ className: cx(rtTh, className), role: "columnheader", tabIndex: -1 }, rest, { onClick: e => toggleSort && toggleSort(e), onKeyDown: e => e.stopPropagation() }), children, sortable && (React.createElement("div", null, React.createElement(Triangle, { active: direction === ascDirection, up: true }), React.createElement(Triangle, { active: direction === descDirection, style: { marginTop: '2px' } }))))); }; export default TableHeader; //# sourceMappingURL=TableHeader.js.map