@appbuckets/react-ui
Version:
Just Another React UI Framework
91 lines (84 loc) • 2.48 kB
JavaScript
;
var React = require('react');
var clsx = require('clsx');
var ColumnHeader = require('../atoms/ColumnHeader.js');
var RxTable_context = require('../RxTable.context.js');
var AllRowsSelector = require('../atoms/AllRowsSelector.js');
var DataFilterElement = require('../atoms/DataFilterElement.js');
function _interopDefaultLegacy(e) {
return e && typeof e === 'object' && 'default' in e ? e : { default: e };
}
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
},
}
);
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
var clsx__default = /*#__PURE__*/ _interopDefaultLegacy(clsx);
/* --------
* Component Definition
* -------- */
var FiltersRow = function () {
// ----
// Get Context Props
// ----
var _a = RxTable_context.useRxTable(),
classes = _a.classes,
columns = _a.columns,
HeaderRowComponent = _a.Components.HeaderRow,
isDataSelectable = _a.selection.enabled,
styles = _a.styles;
// ----
// Build Classes
// ----
var rowClasses = clsx__default['default'](
classes.FilterRow || classes.HeaderRow,
'filter'
);
// ----
// Return Filter Row
// ----
return React__namespace.createElement(
HeaderRowComponent,
{ className: rowClasses, style: styles.FilterRow || styles.HeaderRow },
columns.current.map(function (column, index) {
return React__namespace.createElement(ColumnHeader, {
key: column.key,
className: isDataSelectable && index === 0 ? 'selector' : undefined,
column: column,
isFilterHeader: true,
overrideContent:
isDataSelectable && index === 0
? React__namespace.createElement(AllRowsSelector, {
key: column.key,
})
: React__namespace.createElement(DataFilterElement, {
columnKey: column.key,
filter: column.filter,
}),
});
})
);
};
FiltersRow.displayName = 'FiltersRow';
module.exports = FiltersRow;