UNPKG

grommet

Version:

focus on the essential experience

132 lines 5.95 kB
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import PropTypes from 'prop-types'; import { genericProps } from '../../utils/general-prop-types'; var sizes = ['xxsmall', 'xsmall', 'small', 'medium', 'large', 'xlarge']; var sides = ['horizontal', 'vertical', 'top', 'bottom', 'left', 'right']; var parts = ['header', 'body', 'footer']; var verticalAlign = ['bottom', 'middle', 'top']; var padShapeSides = {}; sides.forEach(function (side) { padShapeSides[side] = PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string]); }); var padShapeParts = {}; parts.forEach(function (part) { padShapeParts[part] = {}; sides.forEach(function (side) { padShapeParts[part][side] = PropTypes.oneOf(sizes); }); }); var backgroundShape = {}; [].concat(parts, ['pinned']).forEach(function (part) { backgroundShape[part] = PropTypes.oneOfType([PropTypes.string, PropTypes.shape({ dark: PropTypes.string, light: PropTypes.string }), PropTypes.arrayOf(PropTypes.string)]); }); var borderTypes = [PropTypes.bool, PropTypes.oneOf(sides), PropTypes.shape({ color: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({ dark: PropTypes.string, light: PropTypes.string })]), side: PropTypes.oneOf(sides), size: PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string]) })]; var borderShape = {}; parts.forEach(function (part) { borderShape[part] = PropTypes.oneOfType(borderTypes); }); var PropType = {}; if (process.env.NODE_ENV !== 'production') { PropType = _extends({}, genericProps, { allowSelectAll: PropTypes.bool, background: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.shape(backgroundShape)]), border: PropTypes.oneOfType([].concat(borderTypes, [PropTypes.shape(borderShape)])), columns: PropTypes.arrayOf(PropTypes.shape({ align: PropTypes.oneOf(['center', 'start', 'end']), aggregate: PropTypes.oneOf(['avg', 'max', 'min', 'sum']), footer: PropTypes.oneOfType([PropTypes.node, PropTypes.shape({ aggregate: PropTypes.bool })]), header: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.shape({ aggregate: PropTypes.bool })]), pin: PropTypes.bool, plain: PropTypes.bool, primary: PropTypes.bool, property: PropTypes.string.isRequired, render: PropTypes.func, search: PropTypes.bool, sortable: PropTypes.bool, size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large', 'xlarge', '1/2', '1/4', '2/4', '3/4', '1/3', '2/3']), PropTypes.string]), units: PropTypes.string, verticalAlign: PropTypes.oneOf(['middle', 'top', 'bottom']) })), data: PropTypes.arrayOf(PropTypes.shape({})), disabled: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), fill: PropTypes.oneOfType([PropTypes.oneOf(['horizontal', 'vertical']), PropTypes.bool]), groupBy: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({ property: PropTypes.string, expand: PropTypes.arrayOf(PropTypes.string), expandable: PropTypes.arrayOf(PropTypes.string), expandLabel: PropTypes.func, select: PropTypes.objectOf(PropTypes.oneOf(['all', 'some', 'none'])), onExpand: PropTypes.func, onSelect: PropTypes.func })]), messages: PropTypes.shape({ ascending: PropTypes.string, collapse: PropTypes.string, collapseAll: PropTypes.string, decrease: PropTypes.string, descending: PropTypes.string, increase: PropTypes.string, expand: PropTypes.string, expandAll: PropTypes.string, resizerAria: PropTypes.string, rows: PropTypes.string, rowsChanged: PropTypes.string, rowsSingle: PropTypes.string, searchBy: PropTypes.string, total: PropTypes.string, totalSingle: PropTypes.string }), onClickRow: PropTypes.oneOfType([PropTypes.func, PropTypes.oneOf(['select'])]), rowDetails: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ render: PropTypes.func.isRequired, expand: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), expandLabel: PropTypes.func, onExpand: PropTypes.func })]), onMore: PropTypes.func, onSearch: PropTypes.func, onSelect: PropTypes.func, onSort: PropTypes.func, onUpdate: PropTypes.func, pad: PropTypes.oneOfType([PropTypes.oneOf(sizes), PropTypes.string, PropTypes.shape(padShapeSides), PropTypes.shape(padShapeParts)]), paginate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]), pin: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['header', 'footer'])]), placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), primaryKey: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), replace: PropTypes.bool, resizeable: PropTypes.bool, rowProps: PropTypes.shape({}), select: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), show: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({ page: PropTypes.number })]), size: PropTypes.oneOfType([PropTypes.oneOf(['small', 'medium', 'large', 'xlarge']), PropTypes.string]), sort: PropTypes.shape({ direction: PropTypes.oneOf(['asc', 'desc']), external: PropTypes.bool, property: PropTypes.string.isRequired }), sortable: PropTypes.bool, step: PropTypes.number, verticalAlign: PropTypes.oneOfType([PropTypes.oneOf(verticalAlign), PropTypes.shape({ header: PropTypes.oneOf(verticalAlign), body: PropTypes.oneOf(verticalAlign), footer: PropTypes.oneOf(verticalAlign) })]) }); } export var DataTablePropTypes = PropType;