UNPKG

react-collection-helpers

Version:
1,209 lines (844 loc) 37.3 kB
/*! * react-collection-helpers v1.2.2 * MIT Licensed */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define(["react"], factory); else if(typeof exports === 'object') exports["CollectionHelpers"] = factory(require("react")); else root["CollectionHelpers"] = factory(root["React"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_4__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1); /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _BaseCollectionHelper = __webpack_require__(2); Object.defineProperty(exports, 'BaseCollectionHelper', { enumerable: true, get: function get() { return _interopRequireDefault(_BaseCollectionHelper).default; } }); var _Every = __webpack_require__(8); Object.defineProperty(exports, 'Every', { enumerable: true, get: function get() { return _interopRequireDefault(_Every).default; } }); var _Filter = __webpack_require__(12); Object.defineProperty(exports, 'Filter', { enumerable: true, get: function get() { return _interopRequireDefault(_Filter).default; } }); var _Find = __webpack_require__(14); Object.defineProperty(exports, 'Find', { enumerable: true, get: function get() { return _interopRequireDefault(_Find).default; } }); var _First = __webpack_require__(17); Object.defineProperty(exports, 'First', { enumerable: true, get: function get() { return _interopRequireDefault(_First).default; } }); var _Last = __webpack_require__(19); Object.defineProperty(exports, 'Last', { enumerable: true, get: function get() { return _interopRequireDefault(_Last).default; } }); var _Map = __webpack_require__(21); Object.defineProperty(exports, 'Map', { enumerable: true, get: function get() { return _interopRequireDefault(_Map).default; } }); var _Reverse = __webpack_require__(23); Object.defineProperty(exports, 'Reverse', { enumerable: true, get: function get() { return _interopRequireDefault(_Reverse).default; } }); var _Some = __webpack_require__(25); Object.defineProperty(exports, 'Some', { enumerable: true, get: function get() { return _interopRequireDefault(_Some).default; } }); var _Sort = __webpack_require__(27); Object.defineProperty(exports, 'Sort', { enumerable: true, get: function get() { return _interopRequireDefault(_Sort).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _BaseCollectionHelper = __webpack_require__(3); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_BaseCollectionHelper).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _react = __webpack_require__(4); var _misc = __webpack_require__(5); var _errorMessage = __webpack_require__(6); function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var BaseCollectionHelper = function BaseCollectionHelper(_ref) { var collection = _ref.collection, children = _ref.children, elementType = _ref.elementType, delegated = _objectWithoutProperties(_ref, ['collection', 'children', 'elementType']); if ((0, _react.isValidElement)(children)) { // Check to make sure it's one of ours. if (!(0, _misc.isCollectionHelper)(children)) { throw new Error((0, _errorMessage.unknownChildPassedToCollectionHelper)(children)); } return (0, _react.cloneElement)(children, { collection: collection }); } return (0, _react.createElement)(elementType, delegated, collection.map(children)); }; BaseCollectionHelper.displayName = 'ReactCollectionHelperBase'; BaseCollectionHelper.propTypes = { children: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.element]).isRequired, elementType: _react.PropTypes.oneOfType([_react.PropTypes.string, // For native nodes (eg. 'div') _react.PropTypes.func]).isRequired, collection: _react.PropTypes.array.isRequired }; BaseCollectionHelper.defaultProps = { elementType: 'div' }; exports.default = BaseCollectionHelper; /***/ }, /* 4 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_4__; /***/ }, /* 5 */ /***/ function(module, exports) { 'use strict'; exports.__esModule = true; var isCollectionHelper = exports.isCollectionHelper = function isCollectionHelper(element) { var isNativeNode = typeof element.type === 'string'; var hasNoDisplayName = !element.type.displayName; if (isNativeNode || hasNoDisplayName) { return false; } return !!element.type.displayName.match(/^ReactCollectionHelper/); }; /***/ }, /* 6 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; exports.unknownChildPassedToCollectionHelper = exports.invalidTypeSuppliedAsComparator = exports.invalidTypeSuppliedAsPredicate = undefined; var _constants = __webpack_require__(7); var invalidTypeSuppliedAsPredicate = exports.invalidTypeSuppliedAsPredicate = function invalidTypeSuppliedAsPredicate(_ref) { var type = _ref.type, predicate = _ref.predicate, component = _ref.component; return '\n>> Error, via ' + _constants.MODULE_NAME + ' <<\n\nYou supplied an invalid predicate.\n\nPredicates must either be an object or a function. You provided the following ' + type + ': ' + predicate + '.\n\nCheck the render method of <' + component + '>.\n'; }; var invalidTypeSuppliedAsComparator = exports.invalidTypeSuppliedAsComparator = function invalidTypeSuppliedAsComparator(_ref2) { var type = _ref2.type, comparator = _ref2.comparator, component = _ref2.component; return '\n>> Error, via ' + _constants.MODULE_NAME + ' <<\n\nYou supplied an invalid comparator.\n\nPredicates must either be a string or a function. You provided the following ' + type + ': ' + comparator + '.\n\nCheck the render method of <' + component + '>.\n'; }; var unknownChildPassedToCollectionHelper = exports.unknownChildPassedToCollectionHelper = function unknownChildPassedToCollectionHelper(_ref3) { var children = _ref3.children, parentComponent = _ref3.parentComponent; return '\n>> Error, via ' + _constants.MODULE_NAME + ' <<\n\nYou supplied an unknown child to a Collection Helper.\n\nCollection Helpers take very specific children. Please supply 1 of the 2 following types:\n\n1. a function:\n\n <Filter>\n {item => <div>{item.name}</div>}\n </Filter>\n\n2. another Collection Helper:\n\n <Filter>\n <Sort>\n {item => <div>{item.name}</div>}\n </Sort>\n </Filter>\n\nYou supplied: ' + children + '.\n\nCheck the render method of <' + parentComponent + '>.\n'; }; /***/ }, /* 7 */ /***/ function(module, exports) { 'use strict'; exports.__esModule = true; // TODO: Pull this from package.json? var MODULE_NAME = exports.MODULE_NAME = 'react-collection-helpers'; var DISPLAY_NAME_PREFIX = exports.DISPLAY_NAME_PREFIX = 'ReactCollectionHelper'; /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Every = __webpack_require__(9); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Every).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Every/Every.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _filterBy = __webpack_require__(10); var _filterBy2 = _interopRequireDefault(_filterBy); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // This can't be an SFC because it has the potential to return `null`. var Every = function (_Component) { _inherits(Every, _Component); function Every() { _classCallCheck(this, Every); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Every.prototype.render = function render() { var _props = this.props, collection = _props.collection, predicate = _props.predicate, fallback = _props.fallback, baseProps = _objectWithoutProperties(_props, ['collection', 'predicate', 'fallback']); var filteredCollection = (0, _filterBy2.default)({ collection: collection, predicate: predicate, component: 'Every' }); var isEmpty = collection.length === 0; var notAllMatch = filteredCollection.length < collection.length; if (isEmpty || notAllMatch) { return fallback; } return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: collection }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 28 }, __self: this })); }; return Every; }(_react.Component); Every.displayName = _constants.DISPLAY_NAME_PREFIX + 'Every'; Every.propTypes = { collection: _react.PropTypes.array, predicate: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.object]), fallback: _react.PropTypes.element }; Every.defaultProps = { // Default to an always-true predicate, so it can be used to check for non- // empty collections. predicate: function predicate() { return true; }, fallback: null }; exports.default = Every; /***/ }, /* 10 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _applyPredicateToCollectionWith = __webpack_require__(11); var _applyPredicateToCollectionWith2 = _interopRequireDefault(_applyPredicateToCollectionWith); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function efficientFilter(collection, predicate) { var matches = []; for (var i = 0; i < collection.length; i += 1) { if (predicate(collection[i])) { matches.push(collection[i]); } } return matches; } exports.default = (0, _applyPredicateToCollectionWith2.default)(efficientFilter); /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.default = applyPredicateToCollectionWith; var _errorMessage = __webpack_require__(6); function applyPredicateToCollectionWith(matcher) { return function (_ref) { var collection = _ref.collection, predicate = _ref.predicate, component = _ref.component; // For now, we don't accept predicates that aren't objects or functions. var type = Array.isArray(predicate) ? 'array' : typeof predicate === 'undefined' ? 'undefined' : _typeof(predicate); switch (type) { case 'function': return matcher(collection, predicate); case 'object': return matcher(collection, function (item) { return Object.keys(predicate).every(function (key) { return predicate[key] === item[key]; }); }); default: throw new Error((0, _errorMessage.invalidTypeSuppliedAsPredicate)({ type: type, predicate: predicate, component: component })); } }; } /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Filter = __webpack_require__(13); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Filter).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Filter/Filter.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _filterBy = __webpack_require__(10); var _filterBy2 = _interopRequireDefault(_filterBy); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Filter = function Filter(_ref) { var collection = _ref.collection, predicate = _ref.predicate, baseProps = _objectWithoutProperties(_ref, ['collection', 'predicate']); var filteredCollection = (0, _filterBy2.default)({ collection: collection, predicate: predicate, component: 'Filter' }); return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: filteredCollection }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 17 }, __self: undefined })); }; Filter.displayName = _constants.DISPLAY_NAME_PREFIX + 'Filter'; Filter.propTypes = { collection: _react.PropTypes.array, predicate: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.object]).isRequired }; exports.default = Filter; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Find = __webpack_require__(15); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Find).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 15 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Find/Find.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _findBy = __webpack_require__(16); var _findBy2 = _interopRequireDefault(_findBy); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Filter = function Filter(_ref) { var collection = _ref.collection, predicate = _ref.predicate, baseProps = _objectWithoutProperties(_ref, ['collection', 'predicate']); var match = (0, _findBy2.default)({ collection: collection, predicate: predicate, component: 'Find' }); var matchAsCollection = match ? [match] : []; return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: matchAsCollection }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 19 }, __self: undefined })); }; Filter.displayName = _constants.DISPLAY_NAME_PREFIX + 'Filter'; Filter.propTypes = { collection: _react.PropTypes.array, predicate: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.object]).isRequired }; exports.default = Filter; /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _applyPredicateToCollectionWith = __webpack_require__(11); var _applyPredicateToCollectionWith2 = _interopRequireDefault(_applyPredicateToCollectionWith); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function efficientFind(collection, predicate) { for (var i = 0; i < collection.length; i += 1) { if (predicate(collection[i])) { return collection[i]; } } return undefined; } exports.default = (0, _applyPredicateToCollectionWith2.default)(efficientFind); /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _First = __webpack_require__(18); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_First).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/First/First.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var First = function First(_ref) { var collection = _ref.collection, num = _ref.num, baseProps = _objectWithoutProperties(_ref, ['collection', 'num']); return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: collection.slice(0, num) }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 9 }, __self: undefined })); }; First.displayName = _constants.DISPLAY_NAME_PREFIX + 'First'; First.propTypes = { collection: _react.PropTypes.array, num: _react.PropTypes.number.isRequired }; First.defaultProps = { num: 1 }; exports.default = First; /***/ }, /* 19 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Last = __webpack_require__(20); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Last).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Last/Last.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Last = function Last(_ref) { var collection = _ref.collection, num = _ref.num, baseProps = _objectWithoutProperties(_ref, ['collection', 'num']); return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: collection.slice(num * -1) }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 9 }, __self: undefined })); }; Last.displayName = _constants.DISPLAY_NAME_PREFIX + 'Last'; Last.propTypes = { collection: _react.PropTypes.array, num: _react.PropTypes.number.isRequired }; Last.defaultProps = { num: 1 }; exports.default = Last; /***/ }, /* 21 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Map = __webpack_require__(22); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Map).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Map/Map.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // So, this component is a little ridiculous. Our BaseCollectionHelper has // a built-in map, so we really just need to delegate to this. // Choosing to make it its own component rather than just an alias for // consistency with other collection helpers, for predictability when // debugging. var Map = function Map(props) { return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({}, props, { __source: { fileName: _jsxFileName, lineNumber: 13 }, __self: undefined })); }; Map.displayName = _constants.DISPLAY_NAME_PREFIX + 'Map'; Map.propTypes = { collection: _react.PropTypes.array }; exports.default = Map; /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Reverse = __webpack_require__(24); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Reverse).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 24 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Reverse/Reverse.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Reverse = function Reverse(_ref) { var collection = _ref.collection, baseProps = _objectWithoutProperties(_ref, ['collection']); return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: collection.slice().reverse() }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 9 }, __self: undefined })); }; Reverse.displayName = _constants.DISPLAY_NAME_PREFIX + 'Reverse'; Reverse.propTypes = { collection: _react.PropTypes.array }; exports.default = Reverse; /***/ }, /* 25 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Some = __webpack_require__(26); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Some).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Some/Some.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _findBy = __webpack_require__(16); var _findBy2 = _interopRequireDefault(_findBy); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // This can't be an SFC because it has the potential to return `null`. var Some = function (_Component) { _inherits(Some, _Component); function Some() { _classCallCheck(this, Some); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Some.prototype.render = function render() { var _props = this.props, collection = _props.collection, predicate = _props.predicate, fallback = _props.fallback, baseProps = _objectWithoutProperties(_props, ['collection', 'predicate', 'fallback']); var match = (0, _findBy2.default)({ collection: collection, predicate: predicate, component: 'Some' }); if (!match) { return fallback; } return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: collection }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 25 }, __self: this })); }; return Some; }(_react.Component); Some.displayName = _constants.DISPLAY_NAME_PREFIX + 'Some'; Some.propTypes = { collection: _react.PropTypes.array, predicate: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.object]), fallback: _react.PropTypes.element }; Some.defaultProps = { // Default to an always-true predicate, so it can be used to check for non- // empty collections. predicate: function predicate() { return true; }, fallback: null }; exports.default = Some; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _Sort = __webpack_require__(28); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_Sort).default; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }, /* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = 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; }; var _jsxFileName = '/Users/joshu/work/react-collection-helpers/src/components/Sort/Sort.js'; var _react = __webpack_require__(4); var _react2 = _interopRequireDefault(_react); var _constants = __webpack_require__(7); var _sortBy = __webpack_require__(29); var _sortBy2 = _interopRequireDefault(_sortBy); var _BaseCollectionHelper = __webpack_require__(2); var _BaseCollectionHelper2 = _interopRequireDefault(_BaseCollectionHelper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var Sort = function Sort(_ref) { var collection = _ref.collection, comparator = _ref.comparator, descending = _ref.descending, baseProps = _objectWithoutProperties(_ref, ['collection', 'comparator', 'descending']); var sortedCollection = (0, _sortBy2.default)({ collection: collection, comparator: comparator, descending: descending, component: 'Sort' }); return _react2.default.createElement(_BaseCollectionHelper2.default, _extends({ collection: sortedCollection }, baseProps, { __source: { fileName: _jsxFileName, lineNumber: 18 }, __self: undefined })); }; Sort.displayName = _constants.DISPLAY_NAME_PREFIX + 'Sort'; Sort.propTypes = { collection: _react.PropTypes.array, comparator: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]), descending: _react.PropTypes.bool }; exports.default = Sort; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.default = sortBy; var _errorMessage = __webpack_require__(6); function sortBy(_ref) { var collection = _ref.collection, comparator = _ref.comparator, descending = _ref.descending, component = _ref.component; // For now, we don't accept comparators that aren't objects or functions. var type = Array.isArray(comparator) ? 'array' : typeof comparator === 'undefined' ? 'undefined' : _typeof(comparator); // Array#sort is a mutative method. Given that we're supplying it props, // we want to ensure we do not mutate it. var collectionClone = collection.slice(); switch (type) { case 'undefined': return collectionClone.sort(); case 'function': return collectionClone.sort(comparator); case 'string': return collectionClone.sort(function (a, b) { var aVal = a[comparator]; var bVal = b[comparator]; if (aVal === bVal) { return 0; } var result = aVal < bVal ? -1 : 1; return descending ? result * -1 : result; }); default: throw new Error((0, _errorMessage.invalidTypeSuppliedAsComparator)({ type: type, comparator: comparator, component: component })); } } /***/ } /******/ ]) }); ;