devaccel-data-grid
Version:
Dynamic table library.
31 lines • 2.01 kB
JavaScript
import { __assign } from "tslib";
import React from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faEyeSlash, faLock, faLockOpen } from '@fortawesome/free-solid-svg-icons';
import { LIGHT_BLUE, SLATE } from '../types';
var Header = function (_a) {
var _b, _c;
var options = _a.options;
var _d = options.width, width = _d === void 0 ? '180px' : _d;
if ((_b = options.headerOptions) === null || _b === void 0 ? void 0 : _b.headerRender) {
return options.headerOptions.headerRender;
}
var handleLockClick = function (field) {
if (!options.onLockClick) {
throw new Error('Missing onLockClick for lockable column');
}
options.onLockClick(field, options.isLocked);
};
var handleHideClick = function (field) {
if (!options.onHideClick) {
throw new Error('Missing onHideClick for hideable column');
}
options.onHideClick(field);
};
return (React.createElement("div", { style: __assign({ padding: '.5em', display: 'flex', flexDirection: 'row', border: "1px solid ".concat(SLATE), backgroundColor: "".concat(LIGHT_BLUE), minWidth: width, width: width, maxWidth: width, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', textAlign: 'center' }, (_c = options.headerOptions) === null || _c === void 0 ? void 0 : _c.style), className: 'data-header' },
options.canLock && (React.createElement(FontAwesomeIcon, { icon: options.isLocked ? faLockOpen : faLock, color: 'blue', onClick: function () { return handleLockClick(options.field); }, style: { cursor: 'pointer' } })),
React.createElement("p", { style: { margin: 'auto' } }, options.header ? options.header : options.field),
options.canHide && (React.createElement(FontAwesomeIcon, { icon: faEyeSlash, color: 'red', onClick: function () { return handleHideClick(options.field); }, style: { cursor: 'pointer' } }))));
};
export default Header;
//# sourceMappingURL=Header.js.map