'use strict';

Object.defineProperty(exports, "__esModule", {
	value: true
});

var _react = require('react');

var _constants = require('./utils/constants');

var TABLE = _constants.listTypes.TABLE,
    LARGE = _constants.listTypes.LARGE;
exports.default = {
	// <VirtualizedList.Content> elements to configure the content fields
	children: _react.PropTypes.arrayOf(_react.PropTypes.element),
	// The collection items
	collection: _react.PropTypes.arrayOf(_react.PropTypes.object),
	// The id. The sub-ids will be based on the ids as prefix
	id: _react.PropTypes.string,
	/** Function : (collectionItem) => Boolean
  *  This is called to determine if the element is selected.
  *  Note that this is not used/displayed if the selectionToggle props is not passed */
	isSelected: _react.PropTypes.func,
	// The row height in ListGrid rendering
	rowHeight: _react.PropTypes.number,
	/** Function to call on element selection
  *  This determines the display of the selection checkboxes. */
	selectionToggle: _react.PropTypes.func,
	// Function to call on sort change in ListTable rendering (header click)
	sort: _react.PropTypes.func,
	// Content field of the current sort
	sortBy: _react.PropTypes.string,
	// Current sort direction ('ASC' | 'DESC')
	sortDirection: _react.PropTypes.oneOf([_constants.SORT_BY.ASC, _constants.SORT_BY.DESC]),
	// List type ('TABLE' | 'LARGE' | ...)
	type: _react.PropTypes.oneOf([TABLE, LARGE])
};