UNPKG

violet-paginator

Version:

Display, paginate, sort, filter, and update items from the server. violet-paginator is a complete list management library for react/redux applications.

102 lines (79 loc) 2.52 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.responseProps = responseProps; exports.recordProps = recordProps; exports.configurePageParams = configurePageParams; exports.translate = translate; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var pageParam = 'page', pageSizeParam = 'pageSize', sortParam = 'sort', sortOrderParam = 'sortOrder', useBooleanOrdering = false, totalCountProp = 'total_count', resultsProp = 'results', idProp = 'id'; function responseProps() { return [totalCountProp, resultsProp]; } function recordProps() { return { identifier: idProp }; } function configurePageParams(_ref) { var page = _ref.page, perPage = _ref.perPage, sort = _ref.sort, sortOrder = _ref.sortOrder, sortReverse = _ref.sortReverse, totalCount = _ref.totalCount, results = _ref.results, id = _ref.id; if (page) { pageParam = page; } if (perPage) { pageSizeParam = perPage; } if (sort) { sortParam = sort; } if (sortOrder) { sortOrderParam = sortOrder; } if (totalCount) { totalCountProp = totalCount; } if (results) { resultsProp = results; } if (id) { idProp = id; } useBooleanOrdering = !!sortReverse; } function sortDirection(value) { if (useBooleanOrdering) { return value; } return value ? 'desc' : 'asc'; } function sortParams(paginator) { if (paginator.get('sort')) { var _ref2; return _ref2 = {}, _defineProperty(_ref2, sortParam, paginator.get('sort')), _defineProperty(_ref2, sortOrderParam, sortDirection(paginator.get('sortReverse'))), _ref2; } return {}; } function translate(paginator) { var _extends2; var _paginator$toJS = paginator.toJS(), page = _paginator$toJS.page, pageSize = _paginator$toJS.pageSize, filters = _paginator$toJS.filters; return { query: _extends((_extends2 = {}, _defineProperty(_extends2, pageParam, page), _defineProperty(_extends2, pageSizeParam, pageSize), _extends2), sortParams(paginator), filters) }; }