{ "version": 3, "sources": ["../../../../../../../src/node_modules/ramda/es/internal/_isPlaceholder.js", "../../../../../../../src/node_modules/ramda/es/internal/_curry1.js", "../../../../../../../src/node_modules/ramda/es/internal/_curry2.js", "../../../../../../../src/node_modules/ramda/es/internal/_isArray.js", "../../../../../../../src/node_modules/ramda/es/internal/_isString.js", "../../../../../../../src/node_modules/ramda/es/internal/_isArrayLike.js", "../../../../../../../src/node_modules/ramda/es/internal/_xwrap.js", "../../../../../../../src/node_modules/ramda/es/internal/_arity.js", "../../../../../../../src/node_modules/ramda/es/bind.js", "../../../../../../../src/node_modules/ramda/es/internal/_reduce.js", "../../../../../../../src/node_modules/ramda/es/internal/_concat.js", "../../../../../../../src/node_modules/ramda/es/internal/_isTransformer.js", "../../../../../../../src/node_modules/ramda/es/internal/_dispatchable.js", "../../../../../../../src/node_modules/ramda/es/internal/_map.js", "../../../../../../../src/node_modules/ramda/es/internal/_xfBase.js", "../../../../../../../src/node_modules/ramda/es/internal/_xmap.js", "../../../../../../../src/node_modules/ramda/es/internal/_curryN.js", "../../../../../../../src/node_modules/ramda/es/curryN.js", "../../../../../../../src/node_modules/ramda/es/internal/_has.js", "../../../../../../../src/node_modules/ramda/es/internal/_isArguments.js", "../../../../../../../src/node_modules/ramda/es/keys.js", "../../../../../../../src/node_modules/ramda/es/map.js", "../../../../../../../src/node_modules/ramda/es/ap.js", "../../../../../../../src/node_modules/ramda/es/liftN.js", "../../../../../../../src/node_modules/ramda/es/lift.js", "../../../../../../../src/node_modules/ramda/es/not.js", "../../../../../../../src/node_modules/ramda/es/complement.js", "../../../../../../../src/node_modules/ramda/es/internal/_checkForMethod.js", "../../../../../../../src/node_modules/ramda/es/internal/_curry3.js", "../../../../../../../src/node_modules/ramda/es/slice.js", "../../../../../../../src/node_modules/ramda/es/internal/_pipe.js", "../../../../../../../src/node_modules/ramda/es/reduce.js", "../../../../../../../src/node_modules/ramda/es/tail.js", "../../../../../../../src/node_modules/ramda/es/pipe.js", "../../../../../../../src/node_modules/ramda/es/reverse.js", "../../../../../../../src/node_modules/ramda/es/compose.js", "../../../../../../../src/node_modules/ramda/es/internal/_filter.js", "../../../../../../../src/node_modules/ramda/es/internal/_isObject.js", "../../../../../../../src/node_modules/ramda/es/internal/_xfilter.js", "../../../../../../../src/node_modules/ramda/es/filter.js", "../../../../../../../src/node_modules/ramda/es/hasPath.js", "../../../../../../../src/node_modules/ramda/es/has.js", "../../../../../../../src/node_modules/ramda/es/empty.js", "../../../../../../../src/node_modules/ramda/es/internal/_arrayFromIterator.js", "../../../../../../../src/node_modules/ramda/es/internal/_includesWith.js", "../../../../../../../src/node_modules/ramda/es/internal/_functionName.js", "../../../../../../../src/node_modules/ramda/es/internal/_objectIs.js", "../../../../../../../src/node_modules/ramda/es/type.js", "../../../../../../../src/node_modules/ramda/es/internal/_equals.js", "../../../../../../../src/node_modules/ramda/es/equals.js", "../../../../../../../src/node_modules/ramda/es/isEmpty.js", "../../../../../../../src/node_modules/ramda/es/internal/_isFunction.js", "../../../../../../../src/node_modules/ramda/es/internal/_indexOf.js", "../../../../../../../src/node_modules/ramda/es/internal/_includes.js", "../../../../../../../src/node_modules/ramda/es/internal/_quote.js", "../../../../../../../src/node_modules/ramda/es/internal/_toISOString.js", "../../../../../../../src/node_modules/ramda/es/internal/_complement.js", "../../../../../../../src/node_modules/ramda/es/reject.js", "../../../../../../../src/node_modules/ramda/es/internal/_toString.js", "../../../../../../../src/node_modules/ramda/es/toString.js", "../../../../../../../src/node_modules/ramda/es/invoker.js", "../../../../../../../src/node_modules/ramda/es/split.js", "../../../../../../../src/node_modules/ramda/es/T.js", "../../../../../../../src/node_modules/ramda/es/add.js", "../../../../../../../src/node_modules/ramda/es/adjust.js", "../../../../../../../src/node_modules/ramda/es/internal/_reduced.js", "../../../../../../../src/node_modules/ramda/es/internal/_xall.js", "../../../../../../../src/node_modules/ramda/es/all.js", "../../../../../../../src/node_modules/ramda/es/max.js", "../../../../../../../src/node_modules/ramda/es/path.js", "../../../../../../../src/node_modules/ramda/es/prop.js", "../../../../../../../src/node_modules/ramda/es/pluck.js", "../../../../../../../src/node_modules/ramda/es/allPass.js", "../../../../../../../src/node_modules/ramda/es/always.js", "../../../../../../../src/node_modules/ramda/es/and.js", "../../../../../../../src/node_modules/ramda/es/anyPass.js", "../../../../../../../src/node_modules/ramda/es/append.js", "../../../../../../../src/node_modules/ramda/es/apply.js", "../../../../../../../src/node_modules/ramda/es/values.js", "../../../../../../../src/node_modules/ramda/es/applySpec.js", "../../../../../../../src/node_modules/ramda/es/applyTo.js", "../../../../../../../src/node_modules/ramda/es/ascend.js", "../../../../../../../src/node_modules/ramda/es/assoc.js", "../../../../../../../src/node_modules/ramda/es/internal/_isInteger.js", "../../../../../../../src/node_modules/ramda/es/isNil.js", "../../../../../../../src/node_modules/ramda/es/assocPath.js", "../../../../../../../src/node_modules/ramda/es/both.js", "../../../../../../../src/node_modules/ramda/es/curry.js", "../../../../../../../src/node_modules/ramda/es/internal/_makeFlat.js", "../../../../../../../src/node_modules/ramda/es/internal/_cloneRegExp.js", "../../../../../../../src/node_modules/ramda/es/nth.js", "../../../../../../../src/node_modules/ramda/es/head.js", "../../../../../../../src/node_modules/ramda/es/internal/_identity.js", "../../../../../../../src/node_modules/ramda/es/identity.js", "../../../../../../../src/node_modules/ramda/es/concat.js", "../../../../../../../src/node_modules/ramda/es/cond.js", "../../../../../../../src/node_modules/ramda/es/converge.js", "../../../../../../../src/node_modules/ramda/es/defaultTo.js", "../../../../../../../src/node_modules/ramda/es/descend.js", "../../../../../../../src/node_modules/ramda/es/internal/_Set.js", "../../../../../../../src/node_modules/ramda/es/difference.js", "../../../../../../../src/node_modules/ramda/es/differenceWith.js", "../../../../../../../src/node_modules/ramda/es/update.js", "../../../../../../../src/node_modules/ramda/es/or.js", "../../../../../../../src/node_modules/ramda/es/either.js", "../../../../../../../src/node_modules/ramda/es/eqBy.js", "../../../../../../../src/node_modules/ramda/es/internal/_xfind.js", "../../../../../../../src/node_modules/ramda/es/find.js", "../../../../../../../src/node_modules/ramda/es/internal/_xfindIndex.js", "../../../../../../../src/node_modules/ramda/es/findIndex.js", "../../../../../../../src/node_modules/ramda/es/internal/_xfindLastIndex.js", "../../../../../../../src/node_modules/ramda/es/findLastIndex.js", "../../../../../../../src/node_modules/ramda/es/flatten.js", "../../../../../../../src/node_modules/ramda/es/flip.js", "../../../../../../../src/node_modules/ramda/es/groupWith.js", "../../../../../../../src/node_modules/ramda/es/hasIn.js", "../../../../../../../src/node_modules/ramda/es/ifElse.js", "../../../../../../../src/node_modules/ramda/es/inc.js", "../../../../../../../src/node_modules/ramda/es/indexOf.js", "../../../../../../../src/node_modules/ramda/es/uniqBy.js", "../../../../../../../src/node_modules/ramda/es/uniq.js", "../../../../../../../src/node_modules/ramda/es/intersection.js", "../../../../../../../src/node_modules/ramda/es/intersperse.js", "../../../../../../../src/node_modules/ramda/es/internal/_objectAssign.js", "../../../../../../../src/node_modules/ramda/es/is.js", "../../../../../../../src/node_modules/ramda/es/join.js", "../../../../../../../src/node_modules/ramda/es/juxt.js", "../../../../../../../src/node_modules/ramda/es/internal/_isNumber.js", "../../../../../../../src/node_modules/ramda/es/length.js", "../../../../../../../src/node_modules/ramda/es/lens.js", "../../../../../../../src/node_modules/ramda/es/lensIndex.js", "../../../../../../../src/node_modules/ramda/es/lensProp.js", "../../../../../../../src/node_modules/ramda/es/sum.js", "../../../../../../../src/node_modules/ramda/es/mergeRight.js", "../../../../../../../src/node_modules/ramda/es/over.js", "../../../../../../../src/node_modules/ramda/es/pathEq.js", "../../../../../../../src/node_modules/ramda/es/pathOr.js", "../../../../../../../src/node_modules/ramda/es/propEq.js", "../../../../../../../src/node_modules/ramda/es/propOr.js", "../../../../../../../src/node_modules/ramda/es/propSatisfies.js", "../../../../../../../src/node_modules/ramda/es/props.js", "../../../../../../../src/node_modules/ramda/es/range.js", "../../../../../../../src/node_modules/ramda/es/replace.js", "../../../../../../../src/node_modules/ramda/es/sortWith.js", "../../../../../../../src/node_modules/ramda/es/internal/_xtap.js", "../../../../../../../src/node_modules/ramda/es/tap.js", "../../../../../../../src/node_modules/ramda/es/internal/_isRegExp.js", "../../../../../../../src/node_modules/ramda/es/test.js", "../../../../../../../src/node_modules/ramda/es/toLower.js", "../../../../../../../src/node_modules/ramda/es/toUpper.js", "../../../../../../../src/node_modules/ramda/es/trim.js", "../../../../../../../src/node_modules/ramda/es/tryCatch.js", "../../../../../../../src/node_modules/ramda/es/unless.js", "../../../../../../../src/node_modules/ramda/es/when.js", "../../../../../../../src/js/lib/collect-values.js", "../../../../../../../src/js/lib/text-utils.js"], "sourcesContent": ["export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}", "import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}", "import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}", "/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};", "export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}", "import _curry1 from './_curry1.js';\nimport _isArray from './_isArray.js';\nimport _isString from './_isString.js';\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;", "var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}", "export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}", "import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;", "import _isArrayLike from './_isArrayLike.js';\nimport _xwrap from './_xwrap.js';\nimport bind from '../bind.js';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}", "/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}", "export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}", "import _isArray from './_isArray.js';\nimport _isTransformer from './_isTransformer.js';\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}", "export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}", "export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};", "import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nexport default _xmap;", "import _arity from './_arity.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}", "import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\nimport _curry2 from './internal/_curry2.js';\nimport _curryN from './internal/_curryN.js';\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;", "export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}", "import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;", "import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _map from './internal/_map.js';\nimport _reduce from './internal/_reduce.js';\nimport _xmap from './internal/_xmap.js';\nimport curryN from './curryN.js';\nimport keys from './keys.js';\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nexport default map;", "import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\nimport _reduce from './internal/_reduce.js';\nimport map from './map.js';\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\nexport default ap;", "import _curry2 from './internal/_curry2.js';\nimport _reduce from './internal/_reduce.js';\nimport ap from './ap.js';\nimport curryN from './curryN.js';\nimport map from './map.js';\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\nexport default liftN;", "import _curry1 from './internal/_curry1.js';\nimport liftN from './liftN.js';\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\nexport default lift;", "import _curry1 from './internal/_curry1.js';\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\nexport default not;", "import lift from './lift.js';\nimport not from './not.js';\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\nvar complement = /*#__PURE__*/lift(not);\nexport default complement;", "import _isArray from './_isArray.js';\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}", "import _curry1 from './_curry1.js';\nimport _curry2 from './_curry2.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}", "import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\nexport default slice;", "export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}", "import _curry3 from './internal/_curry3.js';\nimport _reduce from './internal/_reduce.js';\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nexport default reduce;", "import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry1 from './internal/_curry1.js';\nimport slice from './slice.js';\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\nexport default tail;", "import _arity from './internal/_arity.js';\nimport _pipe from './internal/_pipe.js';\nimport reduce from './reduce.js';\nimport tail from './tail.js';\n\n/**\n * Performs left-to-right function composition. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}", "import _curry1 from './internal/_curry1.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nexport default reverse;", "import pipe from './pipe.js';\nimport reverse from './reverse.js';\n\n/**\n * Performs right-to-left function composition. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, reverse(arguments));\n}", "export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}", "export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}", "import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter = /*#__PURE__*/_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\nexport default _xfilter;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _filter from './internal/_filter.js';\nimport _isObject from './internal/_isObject.js';\nimport _reduce from './internal/_reduce.js';\nimport _xfilter from './internal/_xfilter.js';\nimport keys from './keys.js';\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;", "import _curry2 from './internal/_curry2.js';\nimport _has from './internal/_has.js';\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\nvar hasPath = /*#__PURE__*/_curry2(function hasPath(_path, obj) {\n if (_path.length === 0) {\n return false;\n }\n var val = obj;\n var idx = 0;\n while (idx < _path.length) {\n if (_has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n return true;\n});\nexport default hasPath;", "import _curry2 from './internal/_curry2.js';\nimport hasPath from './hasPath.js';\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\nvar has = /*#__PURE__*/_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\nexport default has;", "import _curry1 from './internal/_curry1.js';\nimport _isArguments from './internal/_isArguments.js';\nimport _isArray from './internal/_isArray.js';\nimport _isObject from './internal/_isObject.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\nvar empty = /*#__PURE__*/_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\nexport default empty;", "export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}", "export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}", "export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}", "// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;", "import _curry1 from './internal/_curry1.js';\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;", "import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}", "import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;", "import _curry1 from './internal/_curry1.js';\nimport empty from './empty.js';\nimport equals from './equals.js';\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\nvar isEmpty = /*#__PURE__*/_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\nexport default isEmpty;", "export default function _isFunction(x) {\n return Object.prototype.toString.call(x) === '[object Function]';\n}", "import equals from '../equals.js';\n\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}", "import _indexOf from './_indexOf.js';\n\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}", "export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}", "/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;", "export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}", "import _complement from './internal/_complement.js';\nimport _curry2 from './internal/_curry2.js';\nimport filter from './filter.js';\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;", "import _includes from './_includes.js';\nimport _map from './_map.js';\nimport _quote from './_quote.js';\nimport _toISOString from './_toISOString.js';\nimport keys from '../keys.js';\nimport reject from '../reject.js';\n\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return (/^\\d+$/.test(k)\n );\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}", "import _curry1 from './internal/_curry1.js';\nimport _toString from './internal/_toString.js';\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;", "import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport curryN from './curryN.js';\nimport toString from './toString.js';\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of the method to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\nvar invoker = /*#__PURE__*/_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\nexport default invoker;", "import invoker from './invoker.js';\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `str`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\nvar split = /*#__PURE__*/invoker(1, 'split');\nexport default split;", "\n\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\nexport default T;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\nvar add = /*#__PURE__*/_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\nexport default add;", "import _concat from './internal/_concat.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\nvar adjust = /*#__PURE__*/_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n var start = idx < 0 ? list.length : 0;\n var _idx = start + idx;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\nexport default adjust;", "export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}", "import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XAll = /*#__PURE__*/function () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall = /*#__PURE__*/_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\nexport default _xall;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xall from './internal/_xall.js';\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\nvar all = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\n}));\nexport default all;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n return b > a ? b : a;\n});\nexport default max;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\nvar path = /*#__PURE__*/_curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\nexport default path;", "import _curry2 from './internal/_curry2.js';\nimport path from './path.js';\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig s -> {s: a} -> a | Undefined\n * @param {String} p The property name\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\nexport default prop;", "import _curry2 from './internal/_curry2.js';\nimport map from './map.js';\nimport prop from './prop.js';\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nexport default pluck;", "import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '\u2660\uFE0E');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '\u2663\uFE0E'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '\u2660\uFE0E'}); //=> true\n */\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\nexport default allPass;", "import _curry1 from './internal/_curry1.js';\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nexport default always;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\nvar and = /*#__PURE__*/_curry2(function and(a, b) {\n return a && b;\n});\nexport default and;", "import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '\u2663');\n * const isSpade = R.propEq('suit', '\u2660');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '\u2663'}); //=> true\n * isBlackCard({rank: 'Q', suit: '\u2660'}); //=> true\n * isBlackCard({rank: 'Q', suit: '\u2666'}); //=> false\n */\nvar anyPass = /*#__PURE__*/_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\n });\n});\nexport default anyPass;", "import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\nvar append = /*#__PURE__*/_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\nexport default append;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\nvar apply = /*#__PURE__*/_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\nexport default apply;", "import _curry1 from './internal/_curry1.js';\nimport keys from './keys.js';\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nexport default values;", "import _curry1 from './internal/_curry1.js';\nimport apply from './apply.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\nimport keys from './keys.js';\nimport values from './values.js';\n\n// Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\nvar applySpec = /*#__PURE__*/_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\nexport default applySpec;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\nvar applyTo = /*#__PURE__*/_curry2(function applyTo(x, f) {\n return f(x);\n});\nexport default applyTo;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\nvar ascend = /*#__PURE__*/_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\nexport default ascend;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\nvar assoc = /*#__PURE__*/_curry3(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n});\nexport default assoc;", "/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};", "import _curry1 from './internal/_curry1.js';\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\nexport default isNil;", "import _curry3 from './internal/_curry3.js';\nimport _has from './internal/_has.js';\nimport _isArray from './internal/_isArray.js';\nimport _isInteger from './internal/_isInteger.js';\nimport assoc from './assoc.js';\nimport isNil from './isNil.js';\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\nvar assocPath = /*#__PURE__*/_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\nexport default assocPath;", "import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport and from './and.js';\nimport lift from './lift.js';\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\nvar both = /*#__PURE__*/_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\nexport default both;", "import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curry = /*#__PURE__*/_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\nexport default curry;", "import _isArrayLike from './_isArrayLike.js';\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n };\n}", "export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}", "import _curry2 from './internal/_curry2.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\nvar nth = /*#__PURE__*/_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\nexport default nth;", "import nth from './nth.js';\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\nvar head = /*#__PURE__*/nth(0);\nexport default head;", "export default function _identity(x) {\n return x;\n}", "import _curry1 from './internal/_curry1.js';\nimport _identity from './internal/_identity.js';\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\nvar identity = /*#__PURE__*/_curry1(_identity);\nexport default identity;", "import _curry2 from './internal/_curry2.js';\nimport _isArray from './internal/_isArray.js';\nimport _isFunction from './internal/_isFunction.js';\nimport _isString from './internal/_isString.js';\nimport toString from './toString.js';\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\nvar concat = /*#__PURE__*/_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\nexport default concat;", "import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\nimport map from './map.js';\nimport max from './max.js';\nimport reduce from './reduce.js';\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0\u00B0C')],\n * [R.equals(100), R.always('water boils at 100\u00B0C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '\u00B0C']\n * ]);\n * fn(0); //=> 'water freezes at 0\u00B0C'\n * fn(50); //=> 'nothing special happens at 50\u00B0C'\n * fn(100); //=> 'water boils at 100\u00B0C'\n */\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\nexport default cond;", "import _curry2 from './internal/_curry2.js';\nimport _map from './internal/_map.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\nvar converge = /*#__PURE__*/_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\nexport default converge;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\nvar defaultTo = /*#__PURE__*/_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\nexport default defaultTo;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\nvar descend = /*#__PURE__*/_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\nexport default descend;", "import _includes from './_includes.js';\n\nvar _Set = /*#__PURE__*/function () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n}\n\n// A simple Set type that honours R.equals semantics\nexport default _Set;", "import _curry2 from './internal/_curry2.js';\nimport _Set from './internal/_Set.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nexport default difference;", "import _includesWith from './internal/_includesWith.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\nvar differenceWith = /*#__PURE__*/_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n idx += 1;\n }\n return out;\n});\nexport default differenceWith;", "import _curry3 from './internal/_curry3.js';\nimport adjust from './adjust.js';\nimport always from './always.js';\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\nvar update = /*#__PURE__*/_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\nexport default update;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\nvar or = /*#__PURE__*/_curry2(function or(a, b) {\n return a || b;\n});\nexport default or;", "import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport lift from './lift.js';\nimport or from './or.js';\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\nvar either = /*#__PURE__*/_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\nexport default either;", "import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\nvar eqBy = /*#__PURE__*/_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\nexport default eqBy;", "import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFind = /*#__PURE__*/function () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\nexport default _xfind;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfind from './internal/_xfind.js';\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\nexport default find;", "import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindIndex = /*#__PURE__*/function () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex = /*#__PURE__*/_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\nexport default _xfindIndex;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindIndex from './internal/_xfindIndex.js';\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nexport default findIndex;", "import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindLastIndex = /*#__PURE__*/function () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex = /*#__PURE__*/_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\nexport default _xfindLastIndex;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindLastIndex from './internal/_xfindLastIndex.js';\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\nvar findLastIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n}));\nexport default findLastIndex;", "import _curry1 from './internal/_curry1.js';\nimport _makeFlat from './internal/_makeFlat.js';\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\nvar flatten = /*#__PURE__*/_curry1( /*#__PURE__*/_makeFlat(true));\nexport default flatten;", "import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\nvar flip = /*#__PURE__*/_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\nexport default flip;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) \u2192 Boolean) \u2192 [a] \u2192 [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\nvar groupWith = /*#__PURE__*/_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n var nextidx = idx + 1;\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n return res;\n});\nexport default groupWith;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\nvar hasIn = /*#__PURE__*/_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\nexport default hasIn;", "import _curry3 from './internal/_curry3.js';\nimport curryN from './curryN.js';\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\nvar ifElse = /*#__PURE__*/_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\nexport default ifElse;", "import add from './add.js';\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\nvar inc = /*#__PURE__*/add(1);\nexport default inc;", "import _curry2 from './internal/_curry2.js';\nimport _indexOf from './internal/_indexOf.js';\nimport _isArray from './internal/_isArray.js';\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\nvar indexOf = /*#__PURE__*/_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\nexport default indexOf;", "import _Set from './internal/_Set.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\nvar uniqBy = /*#__PURE__*/_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\n});\nexport default uniqBy;", "import identity from './identity.js';\nimport uniqBy from './uniqBy.js';\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\nvar uniq = /*#__PURE__*/uniqBy(identity);\nexport default uniq;", "import _includes from './internal/_includes.js';\nimport _curry2 from './internal/_curry2.js';\nimport _filter from './internal/_filter.js';\nimport flip from './flip.js';\nimport uniq from './uniq.js';\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\nvar intersection = /*#__PURE__*/_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\nexport default intersection;", "import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\nvar intersperse = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n idx += 1;\n }\n return out;\n}));\nexport default intersperse;", "import _has from './_has.js';\n\n// Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\nvar is = /*#__PURE__*/_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\nexport default is;", "import invoker from './invoker.js';\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\nvar join = /*#__PURE__*/invoker(1, 'join');\nexport default join;", "import _curry1 from './internal/_curry1.js';\nimport converge from './converge.js';\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\nvar juxt = /*#__PURE__*/_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\nexport default juxt;", "export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}", "import _curry1 from './internal/_curry1.js';\nimport _isNumber from './internal/_isNumber.js';\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\nvar length = /*#__PURE__*/_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\nexport default length;", "import _curry2 from './internal/_curry2.js';\nimport map from './map.js';\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nvar lens = /*#__PURE__*/_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\nexport default lens;", "import _curry1 from './internal/_curry1.js';\nimport lens from './lens.js';\nimport nth from './nth.js';\nimport update from './update.js';\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\nvar lensIndex = /*#__PURE__*/_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\nexport default lensIndex;", "import _curry1 from './internal/_curry1.js';\nimport assoc from './assoc.js';\nimport lens from './lens.js';\nimport prop from './prop.js';\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nvar lensProp = /*#__PURE__*/_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\nexport default lensProp;", "import add from './add.js';\nimport reduce from './reduce.js';\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\nvar sum = /*#__PURE__*/reduce(add, 0);\nexport default sum;", "import _objectAssign from './internal/_objectAssign.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\nvar mergeRight = /*#__PURE__*/_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\nexport default mergeRight;", "import _curry3 from './internal/_curry3.js';\n\n// `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\nvar Identity = function (x) {\n return { value: x, map: function (f) {\n return Identity(f(x));\n } };\n};\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\nvar over = /*#__PURE__*/_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\nexport default over;", "import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\nimport path from './path.js';\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\nvar pathEq = /*#__PURE__*/_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\nexport default pathEq;", "import _curry3 from './internal/_curry3.js';\nimport defaultTo from './defaultTo.js';\nimport path from './path.js';\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\nvar pathOr = /*#__PURE__*/_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\nexport default pathOr;", "import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\nvar propEq = /*#__PURE__*/_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\nexport default propEq;", "import _curry3 from './internal/_curry3.js';\nimport pathOr from './pathOr.js';\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\nvar propOr = /*#__PURE__*/_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\nexport default propOr;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\nvar propSatisfies = /*#__PURE__*/_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\nexport default propSatisfies;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\nvar props = /*#__PURE__*/_curry2(function props(ps, obj) {\n var len = ps.length;\n var out = [];\n var idx = 0;\n\n while (idx < len) {\n out[idx] = obj[ps[idx]];\n idx += 1;\n }\n\n return out;\n});\nexport default props;", "import _curry2 from './internal/_curry2.js';\nimport _isNumber from './internal/_isNumber.js';\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\nvar range = /*#__PURE__*/_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n var result = [];\n var n = from;\n while (n < to) {\n result.push(n);\n n += 1;\n }\n return result;\n});\nexport default range;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\nvar replace = /*#__PURE__*/_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\nexport default replace;", "import _curry2 from './internal/_curry2.js';\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\nvar sortWith = /*#__PURE__*/_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n return result;\n });\n});\nexport default sortWith;", "import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XTap = /*#__PURE__*/function () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap = /*#__PURE__*/_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\nexport default _xtap;", "import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xtap from './internal/_xtap.js';\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\nvar tap = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\nexport default tap;", "export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}", "import _cloneRegExp from './internal/_cloneRegExp.js';\nimport _curry2 from './internal/_curry2.js';\nimport _isRegExp from './internal/_isRegExp.js';\nimport toString from './toString.js';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('\u2018test\u2019 requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;", "import invoker from './invoker.js';\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\nvar toLower = /*#__PURE__*/invoker(0, 'toLowerCase');\nexport default toLower;", "import invoker from './invoker.js';\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\nvar toUpper = /*#__PURE__*/invoker(0, 'toUpperCase');\nexport default toUpper;", "import _curry1 from './internal/_curry1.js';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? /*#__PURE__*/_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;", "import _arity from './internal/_arity.js';\nimport _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n `` */\nvar tryCatch = /*#__PURE__*/_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\nexport default tryCatch;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\nvar unless = /*#__PURE__*/_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\nexport default unless;", "import _curry3 from './internal/_curry3.js';\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('\u2026'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789\u2026'\n */\nvar when = /*#__PURE__*/_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\nexport default when;", "/* global URLSearchParams FormData */\n\nimport { mapConcat, either, when } from \"./functional.js\";\n\nconst ATTR_SNAME = \"data-server-name\";\nconst ATTR_SVALUE = \"data-server-value\";\nconst CONTAINER_SELECTOR = \"#bb-q .group.selected\";\n\nconst INPUT_SELECTOR = mapConcat(\n [\"input\", \"textarea\", \"select\"],\n function (c) {\n return c + \"[name]:not([disabled])\";\n },\n \", \"\n);\n\nconst inputsOf = container => container.querySelectorAll(INPUT_SELECTOR);\n\nconst isEmptyRadioValue = val => val === null;\nconst isEmptyCheckboxValue = val => val === false;\nconst isCheckedCheckboxValue = val => val === true;\n\nfunction collectWithin({\n params = null, // Object with an .append method, taking two params\n flavor = URLSearchParams, // Constructor for an object with an .append method, taking two params, used when params is not provided\n container = document.querySelector(CONTAINER_SELECTOR),\n omitFn = isEmptyCheckboxValue,\n changeFn = when(isCheckedCheckboxValue, () => \"on\"),\n collector = inputsOf\n} = {}) {\n return _collectAll(\n collector(container),\n params || new flavor(),\n omitFn,\n changeFn\n );\n}\n\nfunction _collectAll(nodeList, params, omitFn, changeFn) {\n for (const node of nodeList) {\n const val = valueOf(node),\n name = node.getAttribute(ATTR_SNAME) || node.getAttribute(\"name\");\n if (!either(isEmptyRadioValue, omitFn, val)) {\n params.append(name, changeFn(val));\n }\n }\n return params;\n}\n\nfunction valueOf(node) {\n if (node.hasAttribute(ATTR_SVALUE)) return node.getAttribute(ATTR_SVALUE);\n switch (node.type) {\n case \"radio\":\n return node.checked ? node.value : null; // Do not collect unchecked radios -- stripped in collectAll.\n case \"checkbox\":\n /* Collect unchecked checkboxes as false -- goes against usual form submission,\n but we need this for Studio API (using JSON). Stripped out by collectAll() unless provided with a omitFn. */\n if (!node.checked) return false;\n return node.hasAttribute(\"value\") // NOT the property -- this would still be \"on\".\n ? node.value // A checkbox should send either its value or\n : true; // Return Boolean true instead of \"on\", to be changed by collectAll() with changeFn,\n // or leave it at true (for JSON communication for instance) */\n default:\n return String(node.value).replace(/\\r?\\n/g, \"\\r\\n\");\n }\n}\n\nconst serializeQuestions = () =>\n collectWithin({}).toString().replace(/\\r?\\n/g, \"%0D%0A\");\n\nexport { valueOf, serializeQuestions, collectWithin };\n", "/******* positionalFormat() BEGIN ******/\n\n/* https://github.com/pft/javascript/blob/master/positionalformat.js\n *\n * Copyright (C) 2006-2013 Niels Giesen.\n *\n * Contact: \n *\n * Author: Niels Giesen\n * Keywords: JavaScript, formatting, String\n *\n * This file is dual-licensed under either the BSD license or the\n * GNU Affero General Public License.\n *\n * positionalFormat enables you to replace numbers enclosed in curly braces (C# format\n * apparently) with positional arguments (that can be reused), like\n * this:\n *\n * positionalFormat('argument { 1 } (or is it { 2 }, or { 0 }?) comes { 1 }',3,'first',1)\n *\n * evals to:\n *\n * \"argument first (or is it 1, or 3?) comes first\"\n */\n\nexport function positionalFormat(str) {\n var args = arguments;\n return str.replace(/{\\s*(\\d+)\\s*}/g, function (match, num) {\n return args[parseInt(num) + 1] !== undefined\n ? args[parseInt(num) + 1]\n : match;\n });\n}\n\n/******* positionalFormat() END ******/\n\nexport function format(str, ob = {}) {\n return str.replace(/{\\s*([^{]+?)\\s*}/g, function (match, sub) {\n return ob[sub] !== undefined ? ob[sub] : sub;\n });\n}\n\n// export function formatPlus(str, ob = {}) {\n// return str.replace(/{\\s*([^{]+?)\\s*}/g, function (match, subwithstuff) {\n// const subs = subwithstuff.split(/\\|/);\n// console.log(subs);\n// return subs.reduce((acc, cur) => {\n// if (ob[cur] === undefined) return acc;\n// return ob[cur];\n// }, subs[0]);\n// // if (ob[sub] === undefined) return sub;\n// // if (!directives) return ob[sub] !== undefined ? ob[sub] : sub;\n// // if (\n// // directives.startsWith(\"+\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // if (\n// // directives.startsWith(\"-\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // const [sub, directives] = subwithstuff.split(/\\|/);\n// // if (ob[sub] === undefined) return sub;\n// // if (!directives) return ob[sub] !== undefined ? ob[sub] : sub;\n// // if (\n// // directives.startsWith(\"+\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // if (\n// // directives.startsWith(\"-\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// return ob[sub];\n// });\n// }\n\nexport const formatPlus = format;\n\n// (str, ob = {}) {\n// return str.replace(/{\\s*([^{]+?)\\s*}/g, function (match, subwithstuff) {\n// const subs = subwithstuff.split(/\\|/);\n// console.log(subs);\n// return subs.reduceRight((acc, cur) => {\n// if (ob[cur] === undefined) return acc;\n// return ob[cur];\n// }, subs[0]);\n// // if (ob[sub] === undefined) return sub;\n// // if (!directives) return ob[sub] !== undefined ? ob[sub] : sub;\n// // if (\n// // directives.startsWith(\"+\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // if (\n// // directives.startsWith(\"-\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // const [sub, directives] = subwithstuff.split(/\\|/);\n// // if (ob[sub] === undefined) return sub;\n// // if (!directives) return ob[sub] !== undefined ? ob[sub] : sub;\n// // if (\n// // directives.startsWith(\"+\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// // if (\n// // directives.startsWith(\"-\") &&\n// // !Number.isNaN(ob[sub]) &&\n// // !Number.isNaN(Number(directives.slice(1)))\n// // )\n// // return Number(ob[sub]) + Number(directives.slice(1));\n// return ob[sub];\n// });\n// }\n\n/** Function that count occurrences of a substring in a string;\n * @param {String} subString The sub string to search for\n * @param {String} string The string\n *\n * Based on https://gist.github.com/victornpb/7736865\n */\nexport function occurrences(subString, string) {\n string += \"\";\n subString += \"\";\n if (subString.length <= 0) return string.length + 1;\n\n var n = 0,\n pos = 0,\n step = subString.length;\n\n while (true) {\n pos = string.indexOf(subString, pos);\n if (pos >= 0) {\n ++n;\n pos += step;\n } else break;\n }\n return n;\n}\n"], "mappings": "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", "names": [] }