UNPKG

@elastic/react-search-ui

Version:

A React library for building search experiences

106 lines (91 loc) 10.3 kB
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; import _inherits from "@babel/runtime/helpers/inherits"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import PropTypes from "prop-types"; import { Component } from "react"; import { withSearch } from ".."; import { Sorting } from "@elastic/react-search-ui-views"; import { SortOption } from "../types"; function findSortOption(sortOptions, sortString) { var _sortString$split = sortString.split("|||"), _sortString$split2 = _slicedToArray(_sortString$split, 2), value = _sortString$split2[0], direction = _sortString$split2[1]; return sortOptions.find(function (option) { return option.value === value && option.direction === direction; }); } function formatValue(sortField, sortDirection) { return "".concat(sortField, "|||").concat(sortDirection); } function formatSelectOption(sortOption) { return { label: sortOption.name, value: formatValue(sortOption.value, sortOption.direction) }; } export var SortingContainer = /*#__PURE__*/ function (_Component) { _inherits(SortingContainer, _Component); function SortingContainer() { _classCallCheck(this, SortingContainer); return _possibleConstructorReturn(this, _getPrototypeOf(SortingContainer).apply(this, arguments)); } _createClass(SortingContainer, [{ key: "render", value: function render() { var _this$props = this.props, className = _this$props.className, label = _this$props.label, setSort = _this$props.setSort, sortDirection = _this$props.sortDirection, sortField = _this$props.sortField, sortOptions = _this$props.sortOptions, view = _this$props.view, rest = _objectWithoutProperties(_this$props, ["className", "label", "setSort", "sortDirection", "sortField", "sortOptions", "view"]); var View = view || Sorting; return View(_objectSpread({ className: className, label: label, onChange: function onChange(o) { var sortOption = findSortOption(sortOptions, o); setSort(sortOption.value, sortOption.direction); }, options: sortOptions.map(formatSelectOption), value: formatValue(sortField, sortDirection) }, rest)); } }]); return SortingContainer; }(Component); _defineProperty(SortingContainer, "propTypes", { // Props className: PropTypes.string, label: PropTypes.string, sortOptions: PropTypes.arrayOf(SortOption).isRequired, view: PropTypes.func, // State sortDirection: PropTypes.oneOf(["asc", "desc", ""]).isRequired, sortField: PropTypes.string.isRequired, // Actions setSort: PropTypes.func.isRequired }); export default withSearch(function (_ref) { var sortDirection = _ref.sortDirection, sortField = _ref.sortField, setSort = _ref.setSort; return { sortDirection: sortDirection, sortField: sortField, setSort: setSort }; })(SortingContainer); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXJzL1NvcnRpbmcuanMiXSwibmFtZXMiOlsiUHJvcFR5cGVzIiwiQ29tcG9uZW50Iiwid2l0aFNlYXJjaCIsIlNvcnRpbmciLCJTb3J0T3B0aW9uIiwiZmluZFNvcnRPcHRpb24iLCJzb3J0T3B0aW9ucyIsInNvcnRTdHJpbmciLCJzcGxpdCIsInZhbHVlIiwiZGlyZWN0aW9uIiwiZmluZCIsIm9wdGlvbiIsImZvcm1hdFZhbHVlIiwic29ydEZpZWxkIiwic29ydERpcmVjdGlvbiIsImZvcm1hdFNlbGVjdE9wdGlvbiIsInNvcnRPcHRpb24iLCJsYWJlbCIsIm5hbWUiLCJTb3J0aW5nQ29udGFpbmVyIiwicHJvcHMiLCJjbGFzc05hbWUiLCJzZXRTb3J0IiwidmlldyIsInJlc3QiLCJWaWV3Iiwib25DaGFuZ2UiLCJvIiwib3B0aW9ucyIsIm1hcCIsInN0cmluZyIsImFycmF5T2YiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm9uZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsU0FBUCxNQUFzQixZQUF0QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsT0FBMUI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLElBQTNCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixnQ0FBeEI7QUFFQSxTQUFTQyxVQUFULFFBQTJCLFVBQTNCOztBQUVBLFNBQVNDLGNBQVQsQ0FBd0JDLFdBQXhCLEVBQXFDQyxVQUFyQyxFQUFpRDtBQUFBLDBCQUNwQkEsVUFBVSxDQUFDQyxLQUFYLENBQWlCLEtBQWpCLENBRG9CO0FBQUE7QUFBQSxNQUN4Q0MsS0FEd0M7QUFBQSxNQUNqQ0MsU0FEaUM7O0FBRS9DLFNBQU9KLFdBQVcsQ0FBQ0ssSUFBWixDQUNMLFVBQUFDLE1BQU07QUFBQSxXQUFJQSxNQUFNLENBQUNILEtBQVAsS0FBaUJBLEtBQWpCLElBQTBCRyxNQUFNLENBQUNGLFNBQVAsS0FBcUJBLFNBQW5EO0FBQUEsR0FERCxDQUFQO0FBR0Q7O0FBRUQsU0FBU0csV0FBVCxDQUFxQkMsU0FBckIsRUFBZ0NDLGFBQWhDLEVBQStDO0FBQzdDLG1CQUFVRCxTQUFWLGdCQUF5QkMsYUFBekI7QUFDRDs7QUFFRCxTQUFTQyxrQkFBVCxDQUE0QkMsVUFBNUIsRUFBd0M7QUFDdEMsU0FBTztBQUNMQyxJQUFBQSxLQUFLLEVBQUVELFVBQVUsQ0FBQ0UsSUFEYjtBQUVMVixJQUFBQSxLQUFLLEVBQUVJLFdBQVcsQ0FBQ0ksVUFBVSxDQUFDUixLQUFaLEVBQW1CUSxVQUFVLENBQUNQLFNBQTlCO0FBRmIsR0FBUDtBQUlEOztBQUNELFdBQWFVLGdCQUFiO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsNkJBY1c7QUFBQSx3QkFVSCxLQUFLQyxLQVZGO0FBQUEsVUFFTEMsU0FGSyxlQUVMQSxTQUZLO0FBQUEsVUFHTEosS0FISyxlQUdMQSxLQUhLO0FBQUEsVUFJTEssT0FKSyxlQUlMQSxPQUpLO0FBQUEsVUFLTFIsYUFMSyxlQUtMQSxhQUxLO0FBQUEsVUFNTEQsU0FOSyxlQU1MQSxTQU5LO0FBQUEsVUFPTFIsV0FQSyxlQU9MQSxXQVBLO0FBQUEsVUFRTGtCLElBUkssZUFRTEEsSUFSSztBQUFBLFVBU0ZDLElBVEU7O0FBWVAsVUFBTUMsSUFBSSxHQUFHRixJQUFJLElBQUlyQixPQUFyQjtBQUVBLGFBQU91QixJQUFJO0FBQ1RKLFFBQUFBLFNBQVMsRUFBVEEsU0FEUztBQUVUSixRQUFBQSxLQUFLLEVBQUxBLEtBRlM7QUFHVFMsUUFBQUEsUUFBUSxFQUFFLGtCQUFBQyxDQUFDLEVBQUk7QUFDYixjQUFNWCxVQUFVLEdBQUdaLGNBQWMsQ0FBQ0MsV0FBRCxFQUFjc0IsQ0FBZCxDQUFqQztBQUNBTCxVQUFBQSxPQUFPLENBQUNOLFVBQVUsQ0FBQ1IsS0FBWixFQUFtQlEsVUFBVSxDQUFDUCxTQUE5QixDQUFQO0FBQ0QsU0FOUTtBQU9UbUIsUUFBQUEsT0FBTyxFQUFFdkIsV0FBVyxDQUFDd0IsR0FBWixDQUFnQmQsa0JBQWhCLENBUEE7QUFRVFAsUUFBQUEsS0FBSyxFQUFFSSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsYUFBWjtBQVJULFNBU05VLElBVE0sRUFBWDtBQVdEO0FBdkNIOztBQUFBO0FBQUEsRUFBc0N4QixTQUF0Qzs7Z0JBQWFtQixnQixlQUNRO0FBQ2pCO0FBQ0FFLEVBQUFBLFNBQVMsRUFBRXRCLFNBQVMsQ0FBQytCLE1BRko7QUFHakJiLEVBQUFBLEtBQUssRUFBRWxCLFNBQVMsQ0FBQytCLE1BSEE7QUFJakJ6QixFQUFBQSxXQUFXLEVBQUVOLFNBQVMsQ0FBQ2dDLE9BQVYsQ0FBa0I1QixVQUFsQixFQUE4QjZCLFVBSjFCO0FBS2pCVCxFQUFBQSxJQUFJLEVBQUV4QixTQUFTLENBQUNrQyxJQUxDO0FBTWpCO0FBQ0FuQixFQUFBQSxhQUFhLEVBQUVmLFNBQVMsQ0FBQ21DLEtBQVYsQ0FBZ0IsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQixFQUFoQixDQUFoQixFQUFxQ0YsVUFQbkM7QUFRakJuQixFQUFBQSxTQUFTLEVBQUVkLFNBQVMsQ0FBQytCLE1BQVYsQ0FBaUJFLFVBUlg7QUFTakI7QUFDQVYsRUFBQUEsT0FBTyxFQUFFdkIsU0FBUyxDQUFDa0MsSUFBVixDQUFlRDtBQVZQLEM7O0FBeUNyQixlQUFlL0IsVUFBVSxDQUFDO0FBQUEsTUFBR2EsYUFBSCxRQUFHQSxhQUFIO0FBQUEsTUFBa0JELFNBQWxCLFFBQWtCQSxTQUFsQjtBQUFBLE1BQTZCUyxPQUE3QixRQUE2QkEsT0FBN0I7QUFBQSxTQUE0QztBQUNwRVIsSUFBQUEsYUFBYSxFQUFiQSxhQURvRTtBQUVwRUQsSUFBQUEsU0FBUyxFQUFUQSxTQUZvRTtBQUdwRVMsSUFBQUEsT0FBTyxFQUFQQTtBQUhvRSxHQUE1QztBQUFBLENBQUQsQ0FBVixDQUlYSCxnQkFKVyxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB3aXRoU2VhcmNoIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBTb3J0aW5nIH0gZnJvbSBcIkBlbGFzdGljL3JlYWN0LXNlYXJjaC11aS12aWV3c1wiO1xuXG5pbXBvcnQgeyBTb3J0T3B0aW9uIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGZpbmRTb3J0T3B0aW9uKHNvcnRPcHRpb25zLCBzb3J0U3RyaW5nKSB7XG4gIGNvbnN0IFt2YWx1ZSwgZGlyZWN0aW9uXSA9IHNvcnRTdHJpbmcuc3BsaXQoXCJ8fHxcIik7XG4gIHJldHVybiBzb3J0T3B0aW9ucy5maW5kKFxuICAgIG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlICYmIG9wdGlvbi5kaXJlY3Rpb24gPT09IGRpcmVjdGlvblxuICApO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRWYWx1ZShzb3J0RmllbGQsIHNvcnREaXJlY3Rpb24pIHtcbiAgcmV0dXJuIGAke3NvcnRGaWVsZH18fHwke3NvcnREaXJlY3Rpb259YDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0U2VsZWN0T3B0aW9uKHNvcnRPcHRpb24pIHtcbiAgcmV0dXJuIHtcbiAgICBsYWJlbDogc29ydE9wdGlvbi5uYW1lLFxuICAgIHZhbHVlOiBmb3JtYXRWYWx1ZShzb3J0T3B0aW9uLnZhbHVlLCBzb3J0T3B0aW9uLmRpcmVjdGlvbilcbiAgfTtcbn1cbmV4cG9ydCBjbGFzcyBTb3J0aW5nQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAvLyBQcm9wc1xuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzb3J0T3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoU29ydE9wdGlvbikuaXNSZXF1aXJlZCxcbiAgICB2aWV3OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvLyBTdGF0ZVxuICAgIHNvcnREaXJlY3Rpb246IFByb3BUeXBlcy5vbmVPZihbXCJhc2NcIiwgXCJkZXNjXCIsIFwiXCJdKS5pc1JlcXVpcmVkLFxuICAgIHNvcnRGaWVsZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8vIEFjdGlvbnNcbiAgICBzZXRTb3J0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGxhYmVsLFxuICAgICAgc2V0U29ydCxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICBzb3J0RmllbGQsXG4gICAgICBzb3J0T3B0aW9ucyxcbiAgICAgIHZpZXcsXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBWaWV3ID0gdmlldyB8fCBTb3J0aW5nO1xuXG4gICAgcmV0dXJuIFZpZXcoe1xuICAgICAgY2xhc3NOYW1lLFxuICAgICAgbGFiZWwsXG4gICAgICBvbkNoYW5nZTogbyA9PiB7XG4gICAgICAgIGNvbnN0IHNvcnRPcHRpb24gPSBmaW5kU29ydE9wdGlvbihzb3J0T3B0aW9ucywgbyk7XG4gICAgICAgIHNldFNvcnQoc29ydE9wdGlvbi52YWx1ZSwgc29ydE9wdGlvbi5kaXJlY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHNvcnRPcHRpb25zLm1hcChmb3JtYXRTZWxlY3RPcHRpb24pLFxuICAgICAgdmFsdWU6IGZvcm1hdFZhbHVlKHNvcnRGaWVsZCwgc29ydERpcmVjdGlvbiksXG4gICAgICAuLi5yZXN0XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFNlYXJjaCgoeyBzb3J0RGlyZWN0aW9uLCBzb3J0RmllbGQsIHNldFNvcnQgfSkgPT4gKHtcbiAgc29ydERpcmVjdGlvbixcbiAgc29ydEZpZWxkLFxuICBzZXRTb3J0XG59KSkoU29ydGluZ0NvbnRhaW5lcik7XG4iXX0=