text: "use strict";
  var __spreadArrays = (this && this.__spreadArrays) || function () {
      for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
      for (var r = Array(s), k = 0, i = 0; i < il; i++)
          for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
              r[k] = a[j];
      return r;
  };
  var __importDefault = (this && this.__importDefault) || function (mod) {
      return (mod && mod.__esModule) ? mod : { "default": mod };
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var prop_types_1 = require("prop-types");
  var warning_1 = __importDefault(require("warning"));
  function deprecated(propType, defaultVal, alternative) {
      // the rest at the end is need to silence props warning => https://reactjs.org/warnings/dont-call-proptypes.html
      return function (props, propName, componentName) {
          var rest = [];
          for (var _i = 3; _i < arguments.length; _i++) {
              rest[_i - 3] = arguments[_i];
          }
          if (props[propName] !== null && props[propName] !== undefined && props[propName] !== defaultVal) {
              var message = "\"" + propName + "\" prop of \"" + componentName + "\" has been deprecated. Please use \"" + alternative + "\" instead.";
              var testing = process && process.env ? process.env.JEST_WORKER_ID !== undefined : false;
              if (!testing) {
                  warning_1.default(false, message);
              }
          }
          // @ts-ignore
          return propType.apply(void 0, __spreadArrays([props, propName, componentName], rest));
      };
  }
  exports.defaultProps = {
      __forwarededRef: { current: null },
      // RENDER
      limit: 0,
      renderWhenEmpty: null,
      reversed: false,
      renderOnScroll: false,
      wrapperHtmlTag: '',
      // DISPLAY
      display: {
          grid: false,
          gridGap: '',
          gridMinColumnWidth: '',
          row: false,
          rowGap: ''
      },
      displayGrid: false,
      displayRow: false,
      gridGap: '',
      rowGap: '',
      minColumnWidth: '',
      // FILTER
      filterBy: '',
      // GROUPS
      group: {
          by: '',
          limit: 0,
          of: 0,
          reversed: false,
          separator: null,
          separatorAtTheBottom: false,
          sortedBy: '',
          sortBy: '',
          sorted: false,
          sortedCaseInsensitive: false,
          sortCaseInsensitive: false,
          sortedDescending: false,
          sortDescending: false // deprecated
      },
      groupBy: '',
      groupOf: 0,
      groupReversed: false,
      groupSeparator: null,
      groupSeparatorAtTheBottom: false,
      groupSorted: false,
      groupSortedBy: '',
      groupSortedDescending: false,
      groupSortedCaseInsensitive: false,
      showGroupSeparatorAtTheBottom: false,
      // PAGINATION
      pagination: {
          hasMore: false,
          loadMore: null,
          loadingIndicator: null,
          loadingIndicatorPosition: ''
      },
      hasMoreItems: false,
      loadMoreItems: null,
      paginationLoadingIndicator: null,
      paginationLoadingIndicatorPosition: '',
      // SCROLL TO TOP
      scrollToTop: {
          button: null,
          offset: 50,
          padding: 20,
          position: 'bottom right'
      },
      scrollToTopButton: null,
      scrollToTopOffset: 50,
      scrollToTopPadding: 20,
      scrollToTopPosition: 'bottom right',
      // SEARCH
      search: {
          by: '',
          caseInsensitive: false,
          everyWord: false,
          onEveryWord: false,
          minCharactersCount: 0,
          term: ''
      },
      searchBy: '',
      searchCaseInsensitive: false,
      searchOnEveryWord: false,
      searchTerm: '',
      searchMinCharactersCount: 0,
      searchableMinCharactersCount: 0,
      // SORT
      sort: {
          by: '',
          caseInsensitive: false,
          descending: false,
          groupBy: '',
          groupCaseInsensitive: false,
          groupDescending: false // deprecated
      },
      sortBy: '',
      sortCaseInsensitive: false,
      sortDesc: false,
      sortDescending: false,
      sortGroupBy: '',
      sortGroupDesc: false,
      sortGroupCaseInsensitive: false // deprecated
  };
  exports.propTypes = {
      __forwarededRef: prop_types_1.object,
      // RENDER
      list: prop_types_1.oneOfType([prop_types_1.array, prop_types_1.object]).isRequired,
      renderItem: prop_types_1.oneOfType([prop_types_1.func, prop_types_1.node]).isRequired,
      limit: prop_types_1.oneOfType([prop_types_1.number, prop_types_1.string]),
      renderWhenEmpty: prop_types_1.func,
      reversed: prop_types_1.bool,
      renderOnScroll: prop_types_1.bool,
      wrapperHtmlTag: prop_types_1.string,
      // DISPLAY
      display: prop_types_1.shape({
          grid: prop_types_1.bool,
          gridColumnWidth: prop_types_1.string,
          gridGap: prop_types_1.string,
          row: prop_types_1.bool,
          rowGap: prop_types_1.string
      }),
      displayGrid: prop_types_1.bool,
      displayRow: prop_types_1.bool,
      gridGap: prop_types_1.string,
      rowGap: prop_types_1.string,
      minColumnWidth: prop_types_1.string,
      // FILTER
      filterBy: prop_types_1.oneOfType([prop_types_1.func, prop_types_1.string]),
      // GROUPS
      group: prop_types_1.shape({
          by: prop_types_1.oneOfType([prop_types_1.func, prop_types_1.string]),
          limit: deprecated(prop_types_1.number, exports.defaultProps.group.limit, 'group.of'),
          of: prop_types_1.number,
          reversed: prop_types_1.bool,
          separator: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.func, prop_types_1.element]),
          separatorAtTheBottom: prop_types_1.bool,
          sortedBy: prop_types_1.oneOfType([
              prop_types_1.string,
              prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
          ]),
          sortBy: deprecated(prop_types_1.oneOfType([
              prop_types_1.string,
              prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
          ]), exports.defaultProps.group.sortBy, 'sortedBy'),
          sortedCaseInsensitive: prop_types_1.bool,
          sortCaseInsensitive: deprecated(prop_types_1.bool, exports.defaultProps.group.sortCaseInsensitive, 'sortedCaseInsensitive'),
          sortedDescending: prop_types_1.bool,
          sortDescending: deprecated(prop_types_1.bool, exports.defaultProps.group.sortDescending, 'sortedDescending') // deprecated
      }),
      groupBy: prop_types_1.oneOfType([prop_types_1.func, prop_types_1.string]),
      groupOf: prop_types_1.number,
      groupReversed: prop_types_1.bool,
      groupSeparator: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.func, prop_types_1.element]),
      groupSeparatorAtTheBottom: prop_types_1.bool,
      showGroupSeparatorAtTheBottom: deprecated(prop_types_1.bool, exports.defaultProps.showGroupSeparatorAtTheBottom, 'groupSeparatorAtTheBottom'),
      groupSorted: prop_types_1.bool,
      groupSortedBy: prop_types_1.oneOfType([
          prop_types_1.string,
          prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
      ]),
      groupSortedDescending: prop_types_1.bool,
      groupSortedCaseInsensitive: prop_types_1.bool,
      // PAGINATION
      // PAGINATE
      pagination: prop_types_1.shape({
          hasMore: prop_types_1.bool,
          loadMore: prop_types_1.func,
          loadingIndicator: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.func, prop_types_1.element]),
          loadingIndicatorPosition: prop_types_1.string
      }),
      hasMoreItems: prop_types_1.bool,
      loadMoreItems: prop_types_1.func,
      paginationLoadingIndicator: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.func, prop_types_1.element]),
      paginationLoadingIndicatorPosition: prop_types_1.oneOf(['left', 'center', 'right', '']),
      // SCROLL TO TOP
      scrollToTop: prop_types_1.oneOfType([
          prop_types_1.bool,
          prop_types_1.shape({
              button: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.element, prop_types_1.func]),
              offset: prop_types_1.number,
              padding: prop_types_1.number,
              position: prop_types_1.oneOf(['top right', 'top left', 'bottom right', 'bottom left'])
          })
      ]),
      scrollToTopButton: prop_types_1.oneOfType([prop_types_1.node, prop_types_1.element, prop_types_1.func]),
      scrollToTopOffset: prop_types_1.number,
      scrollToTopPadding: prop_types_1.number,
      scrollToTopPosition: prop_types_1.oneOf(['top right', 'top left', 'bottom right', 'bottom left']),
      // SEARCH
      search: prop_types_1.shape({
          by: prop_types_1.oneOfType([
              prop_types_1.func, prop_types_1.string,
              prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool })]))
          ]),
          caseInsensitive: prop_types_1.bool,
          everyWord: deprecated(prop_types_1.bool, exports.defaultProps.search.everyWord, 'search.onEveryWord'),
          onEveryWord: prop_types_1.bool,
          minCharactersCount: prop_types_1.number,
          term: prop_types_1.string
      }),
      searchBy: prop_types_1.oneOfType([
          prop_types_1.func, prop_types_1.string,
          prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool })]))
      ]),
      searchCaseInsensitive: prop_types_1.bool,
      searchOnEveryWord: prop_types_1.bool,
      searchableMinCharactersCount: deprecated(prop_types_1.number, exports.defaultProps.searchableMinCharactersCount, 'searchMinCharactersCount'),
      searchMinCharactersCount: prop_types_1.number,
      searchTerm: prop_types_1.string,
      // SORT
      sort: prop_types_1.oneOfType([
          prop_types_1.bool,
          prop_types_1.shape({
              by: prop_types_1.oneOfType([
                  prop_types_1.string,
                  prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
              ]),
              caseInsensitive: prop_types_1.bool,
              descending: prop_types_1.bool,
              groupBy: prop_types_1.string,
              groupCaseInsensitive: prop_types_1.bool,
              groupDescending: prop_types_1.bool
          })
      ]),
      sortBy: prop_types_1.oneOfType([
          prop_types_1.string,
          prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
      ]),
      sortCaseInsensitive: prop_types_1.bool,
      sortDesc: prop_types_1.bool,
      sortDescending: prop_types_1.bool,
      sortGroupBy: deprecated(prop_types_1.oneOfType([
          prop_types_1.string,
          prop_types_1.arrayOf(prop_types_1.oneOfType([prop_types_1.string, prop_types_1.shape({ by: prop_types_1.string, caseInsensitive: prop_types_1.bool, descending: prop_types_1.bool })]))
      ]), exports.defaultProps.sortGroupBy, 'groupSortedBy'),
      sortGroupDesc: deprecated(prop_types_1.bool, exports.defaultProps.sortGroupDesc, 'groupSortedDescending'),
      sortGroupCaseInsensitive: deprecated(prop_types_1.bool, exports.defaultProps.sortGroupCaseInsensitive, 'Use "groupSeparatorAtTheBottom"') // deprecated
  };
  //# sourceMappingURL=props.js.map