{"version":3,"sources":["webpack:///../node_modules/ramda-adjunct/es/isUndefined.js","webpack:///../node_modules/ramda-adjunct/es/isNotUndefined.js","webpack:///../node_modules/ramda-adjunct/es/isNull.js","webpack:///../node_modules/ramda-adjunct/es/isNotNull.js","webpack:///../node_modules/ramda/es/hasIn.js","webpack:///../node_modules/ramda-adjunct/es/isIterable.js","webpack:///../node_modules/ramda-adjunct/es/isEmptyArray.js","webpack:///../node_modules/ramda-adjunct/es/isBoolean.js","webpack:///../node_modules/ramda-adjunct/es/isNotBoolean.js","webpack:///../node_modules/ramda-adjunct/es/isString.js","webpack:///../node_modules/ramda-adjunct/es/isEmptyString.js","webpack:///../node_modules/ramda-adjunct/es/isNotString.js","webpack:///../node_modules/ramda-adjunct/es/internal/isOfTypeObject.js","webpack:///../node_modules/ramda-adjunct/es/isObj.js","webpack:///../node_modules/ramda-adjunct/es/isNotObj.js","webpack:///../node_modules/ramda-adjunct/es/isNonEmptyString.js","webpack:///../node_modules/ramda-adjunct/es/isArrayLike.js","webpack:///../node_modules/ramda-adjunct/es/isNotArrayLike.js","webpack:///../node_modules/ramda-adjunct/es/isNotGeneratorFunction.js","webpack:///../node_modules/ramda-adjunct/es/isNotAsyncFunction.js","webpack:///../node_modules/ramda-adjunct/es/isNotFunction.js","webpack:///../node_modules/ramda-adjunct/es/isObjLike.js","webpack:///../node_modules/ramda-adjunct/es/isNotObjLike.js","webpack:///../node_modules/ramda-adjunct/es/isPlainObj.js","webpack:///../node_modules/ramda-adjunct/es/isNotPlainObj.js","webpack:///../node_modules/ramda-adjunct/es/isDate.js","webpack:///../node_modules/ramda-adjunct/es/isNotDate.js","webpack:///../node_modules/ramda-adjunct/es/isNumber.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Number.isNaN.js","webpack:///../node_modules/ramda-adjunct/es/isNaN.js","webpack:///../node_modules/ramda-adjunct/es/isNotNaN.js","webpack:///../node_modules/ramda-adjunct/es/isValidDate.js","webpack:///../node_modules/ramda-adjunct/es/isNotValidDate.js","webpack:///../node_modules/ramda-adjunct/es/isNotNumber.js","webpack:///../node_modules/ramda-adjunct/es/isPositive.js","webpack:///../node_modules/ramda-adjunct/es/isNegative.js","webpack:///../node_modules/ramda-adjunct/es/isPositiveZero.js","webpack:///../node_modules/ramda-adjunct/es/isNegativeZero.js","webpack:///../node_modules/ramda-adjunct/es/isNotNilOrEmpty.js","webpack:///../node_modules/ramda-adjunct/es/isNonPositive.js","webpack:///../node_modules/ramda-adjunct/es/isNonNegative.js","webpack:///../node_modules/ramda-adjunct/es/isMap.js","webpack:///../node_modules/ramda-adjunct/es/isNotMap.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Number.isFinite.js","webpack:///../node_modules/ramda-adjunct/es/isFinite.js","webpack:///../node_modules/ramda-adjunct/es/isNotFinite.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Number.isInteger.js","webpack:///../node_modules/ramda-adjunct/es/isInteger.js","webpack:///../node_modules/ramda-adjunct/es/isNotInteger.js","webpack:///../node_modules/ramda-adjunct/es/isBigInt.js","webpack:///../node_modules/ramda-adjunct/es/isFloat.js","webpack:///../node_modules/ramda-adjunct/es/isNotFloat.js","webpack:///../node_modules/ramda-adjunct/es/isValidNumber.js","webpack:///../node_modules/ramda-adjunct/es/isNotValidNumber.js","webpack:///../node_modules/ramda-adjunct/es/isOdd.js","webpack:///../node_modules/ramda-adjunct/es/isEven.js","webpack:///../node_modules/ramda-adjunct/es/isPair.js","webpack:///../node_modules/ramda-adjunct/es/isNotPair.js","webpack:///../node_modules/ramda-adjunct/es/isThenable.js","webpack:///../node_modules/ramda-adjunct/es/isPromise.js","webpack:///../node_modules/ramda-adjunct/es/isTruthy.js","webpack:///../node_modules/ramda-adjunct/es/isFalsy.js","webpack:///../node_modules/ramda-adjunct/es/isRegExp.js","webpack:///../node_modules/ramda-adjunct/es/isNotRegExp.js","webpack:///../node_modules/ramda-adjunct/es/isSet.js","webpack:///../node_modules/ramda-adjunct/es/isNotSet.js","webpack:///../node_modules/ramda-adjunct/es/isSparseArray.js","webpack:///../node_modules/ramda-adjunct/es/isSymbol.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Number.MAX_SAFE_INTEGER.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Number.isSafeInteger.js","webpack:///../node_modules/ramda-adjunct/es/isSafeInteger.js","webpack:///../node_modules/ramda-adjunct/es/isIndexed.js","webpack:///../node_modules/ramda-adjunct/es/stubObj.js","webpack:///../node_modules/ramda-adjunct/es/stubString.js","webpack:///../node_modules/ramda-adjunct/es/stubArray.js","webpack:///../node_modules/ramda-adjunct/es/noop.js","webpack:///../node_modules/ramda-adjunct/es/fantasy-land/mapping.js","webpack:///../node_modules/ramda-adjunct/es/internal/ap.js","webpack:///../node_modules/ramda-adjunct/es/liftFN.js","webpack:///../node_modules/ramda-adjunct/es/liftF.js","webpack:///../node_modules/ramda-adjunct/es/cata.js","webpack:///../node_modules/ramda-adjunct/es/weave.js","webpack:///../node_modules/ramda-adjunct/es/weaveLazy.js","webpack:///../node_modules/ramda-adjunct/es/curryRightN.js","webpack:///../node_modules/ramda-adjunct/es/curryRight.js","webpack:///../node_modules/ramda-adjunct/es/allP.js","webpack:///../node_modules/ramda-adjunct/es/rejectP.js","webpack:///../node_modules/ramda-adjunct/es/resolveP.js","webpack:///../node_modules/ramda-adjunct/es/noneP.js","webpack:///../node_modules/ramda/es/partial.js","webpack:///../node_modules/ramda-adjunct/es/delayP.js","webpack:///../node_modules/ramda-adjunct/es/thenP.js","webpack:///../node_modules/ramda-adjunct/es/thenCatchP.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Promise.allSettled.js","webpack:///../node_modules/ramda-adjunct/es/allSettledP.js","webpack:///../node_modules/ramda-adjunct/es/Y.js","webpack:///../node_modules/ramda-adjunct/es/seq.js","webpack:///../node_modules/ramda-adjunct/es/async.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Promise.any.js","webpack:///../node_modules/ramda-adjunct/es/anyP.js","webpack:///../node_modules/ramda-adjunct/es/lengthGte.js","webpack:///../node_modules/ramda-adjunct/es/lastP.js","webpack:///../node_modules/ramda-adjunct/es/defaultWhen.js","webpack:///../node_modules/ramda-adjunct/es/fnull.js","webpack:///../node_modules/ramda-adjunct/es/reduceIndexed.js","webpack:///../node_modules/ramda-adjunct/es/pickIndexes.js","webpack:///../node_modules/ramda-adjunct/es/list.js","webpack:///../node_modules/ramda-adjunct/es/concatAll.js","webpack:///../node_modules/ramda-adjunct/es/concatRight.js","webpack:///../node_modules/ramda-adjunct/es/reduceP.js","webpack:///../node_modules/ramda-adjunct/es/reduceRightP.js","webpack:///../node_modules/ramda-adjunct/es/sliceFrom.js","webpack:///../node_modules/ramda-adjunct/es/sliceTo.js","webpack:///../node_modules/ramda-adjunct/es/omitIndexes.js","webpack:///../node_modules/ramda-adjunct/es/compact.js","webpack:///../node_modules/ramda-adjunct/es/move.js","webpack:///../node_modules/ramda-adjunct/es/lengthLt.js","webpack:///../node_modules/ramda-adjunct/es/lengthLte.js","webpack:///../node_modules/ramda-adjunct/es/lengthNotEq.js","webpack:///../node_modules/ramda/es/uniq.js","webpack:///../node_modules/ramda-adjunct/es/allEqual.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.repeat.js","webpack:///../node_modules/ramda-adjunct/es/repeatStr.js","webpack:///../node_modules/ramda/es/uniqWith.js","webpack:///../node_modules/ramda-adjunct/es/allIdentical.js","webpack:///../node_modules/ramda-adjunct/es/allIdenticalTo.js","webpack:///../node_modules/ramda-adjunct/es/allEqualTo.js","webpack:///../node_modules/ramda-adjunct/es/flattenDepth.js","webpack:///../node_modules/ramda-adjunct/es/internal/makeFlat.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Array.from.js","webpack:///../node_modules/ramda-adjunct/es/toArray.js","webpack:///../node_modules/ramda-adjunct/es/allUnique.js","webpack:///../node_modules/ramda-adjunct/es/notAllUnique.js","webpack:///../node_modules/ramda-adjunct/es/sortByProps.js","webpack:///../node_modules/ramda-adjunct/es/skipTake.js","webpack:///../node_modules/ramda/es/init.js","webpack:///../node_modules/ramda-adjunct/es/invokeArgs.js","webpack:///../node_modules/ramda-adjunct/es/paths.js","webpack:///../node_modules/ramda-adjunct/es/mergeRight.js","webpack:///../node_modules/ramda/es/props.js","webpack:///../node_modules/ramda-adjunct/es/mergeProps.js","webpack:///../node_modules/ramda-adjunct/es/mergePaths.js","webpack:///../node_modules/ramda-adjunct/es/mergePath.js","webpack:///../node_modules/ramda-adjunct/es/mergeProp.js","webpack:///../node_modules/ramda/es/useWith.js","webpack:///../node_modules/ramda-adjunct/es/omitBy.js","webpack:///../node_modules/ramda/es/pickBy.js","webpack:///../node_modules/ramda-adjunct/es/pathOrLazy.js","webpack:///../node_modules/ramda/es/view.js","webpack:///../node_modules/ramda-adjunct/es/viewOr.js","webpack:///../node_modules/ramda-adjunct/es/hasPath.js","webpack:///../node_modules/ramda/es/dissocPath.js","webpack:///../node_modules/ramda-adjunct/es/spreadPath.js","webpack:///../node_modules/ramda-adjunct/es/spreadProp.js","webpack:///../node_modules/ramda-adjunct/es/flattenPath.js","webpack:///../node_modules/ramda-adjunct/es/flattenProp.js","webpack:///../node_modules/ramda/es/transpose.js","webpack:///../node_modules/ramda-adjunct/es/unzipObjWith.js","webpack:///../node_modules/ramda-adjunct/es/zipObjWith.js","webpack:///../node_modules/ramda-adjunct/es/lensEq.js","webpack:///../node_modules/ramda-adjunct/es/lensNotEq.js","webpack:///../node_modules/ramda-adjunct/es/lensSatisfies.js","webpack:///../node_modules/ramda-adjunct/es/lensNotSatisfy.js","webpack:///../node_modules/ramda/es/sequence.js","webpack:///../node_modules/ramda/es/traverse.js","webpack:///../node_modules/ramda-adjunct/es/fantasy-land/util.js","webpack:///../node_modules/ramda-adjunct/es/fantasy-land/traits.js","webpack:///../node_modules/ramda-adjunct/es/fantasy-land/Identity.js","webpack:///../node_modules/ramda-adjunct/es/lensTraverse.js","webpack:///../node_modules/ramda-adjunct/es/lensIso.js","webpack:///../node_modules/ramda-adjunct/es/propNotEq.js","webpack:///../node_modules/ramda-adjunct/es/pathNotEq.js","webpack:///../node_modules/ramda-adjunct/es/inRange.js","webpack:///../node_modules/ramda-adjunct/es/notBoth.js","webpack:///../node_modules/ramda-adjunct/es/nand.js","webpack:///../node_modules/ramda-adjunct/es/neither.js","webpack:///../node_modules/ramda-adjunct/es/nor.js","webpack:///../node_modules/ramda-adjunct/es/notAllPass.js","webpack:///../node_modules/ramda-adjunct/es/nonePass.js","webpack:///../node_modules/ramda-adjunct/es/argsPass.js","webpack:///../node_modules/ramda-adjunct/es/dropArgs.js","webpack:///../node_modules/ramda-adjunct/es/round.js","webpack:///../node_modules/ramda-adjunct/es/ceil.js","webpack:///../node_modules/ramda-adjunct/es/divideNum.js","webpack:///../node_modules/ramda-adjunct/es/floor.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Math.trunc.js","webpack:///../node_modules/ramda-adjunct/es/trunc.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/Math.sign.js","webpack:///../node_modules/ramda-adjunct/es/sign.js","webpack:///../node_modules/ramda-adjunct/es/subtractNum.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.replaceAll.js","webpack:///../node_modules/ramda-adjunct/es/replaceAll.js","webpack:///../node_modules/ramda-adjunct/es/escapeRegExp.js","webpack:///../node_modules/ramda-adjunct/es/trimStart.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.trimStart.js","webpack:///../node_modules/ramda-adjunct/es/trimEnd.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.trimEnd.js","webpack:///../node_modules/ramda/es/internal/_dropLastWhile.js","webpack:///../node_modules/ramda/es/internal/_xdropLastWhile.js","webpack:///../node_modules/ramda/es/dropLastWhile.js","webpack:///../node_modules/ramda-adjunct/es/trimCharsEnd.js","webpack:///../node_modules/ramda/es/internal/_xdropWhile.js","webpack:///../node_modules/ramda/es/dropWhile.js","webpack:///../node_modules/ramda-adjunct/es/trimCharsStart.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.padStart.js","webpack:///../node_modules/ramda-adjunct/es/padCharsStart.js","webpack:///../node_modules/ramda-adjunct/es/internal/polyfills/String.padEnd.js","webpack:///../node_modules/ramda-adjunct/es/padCharsEnd.js","webpack:///../node_modules/ramda-adjunct/es/padEnd.js","webpack:///../node_modules/ramda-adjunct/es/padStart.js","webpack:///../node_modules/@ux/text-button/dist/es/text-button.js","webpack:///../node_modules/ramda/es/reduceRight.js","webpack:///../node_modules/ramda/es/remove.js"],"names":["equals","stubUndefined","complement","_curry2","prop","obj","curryN","val","Symbol","iterator","Object","isFunction","both","isArray","isEmpty","pipe","type","identical","_typeof","constructor","prototype","either","allPass","isNotEmpty","nodeType","length","has","isGeneratorFunction","isAsyncFunction","isObject","isObjectConstructor","hasObjectConstructor","pathSatisfies","proto","getPrototypeOf","isNaN","Number","invoker","lt","gt","isNilOrEmpty","flip","lte","gte","isFinite","bind","converge","Math","floor","identity","isInteger","modulo","Boolean","MAX_SAFE_INTEGER","pow","value","abs","isSafeInteger","always","freeze","compose","id","concat","empty","map","contramap","ap","of","alt","zero","reduce","traverse","chain","chainRec","extend","extract","bimap","promap","isFunctor","isApply","applyF","applyX","e","curry","arity","fn","lifted","_len","arguments","args","Array","_key","accumulator","apps","slice","Infinity","cata","leftFn","rightFn","catamorphicObj","matchWith","Ok","_ref","Error","_ref2","Just","_ref3","Nothing","undefined","Success","_ref4","Failure","_ref5","getOrElse","elseValue","random","config","apply","run","configAccessor","this","reverse","Promise","all","reject","resolve","p","then","_createPartialApplicator","_concat","makeDelay","settleFnPicker","opts","timeout","propOr","settleFn","setTimeout","delayP","nth","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","toString","call","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","i","arr2","status","reason","iterable","array","allSettledPPolyfill","allSettled","le","f","g","x","fns","tap","tx","generatorFn","asyncWrapper","handle","result","resolved","done","next","error","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_wrapNativeSuper","Class","_cache","Map","Function","indexOf","_isNativeFunction","get","set","Wrapper","_construct","_getPrototypeOf","create","enumerable","writable","configurable","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","a","push","sham","Proxy","Date","setPrototypeOf","__proto__","AggregatedError","_Error","subClass","superClass","_inherits","_super","Derived","hasNativeReflectConstruct","Super","NewTarget","_createSuper","_this","errors","message","exceptions","onReject","anyPPolyfill","any","compareLength","fulfilled","rejected","onFulfill","listOfPromises","lengthEq","last","predicate","defaultVal","defaults","argsWithDefaults","mapIndexed","idx","isNil","addIndex","filterIndexed","filter","containsIndex","indexes","index","contains","list","unapply","leftIdentitySemigroup","when","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","err","_iterableToArrayLimit","_nonIterableRest","acc","listLength","accP","currentValueP","previousValue","currentValue","reducer","flipArgs","reduceRight","arg1","arg2","_","rejectIndexed","fromIdx","toIdx","insert","remove","uniqBy","count","validCount","RangeError","maxCount","log","substring","repeatStrPolyfill","repeatStrInvoker","String","repeat","pred","item","_includesWith","flatten1","recursive","flatt","jlen","j","depth","currentDept","flatList","items","mapFn","thisArg","isNotNil","boundMapFn","fromPolyfill","ifElse","_toArray","props","sort","head","tail","firstTruthy","propName","comparator","b","nthArg","mpath","method","context","boundMethod","ps","merge","mergeAll","path","source","over","lensPath","subj","transformers","defaultFn","unary","pathOr","Const","lens","defaultValue","data","defaultTo","hasPath","objPath","dissocPath","_isInteger","_isArray","dissoc","update","assoc","_curry1","outerlist","innerlist","toPairs","keys","values","zip","fromPairs","isTrue","traversable","sequence","prepend","_curry3","isSameType","typeIdent","monad","_defineProperty","key","defineProperty","functorTrait","applyTrait","applyWithFn","setoidTrait","setoid","semigroupTrait","semigroup","concatenatedValue","chainTrait","newChain","ordTrait","ord","_defineProperties","target","descriptor","_createClass","protoProps","staticProps","_ap","_map","_equals","_chain","_lte","_empty","_contramap","Identity","_value","toFunctorFn","isomorphism","lensIso","to","isomorphic","propEq","pathEq","inRangeImp","low","high","and","or","anyPass","combiningPredicate","predicates","nAry","round","ceil","divide","v","numV","trunc","number","sign","subtract","checkValue","valueName","searchValue","replaceValue","str","checkArguments","RegExp","checkSearchValue","replace","flags","split","join","returnResult","replaceAllPolyfill","replaceAllInvoker","replaceAll","trimStartPolyfill","trimStartInvoker","trimStart","trimEndPolyfill","trimEndInvoker","trimEnd","dropLastWhile","xs","XDropLastWhile","xf","retained","_xfBase","init","input","retain","flush","_reduce","_dispatchable","chars","contained","XDropWhile","padString","targetLength","finalLength","finalPadString","lenghtToPad","padStartInvoker","padStart","remainingLength","padEndInvoker","padEnd","Size","Against","ContentType","enhance","hooks","disabled","block","caps","size","MD","contentType","DEFAULT","_useStyles","theme","against","hover","active","palette","typography","fill","LIGHT","secondary","NEUTRAL","DARK","tertiary","PRIMARY","primaryContrast","PRIMARY_FADED","HIGHLIGHT","highlightContrast","HIGHLIGHT_FADED","highlight","default","root","assign","color","style","width","A","fontFamily","content","lineHeight","paddingBottom","textAlign","backgroundColor","outline","cursor","textDecoration","transition","inner","opacity","borderBottomStyle","textTransform","display","SM","fontSize","LG","INHERIT","PHONE_NUMBER","borderBottomWidth","TextButton","_a","styles","children","domProps","s","t","hasOwnProperty","getOwnPropertySymbols","__rest","createElement","start","splice"],"mappings":"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","file":"pex-static/40/7.987d120516c8c69f7ed7.chunk.js","sourcesContent":["import { equals } from 'ramda';\nimport stubUndefined from './stubUndefined';\n/**\n * Checks if input value is `undefined`.\n *\n * @func isUndefined\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.0.1|v0.0.1}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotUndefined|isNotUndefined}\n * @example\n *\n * RA.isUndefined(1); //=> false\n * RA.isUndefined(undefined); //=> true\n * RA.isUndefined(null); //=> false\n */\n\nvar isUndefined = equals(stubUndefined());\nexport default isUndefined;","import { complement } from 'ramda';\nimport isUndefined from './isUndefined';\n/**\n * Checks if input value is complement `undefined`.\n *\n * @func isNotUndefined\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.0.1|v0.0.1}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isUndefined|isUndefined}\n * @example\n *\n * RA.isNotUndefined(1); //=> true\n * RA.isNotUndefined(undefined); //=> false\n * RA.isNotUndefined(null); //=> true\n */\n\nvar isNotUndefined = complement(isUndefined);\nexport default isNotUndefined;","import { equals } from 'ramda';\n/**\n * Checks if input value is `null`.\n *\n * @func isNull\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.1.0|v0.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNull|isNotNull}\n * @example\n *\n * RA.isNull(1); //=> false\n * RA.isNull(undefined); //=> false\n * RA.isNull(null); //=> true\n */\n\nvar isNull = equals(null);\nexport default isNull;","import { complement } from 'ramda';\nimport isNull from './isNull';\n/**\n * Checks if input value is complement of `null`.\n *\n * @func isNotNull\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.1.0|v0.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNull|isNull}\n * @example\n *\n * RA.isNotNull(1); //=> true\n * RA.isNotNull(undefined); //=> true\n * RA.isNotNull(null); //=> false\n */\n\nvar isNotNull = complement(isNull);\nexport default isNotNull;","import _curry2 from \"./internal/_curry2.js\";\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 */\n\nvar hasIn =\n/*#__PURE__*/\n_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\nexport default hasIn;","import { hasIn, curryN } from 'ramda';\nimport isFunction from './isFunction';\n/**\n * Checks whether the passed value is iterable.\n *\n * @func isIterable\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol}\n * @return {boolean}\n * @example\n *\n * RA.isIterable(['arrays', 'are', 'iterable']); //=> true\n * RA.isIterable('strings are iterable, too'); //=> true\n * RA.isIterable((function* () {})()); //=> true (generator objects are both iterable and iterators)\n *\n * RA.isIterable({}); //=> false\n * RA.isIterable(-0); //=> false\n * RA.isIterable(null); //=> false\n * RA.isIterable(undefined); //=> false\n */\n\nvar isIterable = curryN(1, function (val) {\n if (typeof Symbol === 'undefined') {\n return false;\n }\n\n return hasIn(Symbol.iterator, Object(val)) && isFunction(val[Symbol.iterator]);\n});\nexport default isIterable;","import { both, isEmpty } from 'ramda';\nimport isArray from './isArray';\n/**\n * Checks if input value is an empty `Array`.\n *\n * @func isEmptyArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotEmptyArray|isNotEmptyArray}\n * @example\n *\n * RA.isEmptyArray([]); // => true\n * RA.isEmptyArray([42]); // => false\n * RA.isEmptyArray({}); // => false\n * RA.isEmptyArray(null); // => false\n * RA.isEmptyArray(undefined); // => false\n * RA.isEmptyArray(42); // => false\n * RA.isEmptyArray('42'); // => false\n */\n\nvar isEmptyArray = both(isArray, isEmpty);\nexport default isEmptyArray;","import { type, identical, pipe, curryN } from 'ramda';\n/**\n * Checks if input value is `Boolean`.\n *\n * @func isBoolean\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotBoolean|isNotBoolean}\n * @example\n *\n * RA.isBoolean(false); //=> true\n * RA.isBoolean(true); //=> true\n * RA.isBoolean(null); //=> false\n */\n\nvar isBoolean = curryN(1, pipe(type, identical('Boolean')));\nexport default isBoolean;","import { complement } from 'ramda';\nimport isBoolean from './isBoolean';\n/**\n * Checks if input value is complement of `Boolean`.\n *\n * @func isNotBoolean\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isBoolean|isBoolean}\n * @example\n *\n * RA.isNotBoolean(false); //=> false\n * RA.isNotBoolean(true); //=> false\n * RA.isNotBoolean(null); //=> true\n */\n\nvar isNotBoolean = complement(isBoolean);\nexport default isNotBoolean;","import { curryN, pipe, type, identical } from 'ramda';\n/**\n * Checks if input value is `String`.\n *\n * @func isString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotString|isNotString}\n * @example\n *\n * RA.isString('abc'); //=> true\n * RA.isString(1); //=> false\n */\n\nvar isString = curryN(1, pipe(type, identical('String')));\nexport default isString;","import { equals } from 'ramda';\n/**\n * Checks if input value is an empty `String`.\n *\n * @func isEmptyString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotEmptyString|isNotEmptyString}\n * @example\n *\n * RA.isEmptyString(''); // => true\n * RA.isEmptyString('42'); // => false\n * RA.isEmptyString(new String('42')); // => false\n * RA.isEmptyString(new String('')); // => false\n * RA.isEmptyString([42]); // => false\n * RA.isEmptyString({}); // => false\n * RA.isEmptyString(null); // => false\n * RA.isEmptyString(undefined); // => false\n * RA.isEmptyString(42); // => false\n */\n\nvar isEmptyString = equals('');\nexport default isEmptyString;","import { complement } from 'ramda';\nimport isString from './isString';\n/**\n * Checks if input value is complement of `String`.\n *\n * @func isNotString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isString|isString}\n * @example\n *\n * RA.isNotString('abc'); //=> false\n * RA.isNotString(1); //=> true\n */\n\nvar isNotString = complement(isString);\nexport default isNotString;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isOfTypeObject = function isOfTypeObject(val) {\n return _typeof(val) === 'object';\n};\n\nexport default isOfTypeObject;","import { both, either, curryN } from 'ramda';\nimport isNotNull from './isNotNull';\nimport isFunction from './isFunction';\nimport isOfTypeObject from './internal/isOfTypeObject';\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is language type of `Object`.\n *\n * @func isObj\n * @aliases isObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotObj|isNotObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isObj({}); //=> true\n * RA.isObj([]); //=> true\n * RA.isObj(() => {}); //=> true\n * RA.isObj(null); //=> false\n * RA.isObj(undefined); //=> false\n */\n\n/* eslint-enable max-len */\n\nvar isObj = curryN(1, both(isNotNull, either(isOfTypeObject, isFunction)));\nexport default isObj;","import { complement } from 'ramda';\nimport isObj from './isObj';\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of language type of `Object`.\n *\n * @func isNotObj\n * @aliases isNotObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isObj|isObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isNotObj({}); //=> false\n * RA.isNotObj([]); //=> false\n * RA.isNotObj(() => {}); //=> false\n * RA.isNotObj(null); //=> true\n * RA.isNotObj(undefined); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isNotObj = complement(isObj);\nexport default isNotObj;","import { allPass } from 'ramda';\nimport isString from './isString';\nimport isNotObj from './isNotObj';\nimport isNotEmpty from './isNotEmpty';\n/**\n * Checks if input value is not an empty `String`.\n *\n * @func isNonEmptyString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isEmptyString|isEmptyString}\n * @example\n *\n * RA.isNonEmptyString('42'); // => true\n * RA.isNonEmptyString(''); // => false\n * RA.isNonEmptyString(new String('42')); // => false\n * RA.isNonEmptyString(new String('')); // => false\n * RA.isNonEmptyString([42]); // => false\n * RA.isNonEmptyString({}); // => false\n * RA.isNonEmptyString(null); // => false\n * RA.isNonEmptyString(undefined); // => false\n * RA.isNonEmptyString(42); // => false\n */\n\nvar isNonEmptyString = allPass([isString, isNotObj, isNotEmpty]);\nexport default isNonEmptyString;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { has, curryN } from 'ramda';\nimport isArray from './isArray';\nimport isString from './isString';\n/* eslint-disable max-len */\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @func isArrayLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.9.0|v1.9.0}\n * @licence https://github.com/ramda/ramda/blob/master/LICENSE.txt\n * @category List\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @returns {boolean} `true` if `val` has a numeric length property and extreme indices defined; `false` otherwise.\n * @see {@link RA.isNotArrayLike|isNotArrayLike}\n\n * @example\n *\n * RA.isArrayLike([]); //=> true\n * RA.isArrayLike(true); //=> false\n * RA.isArrayLike({}); //=> false\n * RA.isArrayLike({length: 10}); //=> false\n * RA.isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isArrayLike = curryN(1, function (val) {\n if (isArray(val)) {\n return true;\n }\n\n if (!val) {\n return false;\n }\n\n if (isString(val)) {\n return false;\n }\n\n if (_typeof(val) !== 'object') {\n return false;\n }\n\n if (val.nodeType === 1) {\n return !!val.length;\n }\n\n if (val.length === 0) {\n return true;\n }\n\n if (val.length > 0) {\n return has(0, val) && has(val.length - 1, val);\n }\n\n return false;\n});\nexport default isArrayLike;\n/**\n The MIT License (MIT)\n\n Copyright (c) 2013-2016 Scott Sauyet and Michael Hurley\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/","import { complement } from 'ramda';\nimport isArrayLike from './isArrayLike';\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @func isNotArrayLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isArrayLike|isArrayLike}\n * @example\n *\n * RA.isNotArrayLike([]); //=> false\n * RA.isNotArrayLike(true); //=> true\n * RA.isNotArrayLike({}); //=> true\n * RA.isNotArrayLike({length: 10}); //=> true\n * RA.isNotArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> false\n */\n\nvar isNotArrayLike = complement(isArrayLike);\nexport default isNotArrayLike;","import { complement } from 'ramda';\nimport isGeneratorFunction from './isGeneratorFunction';\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Generator Function`\n *\n * @func isNotGeneratorFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotGeneratorFunction(function* test() { }); //=> false\n * RA.isNotGeneratorFunction(null); //=> true\n * RA.isNotGeneratorFunction(function test() { }); //=> true\n * RA.isNotGeneratorFunction(() => {}); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isNotGeneratorFunction = complement(isGeneratorFunction);\nexport default isNotGeneratorFunction;","import { complement } from 'ramda';\nimport isAsyncFunction from './isAsyncFunction';\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Async Function`\n *\n * @func isNotAsyncFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotAsyncFunction(async function test() { }); //=> false\n * RA.isNotAsyncFunction(null); //=> true\n * RA.isNotAsyncFunction(function test() { }); //=> true\n * RA.isNotAsyncFunction(() => {}); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isNotAsyncFunction = complement(isAsyncFunction);\nexport default isNotAsyncFunction;","import { complement } from 'ramda';\nimport isFunction from './isFunction';\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Function`.\n *\n * @func isNotFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isNotAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotFunction(function test() { }); //=> false\n * RA.isNotFunction(function* test() { }); //=> false\n * RA.isNotFunction(async function test() { }); //=> false\n * RA.isNotFunction(() => {}); //=> false\n * RA.isNotFunction(null); //=> true\n * RA.isNotFunction('abc'); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isNotFunction = complement(isFunction);\nexport default isNotFunction;","import { both, curryN } from 'ramda';\nimport isNotNull from './isNotNull';\nimport isOfTypeObject from './internal/isOfTypeObject';\n/* eslint-disable max-len */\n\n/**\n * Checks if value is object-like. A value is object-like if it's not null and has a typeof result of \"object\".\n *\n * @func isObjLike\n * @aliases isObjectLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotObjLike|isNotObjLike}, {@link RA.isObj|isObj}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isObjLike({}); //=> true\n * RA.isObjLike([]); //=> true\n * RA.isObjLike(() => {}); //=> false\n * RA.isObjLike(null); //=> false\n * RA.isObjLike(undefined); //=> false\n */\n\n/* eslint-enable max-len */\n\nvar isObjLike = curryN(1, both(isNotNull, isOfTypeObject));\nexport default isObjLike;","import { complement } from 'ramda';\nimport isObjLike from './isObjLike';\n/* eslint-disable max-len */\n\n/**\n * Checks if value is not object-like. A value is object-like if it's not null and has a typeof result of \"object\".\n *\n * @func isNotObjLike\n * @aliases isNotObjectLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isNotObjLike({}); //=> false\n * RA.isNotObjLike([]); //=> false\n * RA.isNotObjLike(() => {}); //=> true\n * RA.isNotObjLike(null); //=> true\n * RA.isNotObjLike(undefined); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isNotObjLike = complement(isObjLike);\nexport default isNotObjLike;","import { pipe, type, identical, both, equals, toString, pathSatisfies, curryN } from 'ramda';\nimport isNull from './isNull';\nimport isObjLike from './isObjLike';\nimport isFunction from './isFunction';\nvar isObject = pipe(type, identical('Object'));\nvar isObjectConstructor = pipe(toString, equals(toString(Object)));\nvar hasObjectConstructor = pathSatisfies(both(isFunction, isObjectConstructor), ['constructor']);\n/* eslint-disable max-len */\n\n/**\n * Check to see if an object is a plain object (created using `{}`, `new Object()` or `Object.create(null)`).\n *\n * @func isPlainObj\n * @aliases isPlainObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotPlainObj|isNotPlainObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}\n * @example\n *\n * class Bar {\n * constructor() {\n * this.prop = 'value';\n * }\n * }\n *\n * RA.isPlainObj(new Bar()); //=> false\n * RA.isPlainObj({ prop: 'value' }); //=> true\n * RA.isPlainObj(['a', 'b', 'c']); //=> false\n * RA.isPlainObj(Object.create(null); //=> true\n * RA.isPlainObj(new Object()); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isPlainObj = curryN(1, function (val) {\n if (!isObjLike(val) || !isObject(val)) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(val);\n\n if (isNull(proto)) {\n return true;\n }\n\n return hasObjectConstructor(proto);\n});\nexport default isPlainObj;","import { complement } from 'ramda';\nimport isPlainObj from './isPlainObj';\n/* eslint-disable max-len */\n\n/**\n * Check to see if an object is a not plain object (created using `{}`, `new Object()` or `Object.create(null)`).\n *\n * @func isNotPlainObj\n * @aliases isNotPlainObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPlainObj|isPlainObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}\n * @example\n *\n * class Bar {\n * constructor() {\n * this.prop = 'value';\n * }\n * }\n *\n * RA.isNotPlainObj(new Bar()); //=> true\n * RA.isNotPlainObj({ prop: 'value' }); //=> false\n * RA.isNotPlainObj(['a', 'b', 'c']); //=> true\n * RA.isNotPlainObj(Object.create(null); //=> false\n * RA.isNotPlainObj(new Object()); //=> false\n */\n\n/* eslint-enable max-len */\n\nvar isNotPlainObj = complement(isPlainObj);\nexport default isNotPlainObj;","import { type, identical, pipe, curryN } from 'ramda';\n/**\n * Checks if value is `Date` object.\n *\n * @func isDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotDate|isNotDate}, {@link RA.isValidDate|isValidDate}, {@link RA.isNotValidDate|isNotValidDate}\n * @example\n *\n * RA.isDate(new Date()); //=> true\n * RA.isDate('1997-07-16T19:20+01:00'); //=> false\n */\n\nvar isDate = curryN(1, pipe(type, identical('Date')));\nexport default isDate;","import { complement } from 'ramda';\nimport isDate from './isDate';\n/**\n * Checks if value is complement of `Date` object.\n *\n * @func isNotDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isDate|isDate}\n * @example\n *\n * RA.isNotDate(new Date()); //=> false\n * RA.isNotDate('1997-07-16T19:20+01:00'); //=> true\n */\n\nvar isNotDate = complement(isDate);\nexport default isNotDate;","import { curryN, pipe, type, identical } from 'ramda';\n/**\n * Checks if value is a `Number` primitive or object.\n *\n * @func isNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNumber|isNotNumber}\n * @example\n *\n * RA.isNumber(5); // => true\n * RA.isNumber(Number.MAX_VALUE); // => true\n * RA.isNumber(-Infinity); // => true\n * RA.isNumber(NaN); // => true\n * RA.isNumber('5'); // => false\n */\n\nvar isNumber = curryN(1, pipe(type, identical('Number')));\nexport default isNumber;","import { both } from 'ramda';\nimport isNumber from '../../isNumber'; // eslint-disable-next-line no-restricted-globals\n\nvar isNaNPolyfill = both(isNumber, isNaN);\nexport default isNaNPolyfill;","import { curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Number.isNaN';\nexport var isNaNPolyfill = curryN(1, polyfill);\n/**\n * Checks whether the passed value is `NaN` and its type is `Number`.\n * It is a more robust version of the original, global isNaN().\n *\n *\n * @func isNaN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNaN|isNotNaN}\n * @example\n *\n * RA.isNaN(NaN); // => true\n * RA.isNaN(Number.NaN); // => true\n * RA.isNaN(0 / 0); // => true\n *\n * // e.g. these would have been true with global isNaN().\n * RA.isNaN('NaN'); // => false\n * RA.isNaN(undefined); // => false\n * RA.isNaN({}); // => false\n * RA.isNaN('blabla'); // => false\n *\n * RA.isNaN(true); // => false\n * RA.isNaN(null); // => false\n * RA.isNaN(37); // => false\n * RA.isNaN('37'); // => false\n * RA.isNaN('37.37'); // => false\n * RA.isNaN(''); // => false\n * RA.isNaN(' '); // => false\n */\n\nvar _isNaN = isFunction(Number.isNaN) ? curryN(1, Number.isNaN) : isNaNPolyfill;\n\nexport default _isNaN;","import { complement } from 'ramda';\nimport _isNaN from './isNaN';\n/**\n * Checks whether the passed value is complement of `NaN` and its type is not `Number`.\n *\n * @func isNotNaN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNaN|isNaN}\n * @example\n *\n * RA.isNotNaN(NaN); // => false\n * RA.isNotNaN(Number.NaN); // => false\n * RA.isNotNaN(0 / 0); // => false\n *\n * RA.isNotNaN('NaN'); // => true\n * RA.isNotNaN(undefined); // => true\n * RA.isNotNaN({}); // => true\n * RA.isNotNaN('blabla'); // => true\n *\n * RA.isNotNaN(true); // => true\n * RA.isNotNaN(null); // => true\n * RA.isNotNaN(37); // => true\n * RA.isNotNaN('37'); // => true\n * RA.isNotNaN('37.37'); // => true\n * RA.isNotNaN(''); // => true\n * RA.isNotNaN(' '); // => true\n */\n\nvar isNotNaN = complement(_isNaN);\nexport default isNotNaN;","import { invoker, both, pipe, curryN } from 'ramda';\nimport isDate from './isDate';\nimport isNotNaN from './isNotNaN';\n/* eslint-disable max-len */\n\n/**\n * Checks if value is valid `Date` object.\n *\n * @func isValidDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isDate|isDate}, {@link RA.isNotDate|isNotDate}, {@link RA.isNotValidDate|isNotValidDate}\n * @example\n *\n * RA.isValidDate(new Date()); //=> true\n * RA.isValidDate(new Date('a')); //=> false\n */\n\n/* eslint-enable max-len */\n\nvar isValidDate = curryN(1, both(isDate, pipe(invoker(0, 'getTime'), isNotNaN)));\nexport default isValidDate;","import { complement } from 'ramda';\nimport isValidDate from './isValidDate';\n/**\n * Checks if value is complement of valid `Date` object.\n *\n * @func isNotValidDate\n * @aliases isInvalidDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isValidDate|isValidDate}, {@link RA.isDate|isDate}, {@link RA.isNotDate|isNotDate}\n * @example\n *\n * RA.isNotValidDate(new Date()); //=> false\n * RA.isNotValidDate(new Date('a')); //=> true\n */\n\nvar isNotValidDate = complement(isValidDate);\nexport default isNotValidDate;","import { complement } from 'ramda';\nimport isNumber from './isNumber';\n/**\n * Checks if value is a complement of `Number` primitive or object.\n *\n * @func isNotNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNumber|isNumber}\n * @example\n *\n * RA.isNotNumber(5); // => false\n * RA.isNotNumber(Number.MAX_VALUE); // => false\n * RA.isNotNumber(-Infinity); // => false\n * RA.isNotNumber('5'); // => true\n */\n\nvar isNotNumber = complement(isNumber);\nexport default isNotNumber;","import { both, lt } from 'ramda';\nimport isNumber from './isNumber';\n/**\n * Checks if value is a positive `Number` primitive or object. Zero is not considered positive.\n *\n * @func isPositive\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.15.0|v1.15.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegative|isNegative}\n * @example\n *\n * RA.isPositive(1); // => true\n * RA.isPositive(Number.MAX_VALUE); // => true\n * RA.isPositive(-Infinity); // => false\n * RA.isPositive(NaN); // => false\n * RA.isPositive('5'); // => false\n */\n\nvar isPositive = both(isNumber, lt(0));\nexport default isPositive;","import { both, gt, curryN } from 'ramda';\nimport isNumber from './isNumber';\n/**\n * Checks if value is a negative `Number` primitive or object. Zero is not considered neither\n * positive or negative.\n *\n * @func isNegative\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.15.0|v1.15.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPositive|isPositive}\n * @example\n *\n * RA.isNegative(-1); // => true\n * RA.isNegative(Number.MIN_VALUE); // => false\n * RA.isNegative(+Infinity); // => false\n * RA.isNegative(NaN); // => false\n * RA.isNegative('5'); // => false\n */\n\nvar isNegative = curryN(1, both(isNumber, gt(0)));\nexport default isNegative;","import { identical } from 'ramda';\n/**\n * Checks if value is a positive zero (+0).\n *\n * @func isPositiveZero\n * @memberof RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegativeZero|isNegativeZero}\n * @example\n *\n * RA.isPositiveZero(+0); //=> true\n * RA.isPositiveZero(0); //=> true\n * RA.isPositiveZero(-0); //=> false\n * RA.isPositiveZero(null); //=> false\n */\n\nvar isPositiveZero = identical(+0);\nexport default isPositiveZero;","import { identical } from 'ramda';\n/**\n * Checks if value is a negative zero (-0).\n *\n * @func isNegativeZero\n * @memberof RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see @see {@link RA.isPositiveZero|isPositiveZero}\n * @example\n *\n * RA.isNegativeZero(-0); //=> true\n * RA.isNegativeZero(+0); //=> false\n * RA.isNegativeZero(0); //=> false\n * RA.isNegativeZero(null); //=> false\n */\n\nvar isNegativeZero = identical(-0);\nexport default isNegativeZero;","import { complement } from 'ramda';\nimport isNilOrEmpty from './isNilOrEmpty';\n/**\n * Returns `true` if the given value is its type's empty value, `null` or `undefined`.\n *\n * @func isNotNilOrEmpty\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNilOrEmpty|isNilOrEmpty}\n * @example\n *\n * RA.isNotNilOrEmpty([1, 2, 3]); //=> true\n * RA.isNotNilOrEmpty([]); //=> false\n * RA.isNotNilOrEmpty(''); //=> false\n * RA.isNotNilOrEmpty(null); //=> false\n * RA.isNotNilOrEmpty(undefined): //=> false\n * RA.isNotNilOrEmpty({}); //=> false\n * RA.isNotNilOrEmpty({length: 0}); //=> true\n */\n\nvar isNotNilOrEmpty = complement(isNilOrEmpty);\nexport default isNotNilOrEmpty;","import { both, lte, flip, curryN } from 'ramda';\nimport isNumber from './isNumber';\n/**\n * Checks if value is a non-positive `Number` primitive or object. This includes all negative\n * numbers and zero.\n *\n * @func isNonPositive\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegative|isNegative}, {@link RA.isNonNegative|isNonNegative}\n * @example\n *\n * RA.isNonPositive(0); // => true\n * RA.isNonPositive(-1); // => true\n * RA.isNonPositive(-Infinity); // => true\n * RA.isNonPositive(Number.MIN_VALUE); // => true\n *\n * RA.isNonPositive(Infinity); // => false\n * RA.isNonPositive(Number.MAX_VALUE); // => false\n * RA.isNonPositive(NaN); // => false\n */\n\nvar isNonPositive = curryN(1, both(isNumber, flip(lte)(0)));\nexport default isNonPositive;","import { both, gte, flip, curryN } from 'ramda';\nimport isNumber from './isNumber';\n/**\n * Checks if value is a non-negative `Number` primitive or object. This includes all positive\n * numbers and zero.\n *\n * @func isNonNegative\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPositive|isPositive}, {@link RA.isNonPositive|isNonPositive}\n * @example\n *\n * RA.isNonNegative(0); // => true\n * RA.isNonNegative(1); // => true\n * RA.isNonNegative(Infinity); // => true\n * RA.isNonNegative(Number.MAX_VALUE); // => true\n *\n * RA.isNonNegative(-Infinity); // => false\n * RA.isNonNegative(Number.MIN_VALUE); // => false\n * RA.isNonNegative(NaN); // => false\n */\n\nvar isNonNegative = curryN(1, both(isNumber, flip(gte)(0)));\nexport default isNonNegative;","import { type, identical, pipe, curryN } from 'ramda';\n/**\n * Predicate for determining if a provided value is an instance of a Map.\n *\n * @func isMap\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isSet|isSet}}\n * @example\n *\n * RA.isMap(new Map()); //=> true\n * RA.isMap(new Map([[1, 2], [2, 1]])); //=> true\n * RA.isSet(new Set()); //=> false\n * RA.isSet(new Set([1,2]); //=> false\n * RA.isSet(new Object()); //=> false\n */\n\nvar isMap = curryN(1, pipe(type, identical('Map')));\nexport default isMap;","import { complement } from 'ramda';\nimport isMap from './isMap';\n/**\n * Checks if value is complement of `Map` object.\n *\n * @func isNotMap\n * @memberOf RA\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isMap|isMap}\n * @example\n *\n * RA.isNotMap(new Map()); //=> false\n * RA.isNotMap(new Map([[1, 2], [2, 1]])); //=> false\n * RA.isNotMap(new Set()); //=> true\n * RA.isNotMap({}); //=> true\n * RA.isNotMap(12); //=> true\n */\n\nvar isNotMap = complement(isMap);\nexport default isNotMap;","import { both } from 'ramda';\nimport isNumber from '../../isNumber'; // eslint-disable-next-line no-restricted-globals\n\nvar isFinitePolyfill = both(isNumber, isFinite);\nexport default isFinitePolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Number.isFinite';\nexport var isFinitePolyfill = curryN(1, polyfill);\n/**\n * Checks whether the passed value is a finite `Number`.\n *\n * @func isFinite\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotFinite|isNotFinite}\n * @example\n *\n * RA.isFinite(Infinity); //=> false\n * RA.isFinite(NaN); //=> false\n * RA.isFinite(-Infinity); //=> false\n *\n * RA.isFinite(0); // true\n * RA.isFinite(2e64); // true\n *\n * RA.isFinite('0'); // => false\n * // would've been true with global isFinite('0')\n * RA.isFinite(null); // => false\n * // would've been true with global isFinite(null)\n */\n\nvar _isFinite = isFunction(Number.isFinite) ? curryN(1, bind(Number.isFinite, Number)) : isFinitePolyfill;\n\nexport default _isFinite;","import { complement } from 'ramda';\nimport _isFinite from './isFinite';\n/**\n * Checks whether the passed value is complement of finite `Number`.\n *\n *\n * @func isNotFinite\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFinite|isFinite}\n * @example\n *\n * RA.isNotFinite(Infinity); //=> true\n * RA.isNotFinite(NaN); //=> true\n * RA.isNotFinite(-Infinity); //=> true\n *\n * RA.isNotFinite(0); // false\n * RA.isNotFinite(2e64); // false\n *\n * RA.isNotFinite('0'); // => true\n * RA.isNotFinite(null); // => true\n */\n\nvar isNotFinite = complement(_isFinite);\nexport default isNotFinite;","import { both, converge, equals, identity } from 'ramda';\nimport isFinite from '../../isFinite';\nvar isIntegerPolyfill = both(isFinite, converge(equals, [Math.floor, identity]));\nexport default isIntegerPolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Number.isInteger';\nexport var isIntegerPolyfill = curryN(1, polyfill);\n/**\n * Checks whether the passed value is an `integer`.\n *\n * @func isInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotInteger|isNotInteger}\n * @example\n *\n * RA.isInteger(0); //=> true\n * RA.isInteger(1); //=> true\n * RA.isInteger(-100000); //=> true\n *\n * RA.isInteger(0.1); //=> false\n * RA.isInteger(Math.PI); //=> false\n *\n * RA.isInteger(NaN); //=> false\n * RA.isInteger(Infinity); //=> false\n * RA.isInteger(-Infinity); //=> false\n * RA.isInteger('10'); //=> false\n * RA.isInteger(true); //=> false\n * RA.isInteger(false); //=> false\n * RA.isInteger([1]); //=> false\n */\n\nvar isInteger = isFunction(Number.isInteger) ? curryN(1, bind(Number.isInteger, Number)) : isIntegerPolyfill;\nexport default isInteger;","import { complement } from 'ramda';\nimport isInteger from './isInteger';\n/**\n * Checks whether the passed value is complement of an `integer`.\n *\n *\n * @func isNotInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isInteger|isInteger}\n * @example\n *\n * RA.isNotInteger(0); //=> false\n * RA.isNotInteger(1); //=> false\n * RA.isNotInteger(-100000); //=> false\n *\n * RA.isNotInteger(0.1); //=> true\n * RA.isNotInteger(Math.PI); //=> true\n *\n * RA.isNotInteger(NaN); //=> true\n * RA.isNotInteger(Infinity); //=> true\n * RA.isNotInteger(-Infinity); //=> true\n * RA.isNotInteger('10'); //=> true\n * RA.isNotInteger(true); //=> true\n * RA.isNotInteger(false); //=> true\n * RA.isNotInteger([1]); //=> true\n */\n\nvar isNotInteger = complement(isInteger);\nexport default isNotInteger;","import { type, pipe, identical, curryN } from 'ramda';\n/**\n * Checks if value is a BigInt.\n *\n * @func isBigInt\n * @memberOf RA\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @example\n *\n * RA.isBigInt(5); // => false\n * RA.isBigInt(Number.MAX_VALUE); // => false\n * RA.isBigInt(-Infinity); // => false\n * RA.isBigInt(10); // => false\n * RA.isBigInt(10n); // => true\n * RA.isBigInt(BitInt(9007199254740991)); // => true\n */\n\nvar isBigInt = curryN(1, pipe(type, identical('BigInt')));\nexport default isBigInt;","import { complement, both } from 'ramda';\nimport isInteger from './isInteger';\nimport isFinite from './isFinite';\n/**\n * Checks whether the passed value is a `float`.\n *\n * @func isFloat\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotFloat|isNotFloat}\n * @example\n *\n * RA.isFloat(0); //=> false\n * RA.isFloat(1); //=> false\n * RA.isFloat(-100000); //=> false\n *\n * RA.isFloat(0.1); //=> true\n * RA.isFloat(Math.PI); //=> true\n *\n * RA.isFloat(NaN); //=> false\n * RA.isFloat(Infinity); //=> false\n * RA.isFloat(-Infinity); //=> false\n * RA.isFloat('10'); //=> false\n * RA.isFloat(true); //=> false\n * RA.isFloat(false); //=> false\n * RA.isFloat([1]); //=> false\n */\n\nvar isFloat = both(isFinite, complement(isInteger));\nexport default isFloat;","import { complement, curryN } from 'ramda';\nimport isFloat from './isFloat';\n/**\n * Checks whether the passed value is complement of a `float`.\n *\n * @func isNotFloat\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFloat|isFloat}\n * @example\n *\n * RA.isNotFloat(0); //=> true\n * RA.isNotFloat(1); //=> true\n * RA.isNotFloat(-100000); //=> true\n *\n * RA.isNotFloat(0.1); //=> false\n * RA.isNotFloat(Math.PI); //=> false\n *\n * RA.isNotFloat(NaN); //=> true\n * RA.isNotFloat(Infinity); //=> true\n * RA.isNotFloat(-Infinity); //=> true\n * RA.isNotFloat('10'); //=> true\n * RA.isNotFloat(true); //=> true\n * RA.isNotFloat(false); //=> true\n * RA.isNotFloat([1]); //=> true\n */\n\nvar isNotFloat = curryN(1, complement(isFloat));\nexport default isNotFloat;","import { either, curryN } from 'ramda';\nimport isFloat from './isFloat';\nimport isInteger from './isInteger';\n/**\n * Checks if value is a valid `Number`. A valid `Number` is a number that is not `NaN`, `Infinity`\n * or `-Infinity`.\n *\n * @func isValidNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotValidNumber|isNotValidNumber}\n * @example\n *\n * RA.isValidNumber(1); //=> true\n * RA.isValidNumber(''); //=> false\n * RA.isValidNumber(NaN); //=> false\n * RA.isValidNumber(Infinity); //=> false\n * RA.isValidNumber(-Infinity); //=> false\n */\n\nvar isValidNumber = curryN(1, either(isInteger, isFloat));\nexport default isValidNumber;","import { complement } from 'ramda';\nimport isValidNumber from './isValidNumber';\n/**\n * Checks if value is not a valid `Number`. A valid `Number` is a number that is not `NaN`,\n * `Infinity` or `-Infinity`.\n *\n * @func isNotValidNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isValidNumber|isValidNumber}\n * @example\n *\n * RA.isNotValidNumber(1); //=> false\n * RA.isNotValidNumber(''); //=> true\n * RA.isNotValidNumber(NaN); //=> true\n * RA.isNotValidNumber(Infinity); //=> true\n * RA.isNotValidNumber(-Infinity); //=> true\n */\n\nvar isNotValidNumber = complement(isValidNumber);\nexport default isNotValidNumber;","import { both, pipe, modulo, flip, equals, complement, curryN } from 'ramda';\nimport isInteger from './isInteger';\n/**\n * Checks if value is odd integer number.\n * An odd number is an integer which is not a multiple DIVISIBLE of two.\n *\n * @func isOdd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isEven|isEven}\n * @example\n *\n * RA.isOdd(1); // => true\n * RA.isOdd(-Infinity); // => false\n * RA.isOdd(4); // => false\n * RA.isOdd(3); // => true\n */\n\nvar isOdd = curryN(1, both(isInteger, pipe(flip(modulo)(2), complement(equals)(0))));\nexport default isOdd;","import { both, complement, curryN } from 'ramda';\nimport isInteger from './isInteger';\nimport isOdd from './isOdd';\n/**\n * Checks if value is even integer number.\n * An even number is an integer which is \"evenly divisible\" by two.\n * Zero is an even number because zero divided by two equals zero,\n * which despite not being a natural number, is an integer.\n * Even numbers are either positive or negative.\n *\n * @func isEven\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isOdd|isOdd}\n * @example\n *\n * RA.isEven(0); // => true\n * RA.isEven(1); // => false\n * RA.isEven(-Infinity); // => false\n * RA.isEven(4); // => true\n * RA.isEven(3); // => false\n */\n\nvar isEven = curryN(1, both(isInteger, complement(isOdd)));\nexport default isEven;","import { both, equals, length, pipe, curryN } from 'ramda';\nimport isArray from './isArray';\n/**\n * Checks if input value is a pair.\n *\n * @func isPair\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#pair|R.pair}, {@link RA.isNotPair|isNotPair}\n * @example\n *\n * RA.isPair([]); // => false\n * RA.isPair([0]); // => false\n * RA.isPair([0, 1]); // => true\n * RA.isPair([0, 1, 2]); // => false\n * RA.isPair({ 0: 0, 1: 1 }); // => false\n * RA.isPair({ foo: 0, bar: 0 }); // => false\n */\n\nvar isPair = curryN(1, both(isArray, pipe(length, equals(2))));\nexport default isPair;","import { complement } from 'ramda';\nimport isPair from './isPair';\n/**\n * Checks if input value is complement of a pair.\n *\n * @func isNotPair\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#pair|R.pair}, {@link RA.isPair|isPair}\n * @example\n *\n * RA.isNotPair([]); // => true\n * RA.isNotPair([0]); // => true\n * RA.isNotPair([0, 1]); // => false\n * RA.isNotPair([0, 1, 2]); // => true\n * RA.isNotPair({0: 0, 1: 1}); // => true\n * RA.isNotPair({foo: 0, bar: 0}); // => true\n */\n\nvar isNotPair = complement(isPair);\nexport default isNotPair;","import { pathSatisfies } from 'ramda';\nimport isFunction from './isFunction';\n/**\n * Checks if input value is a `thenable`.\n * `thenable` is an object or function that defines a `then` method.\n *\n * @func isThenable\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPromise|isPromise}\n * @example\n *\n * RA.isThenable(null); // => false\n * RA.isThenable(undefined); // => false\n * RA.isThenable([]); // => false\n * RA.isThenable(Promise.resolve()); // => true\n * RA.isThenable(Promise.reject()); // => true\n * RA.isThenable({ then: () => 1 }); // => true\n */\n\nvar isThenable = pathSatisfies(isFunction, ['then']);\nexport default isThenable;","import { both, pipe, toString, equals, curryN } from 'ramda';\nimport isObj from './isObj';\n/**\n * Checks if input value is a native `Promise`.\n * The Promise object represents the eventual completion (or failure)\n * of an asynchronous operation, and its resulting value.\n *\n * @func isPromise\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://promisesaplus.com/|Promises/A+}, {@link RA.isThenable|isThenable}\n * @example\n *\n * RA.isPromise(null); // => false\n * RA.isPromise(undefined); // => false\n * RA.isPromise([]); // => false\n * RA.isPromise(Promise.resolve()); // => true\n * RA.isPromise(Promise.reject()); // => true\n * RA.isPromise({ then: () => 1 }); // => false\n */\n\nvar isPromise = curryN(1, both(isObj, pipe(toString, equals('[object Promise]'))));\nexport default isPromise;","import { curryN } from 'ramda';\n/**\n * In JavaScript, a `truthy` value is a value that is considered true\n * when evaluated in a Boolean context. All values are truthy unless\n * they are defined as falsy (i.e., except for `false`, `0`, `\"\"`, `null`, `undefined`, and `NaN`).\n *\n * @func isTruthy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Truthy|truthy}, {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.isTruthy({}); // => true\n * RA.isTruthy([]); // => true\n * RA.isTruthy(42); // => true\n * RA.isTruthy(3.14); // => true\n * RA.isTruthy('foo'); // => true\n * RA.isTruthy(new Date()); // => true\n * RA.isTruthy(Infinity); // => true\n */\n\nvar isTruthy = curryN(1, Boolean);\nexport default isTruthy;","import { complement } from 'ramda';\nimport isTruthy from './isTruthy';\n/**\n * A falsy value is a value that translates to false when evaluated in a Boolean context.\n * Falsy values are `false`, `0`, `\"\"`, `null`, `undefined`, and `NaN`.\n *\n * @func isFalsy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2..0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Falsy|falsy}, {@link RA.isTruthy|isTruthy}\n * @example\n *\n * RA.isFalsy(false); // => true\n * RA.isFalsy(0); // => true\n * RA.isFalsy(''); // => true\n * RA.isFalsy(null); // => true\n * RA.isFalsy(undefined); // => true\n * RA.isFalsy(NaN); // => true\n */\n\nvar isFalsy = complement(isTruthy);\nexport default isFalsy;","import { type, identical, pipe, curryN } from 'ramda';\n/**\n * Checks if value is `RegExp` object.\n *\n * @func isRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotRegExp|isNotRegExp}\n * @example\n *\n * RA.isRegExp(new RegExp()); //=> true\n * RA.isRegExp(/(?:)/); //=> true\n * RA.isRegExp(1); //=> false\n */\n\nvar isRegExp = curryN(1, pipe(type, identical('RegExp')));\nexport default isRegExp;","import { complement } from 'ramda';\nimport isRegExp from './isRegExp';\n/**\n * Checks if value is complement of `RegExp` object.\n *\n * @func isNotRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isRegExp|isRegExp}\n * @example\n *\n * RA.isNotRegExp(1); //=> true\n * RA.isNotRegExp(/(?:)/); //=> false\n * RA.isNotRegExp(new RegExp()); //=> false\n */\n\nvar isNotRegExp = complement(isRegExp);\nexport default isNotRegExp;","import { type, identical, pipe, curryN } from 'ramda';\n/**\n * Predicate for determining if a provided value is an instance of a Set.\n *\n * @func isSet\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isMap|isMap}}\n * @example\n *\n * RA.isSet(new Map()); //=> false\n * RA.isSet(new Set()); //=> true\n * RA.isSet(new Set([1,2]); //=> true\n * RA.isSet(new Object()); //=> false\n */\n\nvar isSet = curryN(1, pipe(type, identical('Set')));\nexport default isSet;","import { complement } from 'ramda';\nimport isSet from './isSet';\n/**\n * Checks if value is complement of `Set` object.\n *\n * @func isNotSet\n * @memberOf RA\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isSet|isSet}\n * @example\n *\n * RA.isNotSet(new Map()); //=> true\n * RA.isNotSet(new Set()); //=> false\n * RA.isNotSet(new Set([1,2]); //=> false\n * RA.isNotSet(new Object()); //=> true\n */\n\nvar isNotSet = complement(isSet);\nexport default isNotSet;","import { values, both, complement, pipe, converge, identical, length } from 'ramda';\nimport isArray from './isArray';\n/**\n * Checks if input value is a sparse Array.\n * An array with at least one \"empty slot\" in it is often called a \"sparse array.\"\n * Empty slot doesn't mean that the slot contains `null` or `undefined` values,\n * but rather that the slots don't exist.\n *\n * @func isSparseArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.20.0|v2.20.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} list The list to test\n * @return {boolean}\n * @see {@link https://github.com/getify/You-Dont-Know-JS/blob/f0d591b6502c080b92e18fc470432af8144db610/types%20%26%20grammar/ch3.md#array|Sparse Arrays}, {@link RA.isArray|isArray}\n * @example\n *\n * RA.isSparseArray(new Array(3)); // => true\n * RA.isSparseArray([1,,3]); // => true\n *\n * const list = [1, 2, 3];\n * delete list[1];\n * RA.isSparseArray(list); // => true\n *\n * RA.isSparseArray([1, 2, 3]); // => false\n */\n\nvar isSparseArray = both(isArray, converge(complement(identical), [pipe(values, length), length]));\nexport default isSparseArray;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { type, curryN } from 'ramda';\n/**\n * Checks if input value is a Symbol.\n *\n * @func isSymbol\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol|MDN Symbol}\n * @example\n *\n * RA.isSymbol(Symbol('1')); //=> true\n * RA.isSymbol(Symbol(1)); //=> true\n * RA.isSymbol('string'); //=> false\n * RA.isSymbol(undefined); //=> false\n * RA.isSymbol(null); //=> false\n */\n\nvar isSymbol = curryN(1, function (val) {\n return _typeof(val) === 'symbol' || _typeof(val) === 'object' && type(val) === 'Symbol';\n});\nexport default isSymbol;","var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\nexport default MAX_SAFE_INTEGER;","import { both } from 'ramda';\nimport isInteger from '../../isInteger';\nimport MAX_SAFE_INTEGER from './Number.MAX_SAFE_INTEGER';\nvar isSafeIntegerPolyfill = both(isInteger, function (value) {\n return Math.abs(value) <= MAX_SAFE_INTEGER;\n});\nexport default isSafeIntegerPolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Number.isSafeInteger';\nexport var isSafeIntegerPolyfill = curryN(1, polyfill);\n/**\n * Checks whether the passed value is a safe `integer`.\n *\n * @func isSafeInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @example\n *\n * RA.isSafeInteger(3); //=> true\n * RA.isSafeInteger(Math.pow(2, 53)) //=> false\n * RA.isSafeInteger(Math.pow(2, 53) - 1); //=> true\n * RA.isSafeInteger(NaN); //=> false\n * RA.isSafeInteger(Infinity); //=> false\n * RA.isSafeInteger('3') //=> false\n * RA.isSafeInteger(3.1); //=> false\n * RA.isSafeInteger(3.0); //=> true\n * RA.isSafeInteger('string'); //=> false\n * RA.isSafeInteger(null); //=> false\n * RA.isSafeInteger(undefined); //=> false\n * RA.isSafeInteger({}); //=> false\n * RA.isSafeInteger(() => { }); //=> false\n * RA.isSafeInteger(true); //=> false\n */\n\nvar isSafeInteger = isFunction(Number.isSafeInteger) ? curryN(1, bind(Number.isSafeInteger, Number)) : isSafeIntegerPolyfill;\nexport default isSafeInteger;","import { either, curryN } from 'ramda';\nimport isArray from './isArray';\nimport isString from './isString';\n/**\n * Determine if input value is an indexed data type.\n *\n * @func isIndexed\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @example\n *\n * RA.isIndexed([1]) //=> true\n * RA.isIndexed('test') //=> true\n */\n\nvar isIndexed = curryN(1, either(isString, isArray));\nexport default isIndexed;","/**\n * This function returns a new empty object.\n *\n * @func stubObj\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> Object\n * @aliases stubObject\n * @return {Object} Returns the new empty object.\n * @example\n *\n * RA.stubObj(); //=> {}\n * RA.stubObj(1, 2, 3); //=> {}\n */\nvar stubObj = function stubObj() {\n return {};\n};\n\nexport default stubObj;","import { always } from 'ramda';\n/**\n * A function that returns empty string.\n *\n * @func stubString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> String\n * @return {string} The empty string\n * @example\n *\n * RA.stubString(); //=> ''\n * RA.stubString(1, 2, 3); //=> ''\n */\n\nvar stubString = always('');\nexport default stubString;","/**\n * A function that returns new empty array on every call.\n *\n * @func stubArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> Array\n * @return {Array} New empty array\n * @example\n *\n * RA.stubArray(); //=> []\n * RA.stubArray(1, 2, 3); //=> []\n */\nvar stubArray = function stubArray() {\n return [];\n};\n\nexport default stubArray;","import { always } from 'ramda';\nimport stubUndefined from './stubUndefined';\n/**\n * A function that performs no operations.\n *\n * @func noop\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.0.0|v1.0.0}\n * @category Function\n * @sig ... -> undefined\n * @return {undefined}\n * @example\n *\n * RA.noop(); //=> undefined\n * RA.noop(1, 2, 3); //=> undefined\n */\n\nvar noop = always(stubUndefined());\nexport default noop;","var mapping = Object.freeze({\n equals: 'fantasy-land/equals',\n lte: 'fantasy-land/lte',\n compose: 'fantasy-land/compose',\n id: 'fantasy-land/id',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n contramap: 'fantasy-land/contramap',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n});\nexport default mapping;","import { ap as apR, curryN, pathSatisfies, both, either } from 'ramda';\nimport isFunction from '../isFunction';\nimport fl from '../fantasy-land/mapping';\nvar isFunctor = either(pathSatisfies(isFunction, ['map']), pathSatisfies(isFunction, [fl.map]));\nvar isApply = both(isFunctor, either(pathSatisfies(isFunction, ['ap']), pathSatisfies(isFunction, [fl.ap])));\nvar ap = curryN(2, function (applyF, applyX) {\n // return original ramda `ap` if not Apply spec\n if (!isApply(applyF) || !isApply(applyX)) {\n return apR(applyF, applyX);\n }\n\n try {\n // new version of `ap` starting from ramda version > 0.23.0\n return applyF.ap(applyX);\n } catch (e) {\n // old version of `ap` till ramda version <= 0.23.0\n return applyX.ap(applyF);\n }\n});\nexport default ap;","import { curry, head, slice, reduce, curryN, map } from 'ramda';\nimport ap from './internal/ap';\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" objects that satisfy\n * the fantasy land Apply spec of algebraic structures.\n *\n * Lifting is specific for {@link https://github.com/scalaz/scalaz|scalaz} and {@link http://www.functionaljava.org/|functional java} implementations.\n * Old version of fantasy land spec were not compatible with this approach,\n * but as of fantasy land 1.0.0 Apply spec also adopted this approach.\n *\n * This function acts as interop for ramda <= 0.23.0 and {@link https://monet.github.io/monet.js/|monet.js}.\n *\n * More info {@link https://github.com/fantasyland/fantasy-land/issues/50|here}.\n *\n * @func liftFN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category Function\n * @sig Apply a => Number -> (a... -> a) -> (a... -> a)\n * @param {Number} arity The arity of the lifter function\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function\n * @see {@link http://ramdajs.com/docs/#lift|R.lift}, {@link http://ramdajs.com/docs/#ap|R.ap}\n * @example\n *\n * const { Maybe } = require('monet');\n *\n * const add3 = (a, b, c) => a + b + c;\n * const madd3 = RA.liftFN(3, add3);\n *\n * madd3(Maybe.Some(10), Maybe.Some(15), Maybe.Some(17)); //=> Maybe.Some(42)\n * madd3(Maybe.Some(10), Maybe.Nothing(), Maybe.Some(17)); //=> Maybe.Nothing()\n */\n\nvar liftFN = curry(function (arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var accumulator = map(lifted, head(args));\n var apps = slice(1, Infinity, args);\n return reduce(ap, accumulator, apps);\n });\n});\nexport default liftFN;","import { curryN } from 'ramda';\nimport liftFN from './liftFN';\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" objects that satisfy\n * the fantasy land Apply spec of algebraic structures.\n *\n * Lifting is specific for {@link https://github.com/scalaz/scalaz|scalaz} and {@link http://functionaljava.org/|function Java} implementations.\n * Old version of fantasy land spec were not compatible with this approach,\n * but as of fantasy land 1.0.0 Apply spec also adopted this approach.\n *\n * This function acts as interop for ramda <= 0.23.0 and {@link https://monet.github.io/monet.js/|monet.js}.\n *\n * More info {@link https://github.com/fantasyland/fantasy-land/issues/50|here}.\n *\n * @func liftF\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category Function\n * @sig Apply a => (a... -> a) -> (a... -> a)\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function\n * @see {@link RA.liftFN|liftFN}\n * @example\n *\n * const { Maybe } = require('monet');\n *\n * const add3 = (a, b, c) => a + b + c;\n * const madd3 = RA.liftF(add3);\n *\n * madd3(Maybe.Some(10), Maybe.Some(15), Maybe.Some(17)); //=> Maybe.Some(42)\n * madd3(Maybe.Some(10), Maybe.Nothing(), Maybe.Some(17)); //=> Maybe.Nothing()\n */\n\nvar liftF = curryN(1, function (fn) {\n return liftFN(fn.length, fn);\n});\nexport default liftF;","import { curry } from 'ramda';\nimport isFunction from './isFunction';\n/**\n * The catamorphism is a way of folding a type into a value.\n *\n * **Either**\n *\n * If the either is right then the right function will be executed with\n * the `right` value and the value of the function returned. Otherwise the left function\n * will be called with the `left` value.\n *\n * **Maybe**\n *\n * If the maybe is Some than the right function will be executed with the `some` value and the value of the function\n * returned. Otherwise the left function with be called without an argument.\n *\n * **Result**\n *\n * If the result is Ok than the right function will be executed with the `Ok` value and the value of the function\n * returned. Otherwise the left function will be called with the `Error` value.\n *\n * **Validation**\n *\n * If the validation is Success than the right function will be executed with the `Success` value and the value of the function\n * returned. Otherwise the left function will be called with the `Failure` value.\n *\n * Supported monadic libraries: {@link https://monet.github.io/monet.js/|monet.js}, {@link https://folktale.origamitower.com/|folktale}, {@link https://github.com/ramda/ramda-fantasy|ramda-fantasy}\n *\n * @func cata\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.4.0|v1.4.0}\n * @category Function\n * @sig (a -> b) -> (a -> c) -> Cata a -> b | c\n * @param {Function} leftFn The left function that consumes the left value\n * @param {Function} rightFn The right function that consumes the right value\n * @param {Cata} catamorphicObj Either, Maybe or any other type with catamorphic capabilities (`cata` or `either` method)\n * @return {*}\n * @see {@link https://monet.github.io/monet.js/#cata|cata explained}\n * @example\n *\n * // Either\n * const eitherR = Either.Right(1);\n * const eitherL = Either.Left(2);\n *\n * RA.cata(identity, identity, eitherR); //=> 1\n * RA.cata(identity, identity, eitherL); //=> 2\n *\n * // Maybe\n * const maybeSome = Maybe.Some(1);\n * const maybeNothing = Maybe.Nothing();\n *\n * RA.cata(identity, identity, maybeSome); //=> 1\n * RA.cata(identity, identity, maybeNothing); //=> undefined\n */\n\nvar catamorphism = curry(function (leftFn, rightFn, catamorphicObj) {\n // folktale support\n if (isFunction(catamorphicObj.matchWith)) {\n return catamorphicObj.matchWith({\n // Result type\n Ok: function Ok(_ref) {\n var value = _ref.value;\n return rightFn(value);\n },\n Error: function Error(_ref2) {\n var value = _ref2.value;\n return leftFn(value);\n },\n // Maybe type\n Just: function Just(_ref3) {\n var value = _ref3.value;\n return rightFn(value);\n },\n Nothing: function Nothing() {\n return leftFn(undefined);\n },\n // Validation type\n Success: function Success(_ref4) {\n var value = _ref4.value;\n return rightFn(value);\n },\n Failure: function Failure(_ref5) {\n var value = _ref5.value;\n return leftFn(value);\n }\n });\n }\n\n if (isFunction(catamorphicObj.cata)) {\n return catamorphicObj.cata(leftFn, rightFn);\n }\n\n if (isFunction(catamorphicObj.getOrElse)) {\n var elseValue = \"RA.cata\".concat(Math.random());\n var value = catamorphicObj.getOrElse(elseValue);\n return value === elseValue ? leftFn() : rightFn(value);\n }\n\n return catamorphicObj.either(leftFn, rightFn);\n});\nexport default catamorphism;","import { curryN } from 'ramda';\n/**\n * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.\n * This allows us to pre-bind the configuration in advance and use the weaved function\n * without need to explicitly pass the configuration on every call.\n *\n * @func weave\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.7.0|v1.7.0}\n * @category Function\n * @sig (*... -> *) -> * -> (*... -> *)\n * @param {Function} fn The function to weave\n * @param {*} config The configuration to weave into fn\n * @return {Function} Auto-curried weaved function\n * @example\n *\n * const { Reader: reader } = require('monet');\n *\n * const log = value => reader(\n * config => config.log(value)\n * );\n *\n * // no weaving\n * log('test').run(console); //=> prints 'test'\n *\n * // weaving\n * const wlog = RA.weave(log, console);\n * wlog('test'); //=> prints 'test'\n */\n\nvar weave = curryN(2, function (fn, config) {\n return curryN(fn.length, function () {\n return fn.apply(void 0, arguments).run(config);\n });\n});\nexport default weave;","import { curryN } from 'ramda';\n/**\n * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.\n * This allows us to pre-bind the configuration in advance and use the weaved function\n * without need to explicitly pass the configuration on every call.\n *\n * @func weaveLazy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.10.0|v1.10.0}\n * @category Function\n * @sig (*... -> *) -> (* -> *) -> (*... -> *)\n * @param {Function} fn The function to weave\n * @param {Function} configAccessor The function that returns the configuration object\n * @return {Function} Auto-curried weaved function\n * @example\n *\n * const { Reader: reader } = require('monet');\n *\n * const log = value => reader(\n * config => config.log(value)\n * );\n *\n * const consoleAccessor = R.always(console);\n *\n * // no weaving\n * log('test').run(console); //=> prints 'test'\n *\n * // weaving\n * const wlog = RA.weaveLazy(log, consoleAccessor);\n * wlog('test'); //=> prints 'test'\n */\n\nvar weaveLazy = curryN(2, function (fn, configAccessor) {\n return curryN(fn.length, function () {\n return fn.apply(void 0, arguments).run(configAccessor());\n });\n});\nexport default weaveLazy;","import { curryN, reverse } from 'ramda';\n/**\n * Returns a curried equivalent of the provided function, with the specified arity.\n * This function is like curryN, except that the provided arguments order is reversed.\n *\n * @func curryRightN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.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 {@link http://ramdajs.com/docs/#curryN|R.curryN}, {@link RA.curryRight|curryRight}\n * @example\n *\n * const concatStrings = (a, b, c) => a + b + c;\n * const concatStringsCurried = RA.curryRightN(3, concatStrings);\n *\n * concatStringCurried('a')('b')('c'); // => 'cba'\n */\n\nvar curryRightN = curryN(2, function (arity, fn) {\n return curryN(arity, function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return fn.apply(this, reverse(args));\n });\n});\nexport default curryRightN;","import { converge, length, identity } from 'ramda';\nimport curryRightN from './curryRightN';\n/**\n * Returns a curried equivalent of the provided function.\n * This function is like curry, except that the provided arguments order is reversed.\n *\n * @func curryRight\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.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 {@link http://ramdajs.com/docs/#curry|R.curry}, {@link RA.curryRightN|curryRightN}\n * @example\n *\n * const concatStrings = (a, b, c) => a + b + c;\n * const concatStringsCurried = RA.curryRight(concatStrings);\n *\n * concatStringCurried('a')('b')('c'); // => 'cba'\n */\n\nvar curryRight = converge(curryRightN, [length, identity]);\nexport default curryRight;","import { bind, curryN } from 'ramda';\n/**\n * Composable shortcut for `Promise.all`.\n *\n * The `allP` method returns a single Promise that resolves when all of the promises\n * in the iterable argument have resolved or when the iterable argument contains no promises.\n * It rejects with the reason of the first promise that rejects.\n *\n * @func allP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig [Promise a] -> Promise [a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} An already resolved Promise if the iterable passed is empty. An asynchronously resolved Promise if the iterable passed contains no promises. Note, Google Chrome 58 returns an already resolved promise in this case. A pending Promise in all other cases. This returned promise is then resolved/rejected asynchronously (as soon as the stack is empty) when all the promises in the given iterable have resolved, or if any of the promises reject. See the example about \"Asynchronicity or synchronicity of allP\" below.\n * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}\n * @example\n *\n * RA.allP([1, 2]); //=> Promise([1, 2])\n * RA.allP([1, Promise.resolve(2)]); //=> Promise([1, 2])\n * RA.allP([Promise.resolve(1), Promise.resolve(2)]); //=> Promise([1, 2])\n * RA.allP([1, Promise.reject(2)]); //=> Promise(2)\n */\n\nvar allP = curryN(1, bind(Promise.all, Promise));\nexport default allP;","import { bind } from 'ramda';\n/**\n * Composable shortcut for `Promise.reject`.\n *\n * Returns a Promise object that is rejected with the given reason.\n *\n * @func rejectP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category Function\n * @sig a -> Promise a\n * @param {*} [reason=undefined] Reason why this Promise rejected\n * @return {Promise} A Promise that is rejected with the given reason\n * @see {@link RA.resolveP|resolveP}\n * @example\n *\n * RA.rejectP(); //=> Promise(undefined)\n * RA.rejectP('a'); //=> Promise('a')\n * RA.rejectP([1, 2, 3]); //=> Promise([1, 2, 3])\n */\n\nvar rejectP = bind(Promise.reject, Promise);\nexport default rejectP;","import { bind } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * Composable shortcut for `Promise.resolve`.\n *\n * Returns a Promise object that is resolved with the given value.\n * If the value is a thenable (i.e. has a \"then\" method), the returned promise will\n * \"follow\" that thenable, adopting its eventual state.\n *\n * @func resolveP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category Function\n * @sig a -> Promise a\n * @param {*} [value=undefined] Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve\n * @return {Promise} A Promise that is resolved with the given value, or the promise passed as value, if the value was a promise object\n * @see {@link RA.rejectP|rejectP}\n * @example\n *\n * RA.resolveP(); //=> Promise(undefined)\n * RA.resolveP('a'); //=> Promise('a')\n * RA.resolveP([1, 2, 3]); //=> Promise([1, 2, 3])\n */\n\n/* eslint-enable max-len */\n\nvar resolveP = bind(Promise.resolve, Promise);\nexport default resolveP;","import { curryN, map, pipe } from 'ramda';\nimport allP from './allP';\nimport rejectP from './rejectP';\nimport resolveP from './resolveP';\n/**\n * Returns a Promise that is resolved with an array of reasons when all of the provided Promises reject, or rejected when any Promise is resolved.\n * This pattern is like allP, but fulfillments and rejections are transposed - rejections become the fulfillment values and vice versa.\n *\n * @func noneP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Function\n * @sig [Promise a] -> Promise [a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A Promise that is resolved with a list of rejection reasons if all Promises are rejected, or a Promise that is rejected with the fulfillment value of the first Promise that resolves.\n * @see {@link RA.allP|allP}\n * @example\n *\n * RA.noneP([Promise.reject('hello'), Promise.reject('world')]); //=> Promise(['hello', 'world'])\n * RA.noneP([]); //=> Promise([])\n * RA.noneP([Promise.reject(), Promise.resolve('hello world')]); //=> Promise('hello world')\n * RA.noneP([Promise.reject(), 'hello world']); //=> Promise('hello world')\n */\n\nvar noneP = curryN(1, pipe(map(resolveP), map(function (p) {\n return p.then(rejectP, resolveP);\n}), allP));\nexport default noneP;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\n_createPartialApplicator(_concat);\n\nexport default partial;","import { curry, propOr, partial, nth } from 'ramda';\nimport isNonNegative from './isNonNegative';\nimport isInteger from './isInteger';\n/**\n * Creates a promise which resolves/rejects after the specified milliseconds.\n *\n * @func delayP\n * @memberOf RA\n * @category Function\n * @sig Number -> Promise Undefined\n * @sig {timeout: Number, value: a} -> Promise a\n * @param {number|Object} milliseconds number of milliseconds or options object\n * @return {Promise} A Promise that is resolved/rejected with the given value (if provided) after the specified delay\n * @example\n *\n * RA.delayP(200); //=> Promise(undefined)\n * RA.delayP({ timeout: 1000, value: 'hello world' }); //=> Promise('hello world')\n * RA.delayP.reject(100); //=> Promise(undefined)\n * RA.delayP.reject({ timeout: 100, value: new Error('error') }); //=> Promise(Error('error'))\n */\n\nvar makeDelay = curry(function (settleFnPicker, opts) {\n var timeout;\n var value;\n\n if (isInteger(opts) && isNonNegative(opts)) {\n timeout = opts;\n } else {\n timeout = propOr(0, 'timeout', opts);\n value = propOr(value, 'value', opts);\n }\n\n return new Promise(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var settleFn = settleFnPicker(args);\n setTimeout(partial(settleFn, [value]), timeout);\n });\n});\nvar delayP = makeDelay(nth(0));\ndelayP.reject = makeDelay(nth(1));\nexport default delayP;","import { invoker } from 'ramda';\n/**\n * Composable shortcut for `Promise.then`.\n * The thenP function returns a Promise. It takes two arguments: a callback function for the success of the Promise\n * and the promise instance itself.\n *\n * @func thenP\n * @memberOf RA\n * @aliases then\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @deprecated since v2.12.0; available in ramda@0.26.0 as R.then\n * @category Function\n * @sig (a -> Promise b | b) -> Promise b\n * @param {Function} onFulfilled A Function called if the Promise is fulfilled. This function has one argument, the fulfillment value\n * @param {Promise} promise Any Promise or Thenable object\n * @return {Promise} A Promise in the pending status\n\n * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}\n * @example\n *\n * const promise = Promise.resolve(1);\n * const add1 = v => v + 1;\n *\n * RA.thenP(add1, promise); // => Promise(2)\n */\n\nvar thenP = invoker(1, 'then');\nexport default thenP;","import { invoker } from 'ramda';\n/**\n * Composable shortcut for `Promise.then` that allows for success and failure callbacks.\n * The thenCatchP function returns a Promise. It takes three arguments: a callback function for the success of the Promise,\n * a callback function for the failure of the Promise, and the promise instance itself.\n *\n * @func thenCatchP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.27.0|v2.27.0}\n * @category Function\n * @sig (a -> b) -> (c -> d) -> Promise a -> Promise b | d\n * @param {Function} onFulfilled A Function called if the Promise is fulfilled. This function has one argument, the fulfillment value\n * @param {Function} onRejected A Function called if the Promise is rejected. This function has one argument, the error\n * @param {Promise} promise Any Promise or Thenable object\n * @return {Promise}\n * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}\n * @example\n *\n * const promise = Promise.resolve(1);\n * const add1 = x => x + 1;\n *\n * RA.thenCatchP(add1, console.error, promise); // => Promise(2)\n */\n\nexport var thenCatchP = invoker(2, 'then');\nexport default thenCatchP;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { map } from 'ramda';\nimport allP from '../../allP';\nimport resolveP from '../../resolveP';\n\nvar onFulfill = function onFulfill(value) {\n return {\n status: 'fulfilled',\n value: value\n };\n};\n\nvar onReject = function onReject(reason) {\n return {\n status: 'rejected',\n reason: reason\n };\n};\n\nvar allSettledPolyfill = function allSettledPolyfill(iterable) {\n var array = map(function (p) {\n return resolveP(p).then(onFulfill)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n return allP(array);\n};\n\nexport default allSettledPolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Promise.allSettled';\nexport var allSettledPPolyfill = curryN(1, polyfill);\n/**\n * Returns a promise that is fulfilled with an array of promise state snapshots,\n * but only after all the original promises have settled, i.e. become either fulfilled or rejected.\n * We say that a promise is settled if it is not pending, i.e. if it is either fulfilled or rejected.\n *\n * @func allSettledP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Function\n * @typedef Settlement = { status: String, value: * }\n * @sig [Promise a] -> Promise [Settlement a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} Returns a promise that is fulfilled with an array of promise state snapshots\n * @see {@link RA.allP|allP}\n * @example\n *\n * RA.allSettledP([\n * Promise.resolve(1),\n * 2,\n * Promise.reject(3),\n * ]); //=> Promise([{ status: 'fulfilled', value: 1 }, { status: 'fulfilled', value: 2 }, { status: 'rejected', reason: 3 }])\n */\n\nvar allSettledP = isFunction(Promise.allSettled) ? curryN(1, bind(Promise.allSettled, Promise)) : allSettledPPolyfill;\nexport default allSettledP;","import { curryN } from 'ramda';\n/**\n * Y-combinator\n *\n * The Y combinator is an interesting function which only works with functional languages,\n * showing how recursion can still be done even without any variable or function declarations,\n * only functions and parameters\n *\n * @func Y\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig (a, ... -> b -> b) -> (a, ... -> b)\n * @param {Function} le Recursive function maker\n * @return {Function}\n * @see {@link http://kestas.kuliukas.com/YCombinatorExplained/|Y combinator explained}\n * @example\n *\n * const makeFact = givenFact => (n) => {\n * if (n < 2) { return 1 }\n * return n * givenFact(n - 1);\n * };\n *\n * const factorial = RA.Y(makeFact);\n *\n * factorial(5); //=> 120\n */\n\nvar Y = curryN(1, function (le) {\n return function (f) {\n return f(f);\n }(function (g) {\n return le(function (x) {\n return g(g)(x);\n });\n });\n});\nexport default Y;","import { curry, map, tap } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * Runs the given list of functions in order with the supplied object, then returns the object.\n * Also known as the normal order sequencing combinator.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func seq\n * @aliases sequencing\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig [(a -> *), (a -> *), ...] -> a -> a\n * @param {Array} fns The list of functions to call in order with `x` whose return values will be thrown away\n * @param {*} x\n * @return {*} `x`\n * @see {@link http://ramdajs.com/docs/#tap|R.tap}, {@link http://www.cs.rpi.edu/academics/courses/spring11/proglang/handouts/lambda-calculus-chapter.pdf|sequencing combinator explained}\n * @example\n *\n * RA.seq([console.info, console.log])('foo'); //=> prints 'foo' via info then log\n *\n * // usage in composition\n * R.pipe(\n * R.concat('prefix '),\n * RA.seq([\n * console.info, //=> prints 'prefix test'\n * console.log //=> prints 'prefix test'\n * ]),\n * R.toUpper\n * )('test'); //=> 'PREFIX TEST'\n */\n\n/* eslint-enable max-len */\n\nvar seq = curry(function (fns, x) {\n return tap(function (tx) {\n return map(function (fn) {\n return fn(tx);\n })(fns);\n })(x);\n});\nexport default seq;","import { curryN, bind } from 'ramda';\nimport resolveP from './resolveP';\nimport rejectP from './rejectP';\n/**\n * Takes a generator function and returns an async function.\n * The async function returned is a curried function whose arity matches that of the generator function.\n *\n * Note: This function is handy for environments that does support generators but doesn't support async/await.\n *\n * @func async\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.16.0|v2.16.0}\n * @category Function\n * @sig Promise c => (a, b, ...) -> a -> b -> ... -> c\n * @param {Function} generatorFn The generator function\n * @return {Function} Curried async function\n * @see {@link https://www.promisejs.org/generators/}\n * @example\n *\n * const asyncFn = RA.async(function* generator(val1, val2) {\n * const a = yield Promise.resolve(val1);\n * const b = yield Promise.resolve(val2);\n *\n * return a + b;\n * });\n *\n * asyncFn(1, 2); //=> Promise(3)\n *\n */\n\nvar async = curryN(1, function (generatorFn) {\n function asyncWrapper() {\n var iterator = bind(generatorFn, this).apply(void 0, arguments);\n\n var handle = function handle(result) {\n var resolved = resolveP(result.value);\n return result.done ? resolved : resolved.then(function (value) {\n return handle(iterator.next(value));\n }, function (error) {\n return handle(iterator[\"throw\"](error));\n });\n };\n\n try {\n return handle(iterator.next());\n } catch (error) {\n return rejectP(error);\n }\n }\n\n if (generatorFn.length > 0) {\n return curryN(generatorFn.length, asyncWrapper);\n }\n\n return asyncWrapper;\n});\nexport default async;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { map } from 'ramda';\nimport resolveP from '../../resolveP';\nexport var AggregatedError = /*#__PURE__*/function (_Error) {\n _inherits(AggregatedError, _Error);\n\n var _super = _createSuper(AggregatedError);\n\n function AggregatedError() {\n var _this;\n\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var message = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, AggregatedError);\n\n _this = _super.call(this, message);\n _this.errors = errors;\n return _this;\n }\n\n return AggregatedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar anyPolyfill = function anyPolyfill(iterable) {\n var exceptions = [];\n return new Promise(function (resolve, reject) {\n var onReject = function onReject(e) {\n exceptions.push(e);\n\n if (exceptions.length === iterable.length) {\n reject(new AggregatedError(exceptions));\n }\n };\n\n map(function (p) {\n return resolveP(p).then(resolve)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n });\n};\n\nexport default anyPolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill, { AggregatedError } from './internal/polyfills/Promise.any';\nexport var anyPPolyfill = curryN(1, polyfill);\nexport { AggregatedError };\n/**\n * Returns a promise that is fulfilled by the first given promise to be fulfilled,\n * or rejected with an array of rejection reasons if all of the given promises are rejected.\n *\n * @func anyP\n * @memberOf RA\n * @category Function\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig [Promise a] -> Promise a\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A promise that is fulfilled by the first given promise to be fulfilled, or rejected with an array of rejection reasons if all of the given promises are rejected\n * @see {@link RA.lastP|lastP}\n * @example\n *\n * RA.anyP([\n * Promise.resolve(1),\n * 2,\n * Promise.reject(3),\n * ]); //=> Promise(1)\n */\n\nvar anyP = isFunction(Promise.any) ? curryN(1, bind(Promise.any, Promise)) : anyPPolyfill;\nexport default anyP;","import { flip, gte } from 'ramda';\nimport compareLength from './internal/compareLength';\n/**\n * Returns `true` if the supplied list or string has a length greater than or equal to\n * `valueLength`.\n *\n * @func lengthGte\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link http://ramdajs.com/docs/#gte|gte}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthGte(3, [1,2,3,4]); //=> true\n * RA.lengthGte(3, [1,2,3]); //=> true\n * RA.lengthGte(3, [1,2]); //=> false\n */\n\nvar lengthGte = compareLength(flip(gte));\nexport default lengthGte;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { bind, last, map, curryN } from 'ramda';\nimport allP from './allP';\nimport lengthEq from './lengthEq';\nimport lengthGte from './lengthGte';\nimport rejectP from './rejectP';\nimport resolveP from './resolveP';\n/**\n * Returns a promise that is fulfilled by the last given promise to be fulfilled,\n * or rejected with an array of rejection reasons if all of the given promises are rejected.\n *\n * @func lastP\n * @memberOf RA\n * @category Function\n * @since {@link https://char0n.github.io/ramda-adjunct/2.23.0|v2.23.0}\n * @sig [Promise a] -> Promise a\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A promise that is fulfilled by the last given promise to be fulfilled, or rejected with an array of rejection reasons if all of the given promises are rejected.\n * @see {@link RA.anyP|anyP}\n * @example\n *\n * const delayP = timeout => new Promise(resolve => setTimeout(() => resolve(timeout), timeout));\n * delayP.reject = timeout => new Promise((resolve, reject) => setTimeout(() => reject(timeout), timeout));\n * RA.lastP([\n * 1,\n * delayP(10),\n * delayP(100),\n * delayP.reject(1000),\n * ]); //=> Promise(100)\n */\n\nvar lastP = curryN(1, function (iterable) {\n var fulfilled = [];\n var rejected = [];\n var onFulfill = bind(fulfilled.push, fulfilled);\n var onReject = bind(rejected.push, rejected);\n var listOfPromises = map(function (p) {\n return resolveP(p).then(onFulfill)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n return allP(listOfPromises).then(function () {\n if (lengthEq(0, fulfilled) && lengthEq(0, rejected)) {\n return undefined;\n }\n\n if (lengthGte(1, fulfilled)) {\n return last(fulfilled);\n }\n\n return rejectP(rejected);\n });\n});\nexport default lastP;","import { curry } from 'ramda';\n/**\n * Returns the second argument if predicate function returns `true`,\n * otherwise the third argument is returned.\n *\n * @func defaultWhen\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Logic\n * @sig (a -> Boolean) -> b -> a -> a | b\n * @param {!function} predicate The predicate function\n * @param {*} defaultVal The default value\n * @param {*} val `val` will be returned instead of `defaultVal` if predicate returns false\n * @return {*} The `val` if predicate returns `false`, otherwise the default value\n * @see {@link http://ramdajs.com/docs/#defaultTo|R.defaultTo}\n * @example\n *\n * RA.defaultWhen(RA.isNull, 1, null); // => 1\n * RA.defaultWhen(RA.isNull, 1, 2); // => 2\n */\n\nvar defaultWhen = curry(function (predicate, defaultVal, val) {\n return predicate(val) ? defaultVal : val;\n});\nexport default defaultWhen;","import { isNil, curryN, curry, apply } from 'ramda';\nimport defaultWhen from './defaultWhen';\nimport mapIndexed from './mapIndexed';\n/**\n * Returns a function which is called with the given arguments. If any of the given arguments are null or undefined,\n * the corresponding default value for that argument is used instead.\n *\n * @func fnull\n * @memberOf RA\n * @category Function\n * @sig (a ... -> b) -> [c] -> a ... | c -> b\n * @param {Function} function to be executed\n * @param {Array} defaults default arguments\n * @return {Function} will apply provided arguments or default ones\n * @example\n *\n * const addDefaults = RA.fnull((a, b) => a + b, [4, 5])\n *\n * addDefaults(1, 2); // => 3\n * addDefaults(null, 2); // => 6\n * addDefaults(2, null); // => 7\n * addDefaults(undefined, undefined); // => 9\n */\n\nvar fnull = curry(function (fn, defaults) {\n return curryN(fn.length, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsWithDefaults = mapIndexed(function (val, idx) {\n return defaultWhen(isNil, defaults[idx], val);\n }, args);\n return apply(fn, argsWithDefaults);\n });\n});\nexport default fnull;","import { addIndex, reduce } from 'ramda';\n/**\n * {@link http://ramdajs.com/docs/#reduce|R.reduce} function that more closely resembles Array.prototype.reduce.\n * It takes two new parameters to its callback function: the current index, and the entire list.\n *\n * `reduceIndexed` implementation is simple : `\n * const reduceIndexed = R.addIndex(R.reduce);\n * `\n * @func reduceIndexed\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @typedef Idx = Number\n * @sig ((a, b, Idx, [b]) => a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives four values,\n * the accumulator, the current element from the array, index and the entire list\n * @param {*} acc The accumulator value\n * @param {Array} list The list to iterate over\n * @return {*} The final, accumulated value\n * @see {@link http://ramdajs.com/docs/#addIndex|R.addIndex}, {@link http://ramdajs.com/docs/#reduce|R.reduce}\n * @example\n *\n * const initialList = ['f', 'o', 'o', 'b', 'a', 'r'];\n *\n * reduceIndexed((acc, val, idx, list) => acc + '-' + val + idx, '', initialList);\n * //=> \"-f0-o1-o2-b3-a4-r5\"\n */\n\nvar reduceIndexed = addIndex(reduce);\nexport default reduceIndexed;","import { filter, addIndex, curry, contains } from 'ramda'; // helpers\n\nvar filterIndexed = addIndex(filter);\nvar containsIndex = curry(function (indexes, val, index) {\n return contains(index, indexes);\n});\n/**\n * Picks values from list by indexes.\n *\n * Note: pickIndexes will skip non existing indexes. If you want to include them\n * use ramda's `props` function.\n *\n * @func pickIndexes\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}\n * @category List\n * @sig [Number] -> [a] -> [a]\n * @param {Array} indexes The indexes to pick\n * @param {Array} list The list to pick values from\n * @return {Array} New array containing only values at `indexes`\n * @see {@link http://ramdajs.com/docs/#pick|R.pick}, {@link RA.omitIndexes|omitIndexes}\n * @example\n *\n * RA.pickIndexes([0, 2], ['a', 'b', 'c']); //=> ['a', 'c']\n */\n\nvar pickIndexes = curry(function (indexes, list) {\n return filterIndexed(containsIndex(indexes), list);\n});\nexport default pickIndexes;","import { unapply, identity } from 'ramda';\n/**\n * Creates a list from arguments.\n *\n * @func list\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}\n * @category List\n * @sig a... -> [a...]\n * @param {...*} items The items of the feature list\n * @return {Array} New list created from items\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#create-a-list-function|Ramda Cookbook}\n * @example\n *\n * RA.list('a', 'b', 'c'); //=> ['a', 'b', 'c']\n */\n\nvar list = unapply(identity);\nexport default list;","import { concat, identical, identity, pipe, reduce, when } from 'ramda';\nimport stubUndefined from './stubUndefined';\nvar leftIdentitySemigroup = {\n concat: identity\n};\n/**\n * Returns the result of concatenating the given lists or strings.\n * Note: RA.concatAll expects all elements to be of the same type. It will throw an error if you concat an Array with a non-Array value.\n * Dispatches to the concat method of the preceding element, if present. Can also concatenate multiple elements of a [fantasy-land compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n * Returns undefined if empty array was passed.\n *\n * @func concatAll\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category List\n * @sig [[a]] -> [a] | Undefined\n * @sig [String] -> String | Undefined\n * @sig Semigroup s => Foldable s f => f -> s | Undefined\n * @param {Array.} list List containing elements that will be concatenated\n * @return {Array|string|undefined} Concatenated elements\n * @see {@link http://ramdajs.com/docs/#concat|R.concat}, {@link RA.concatRight|concatRight}, {@link http://ramdajs.com/docs/#unnest|R.unnest}, {@link http://ramdajs.com/docs/#join|R.join}\n * @example\n *\n * concatAll([[1], [2], [3]]); //=> [1, 2, 3]\n * concatAll(['1', '2', '3']); //=> '123'\n * concatAll([]); //=> undefined;\n */\n\nvar concatAll = pipe(reduce(concat, leftIdentitySemigroup), when(identical(leftIdentitySemigroup), stubUndefined));\nexport default concatAll;","import { concat, flip } from 'ramda';\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, unlike\n * the native Array.prototype.concat method.\n * It will throw an error if you concat an Array with a non-Array value.\n * Dispatches to the concat method of the second argument, if present.\n *\n * @func concatRight\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.11.0|v1.11.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 `secondList`\n * followed by the elements of `firstList`.\n * @see {@link http://ramdajs.com/docs/#concat|R.concat}\n * @example\n *\n * RA.concatRight('ABC', 'DEF'); //=> 'DEFABC'\n * RA.concatRight([4, 5, 6], [1, 2, 3]); //=> [1, 2, 3, 4, 5, 6]\n * RA.concatRight([], []); //=> []\n */\n\nvar concatRight = flip(concat);\nexport default concatRight;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { curryN, reduce, length } from 'ramda';\nimport isUndefined from './isUndefined';\nimport resolveP from './resolveP';\nimport allP from './allP';\n/* eslint-disable max-len */\n\n/**\n * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,\n * which produces promises (or a mix of promises and values),\n * iterate over all the values in the `Iterable` into an array and\n * reduce the array to a value using the given iterator function.\n *\n * If the iterator function returns a promise, then the result of the promise is awaited,\n * before continuing with next iteration. If any promise in the array is rejected or a promise\n * returned by the iterator function is rejected, the result is rejected as well.\n *\n * If `initialValue` is `undefined` (or a promise that resolves to `undefined`) and\n * the `Iterable` contains only 1 item, the callback will not be called and\n * the `Iterable's` single item is returned. If the `Iterable` is empty, the callback\n * will not be called and `initialValue` is returned (which may be undefined).\n *\n * This function is basically equivalent to {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}.\n *\n * @func reduceP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}\n * @category List\n * @typedef MaybePromise = Promise.<*> | *\n * @sig ((Promise a, MaybePromise b) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the current element from the list\n * @param {*|Promise.<*>} acc The accumulator value\n * @param {Array.<*>|Promise.>>} list The list to iterate over\n * @return {Promise} The final, accumulated value\n * @see {@link http://ramdajs.com/docs/#reduce|R.reduce}, {@link RA.reduceRightP|reduceRightP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}\n * @example\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * Promise.resolve(0),\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])\n * ); // => Promise(10)\n *\n */\n\n/* esline-enable max-len */\n\nvar reduceP = curryN(3, function (fn, acc, list) {\n return resolveP(list).then(function (iterable) {\n var listLength = length(iterable);\n\n if (listLength === 0) {\n return acc;\n }\n\n var reducer = reduce(function (accP, currentValueP) {\n return accP.then(function (previousValue) {\n return allP([previousValue, currentValueP]);\n }).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n previousValue = _ref2[0],\n currentValue = _ref2[1];\n\n if (isUndefined(previousValue) && listLength === 1) {\n return currentValue;\n }\n\n return fn(previousValue, currentValue);\n });\n });\n return reducer(resolveP(acc), iterable);\n });\n});\nexport default reduceP;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { curryN, pipe, equals, reduceRight, length, concat } from 'ramda';\nimport isUndefined from './isUndefined';\nimport resolveP from './resolveP';\nimport allP from './allP'; // in older ramda versions the order of the arguments is flipped\n\nvar flipArgs = pipe(reduceRight(concat, ''), equals('ba'))(['a', 'b']);\n/* eslint-disable max-len */\n\n/**\n * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,\n * which produces promises (or a mix of promises and values),\n * iterate over all the values in the `Iterable` into an array and\n * reduce the array to a value using the given iterator function.\n *\n * Similar to {@link RA.reduceP|reduceP} except moves through the input list from the right to the left.\n * The iterator function receives two values: (value, acc),\n * while the arguments' order of reduceP's iterator function is (acc, value).\n *\n * @func reduceRightP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}\n * @category List\n * @typedef MaybePromise = Promise.<*> | *\n * @sig ((MaybePromise b, Promise a) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a\n * @param {Function} fn The iterator function. Receives two values, the current element from the list and the accumulator\n * @param {*|Promise.<*>} acc The accumulator value\n * @param {Array.<*>|Promise.>>} list The list to iterate over\n * @return {Promise} The final, accumulated value\n * @see {@link RA.reduceP|reduceP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}\n * @example\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * Promise.resolve(0),\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])\n * ); // => Promise(10)\n *\n */\n\n/* esline-enable max-len */\n\nvar reduceRightP = curryN(3, function (fn, acc, list) {\n return resolveP(list).then(function (iterable) {\n var listLength = length(iterable);\n\n if (listLength === 0) {\n return acc;\n }\n\n var reducer = reduceRight(function (arg1, arg2) {\n var accP;\n var currentValueP;\n\n if (flipArgs) {\n accP = arg1;\n currentValueP = arg2;\n } else {\n accP = arg2;\n currentValueP = arg1;\n }\n\n return accP.then(function (previousValue) {\n return allP([previousValue, currentValueP]);\n }).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n previousValue = _ref2[0],\n currentValue = _ref2[1];\n\n if (isUndefined(previousValue) && listLength === 1) {\n return currentValue;\n }\n\n return fn(currentValue, previousValue);\n });\n });\n return reducer(resolveP(acc), iterable);\n });\n});\nexport default reduceRightP;","import { __, slice } from 'ramda';\n/**\n * Returns the elements of the given list or string (or object with a slice method)\n * from fromIndex (inclusive).\n * Dispatches to the slice method of the second argument, if present.\n *\n * @func sliceFrom\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category List\n * @sig Number -> [a] -> [a]\n * @param {number} fromIndex The start index (inclusive)\n * @param {Array|string} list The list or string to slice\n * @return {Array|string} The sliced list or string\n * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceTo|sliceTo}\n * @example\n *\n * RA.sliceFrom(1, [1, 2, 3]); //=> [2, 3]\n */\n\nvar sliceFrom = slice(__, Infinity);\nexport default sliceFrom;","import { slice } from 'ramda';\n/**\n * Returns the elements of the given list or string (or object with a slice method)\n * to toIndex (exclusive).\n * Dispatches to the slice method of the second argument, if present.\n *\n * @func sliceTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category List\n * @sig Number -> [a] -> [a]\n * @param {number} toIndex The end index (exclusive)\n * @param {Array|string} list The list or string to slice\n * @return {Array|string} The sliced list or string\n * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceFrom|sliceFrom}\n * @example\n *\n * RA.sliceTo(2, [1, 2, 3]); //=> [1, 2]\n */\n\nvar sliceTo = slice(0);\nexport default sliceTo;","import { contains, curry, addIndex, reject } from 'ramda'; // helpers\n\nvar rejectIndexed = addIndex(reject);\nvar containsIndex = curry(function (indexes, val, index) {\n return contains(index, indexes);\n});\n/**\n * Returns a partial copy of an array omitting the indexes specified.\n *\n * @func omitIndexes\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category List\n * @sig [Int] -> [a] -> [a]\n * @see {@link http://ramdajs.com/docs/#omit|R.omit}, {@link RA.pickIndexes|pickIndexes}\n * @param {!Array} indexes The array of indexes to omit from the new array\n * @param {!Array} list The array to copy from\n * @return {!Array} The new array with omitted indexes\n * @example\n *\n * RA.omitIndexes([-1, 1, 3], ['a', 'b', 'c', 'd']); //=> ['a', 'c']\n */\n\nvar omitIndexes = curry(function (indexes, list) {\n return rejectIndexed(containsIndex(indexes), list);\n});\nexport default omitIndexes;","import { reject } from 'ramda';\nimport isFalsy from './isFalsy';\n/**\n * Creates an array with all falsy values removed.\n * The values false, null, 0, \"\", undefined, and NaN are falsy.\n *\n * @func compact\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @sig Filterable f => f a -> f a\n * @param {Array} list The array to compact\n * @return {Array} Returns the new array of filtered values\n * @see {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.compact([0, 1, false, 2, '', 3]); //=> [1, 2, 3]\n */\n\nvar compact = reject(isFalsy);\nexport default compact;","import { compose, curry, insert, nth, remove } from 'ramda';\n/**\n * Returns a new list with the item at the position `fromIdx` moved to the position `toIdx`. If the\n * `toIdx` is out of the `list` range, the item will be placed at the last position of the `list`.\n * When negative indices are provided, the behavior of the move is unspecified.\n *\n * @func move\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} fromIdx The position of item to be moved\n * @param {Number} toIdx The position of item after move\n * @param {Array} list The list containing the item to be moved\n * @return {Array}\n * @example\n *\n * const list = ['a', 'b', 'c', 'd', 'e'];\n * RA.move(1, 3, list) //=> ['a', 'c', 'd', 'b', 'e']\n */\n\nvar move = curry(function (fromIdx, toIdx, list) {\n return compose(insert(toIdx, nth(fromIdx, list)), remove(fromIdx, 1))(list);\n});\nexport default move;","import { flip, lt } from 'ramda';\nimport compareLength from './internal/compareLength';\n/**\n * Returns `true` if the supplied list or string has a length less than `valueLength`.\n *\n * @func lengthLt\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#lt|lt}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthLt(3, [1,2]); //=> true\n * RA.lengthLt(3, [1,2,3]); //=> false\n */\n\nvar lengthLt = compareLength(flip(lt));\nexport default lengthLt;","import { flip, lte } from 'ramda';\nimport compareLength from './internal/compareLength';\n/**\n * Returns `true` if the supplied list or string has a length less than or equal to `valueLength`.\n *\n * @func lengthLte\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#lte|lte}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthLte(3, [1,2]); //=> true\n * RA.lengthLte(3, [1,2,3]); //=> true\n * RA.lengthLte(3, [1,2,3,4]); //=> false\n */\n\nvar lengthLte = compareLength(flip(lte));\nexport default lengthLte;","import { complement, equals } from 'ramda';\nimport compareLength from './internal/compareLength';\n/**\n * Returns `true` if the supplied list or string has a length not equal to `valueLength`.\n *\n * @func lengthNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#equals|equals}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthNotEq(3, [1,2,3,4]); //=> true\n * RA.lengthNotEq(3, [1,2,3]); //=> false\n */\n\nvar lengthNotEq = compareLength(complement(equals));\nexport default lengthNotEq;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\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 */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import { pipe, uniq, curryN } from 'ramda';\nimport lengthLte from './lengthLte'; // Original idea for this function was conceived by https://github.com/jackmellis\n// in https://github.com/char0n/ramda-adjunct/pull/513.\n\n/**\n * Returns true if all items in the list are equivalent using `R.equals` for equality comparisons.\n *\n * @func allEqual\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.9.0|v2.9.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allEqual([ 1, 2, 3, 4 ]); //=> false\n * RA.allEqual([ 1, 1, 1, 1 ]); //=> true\n * RA.allEqual([]); //=> true\n *\n */\n\nvar allEqual = curryN(1, pipe(uniq, lengthLte(1)));\nexport default allEqual;","import isNotFinite from '../../isNotFinite';\nimport isNegative from '../../isNegative';\n\nvar repeat = function repeat(value, count) {\n var validCount = Number(count);\n\n if (validCount !== count) {\n validCount = 0;\n }\n\n if (isNegative(validCount)) {\n throw new RangeError('repeat count must be non-negative');\n }\n\n if (isNotFinite(validCount)) {\n throw new RangeError('repeat count must be less than infinity');\n }\n\n validCount = Math.floor(validCount);\n\n if (value.length === 0 || validCount === 0) {\n return '';\n } // Ensuring validCount is a 31-bit integer allows us to heavily optimize the\n // main part. But anyway, most current (August 2014) browsers can't handle\n // strings 1 << 28 chars or longer, so:\n // eslint-disable-next-line no-bitwise\n\n\n if (value.length * validCount >= 1 << 28) {\n throw new RangeError('repeat count must not overflow maximum string size');\n }\n\n var maxCount = value.length * validCount;\n validCount = Math.floor(Math.log(validCount) / Math.log(2));\n var result = value;\n\n while (validCount) {\n result += value;\n validCount -= 1;\n }\n\n result += result.substring(0, maxCount - result.length);\n return result;\n};\n\nexport default repeat;","import { curry, invoker, flip } from 'ramda';\nimport polyfill from './internal/polyfills/String.repeat';\nimport isFunction from './isFunction';\nexport var repeatStrPolyfill = curry(polyfill);\nexport var repeatStrInvoker = flip(invoker(1, 'repeat'));\n/**\n * Constructs and returns a new string which contains the specified\n * number of copies of the string on which it was called, concatenated together.\n *\n * @func repeatStr\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig String -> Number -> String\n * @param {string} value String value to be repeated\n * @param {number} count An integer between 0 and +∞: [0, +∞), indicating the number of times to repeat the string in the newly-created string that is to be returned\n * @return {string} A new string containing the specified number of copies of the given string\n * @example\n *\n * RA.repeatStr('a', 3); //=> 'aaa'\n */\n\nvar repeatStr = isFunction(String.prototype.repeat) ? repeatStrInvoker : repeatStrPolyfill;\nexport default repeatStr;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry2 from \"./internal/_curry2.js\";\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 predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\n_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqWith;","import { uniqWith, identical, pipe, curryN } from 'ramda';\nimport lengthLte from './lengthLte';\n/**\n * Returns true if all items in the list are equivalent using `R.identical` for equality comparisons.\n *\n * @func allIdentical\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link https://ramdajs.com/docs/#identical|identical}\n * @example\n *\n * RA.allIdentical([ 1, 2, 3, 4 ]); //=> false\n * RA.allIdentical([ 1, 1, 1, 1 ]); //=> true\n * RA.allIdentical([]); //=> true\n * RA.allIdentical([ {}, {} ]); //=> false\n * RA.allIdentical([ () => {}, () => {} ]); //=> false\n */\n\nvar allIdentical = curryN(1, pipe(uniqWith(identical), lengthLte(1)));\nexport default allIdentical;","import { curry, identical, all } from 'ramda';\n/**\n * Returns true if all items in the list are equivalent to user provided value using `R.identical` for equality comparisons.\n *\n * @func allIdenticalTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig a -> [b] -> Boolean\n * @param {*} val User provided value to check the `list` against\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allIdentical|allIdentical}, {@link http://ramdajs.com/docs/#identical|R.identical}\n * @example\n *\n * RA.allIdenticalTo(1, [ 1, 2, 3, 4 ]); //=> false\n * RA.allIdenticalTo(1, [ 1, 1, 1, 1 ]); //=> true\n * RA.allIdenticalTo(1, []); //=> true\n * RA.allIdenticalTo({}, [ {}, {} ]); //=> false\n *\n */\n\nvar allIdenticalTo = curry(function (val, list) {\n return all(identical(val), list);\n});\nexport default allIdenticalTo;","import { all, equals, curry } from 'ramda';\n/**\n * Returns true if all items in the list are equivalent to user provided value using `R.equals` for equality comparisons.\n *\n * @func allEqualTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig a -> [b] -> Boolean\n * @param {*} val User provided value to check the `list` against\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allEqual|allEqual}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allEqualTo(1, [ 1, 2, 3, 4 ]); //=> false\n * RA.allEqualTo(1, [ 1, 1, 1, 1 ]); //=> true\n * RA.allEqualTo({}, [ {}, {} ]); //=> true\n * RA.allEqualTo(1, []); //=> true\n *\n */\n\nvar allEqualTo = curry(function (val, list) {\n return all(equals(val), list);\n});\nexport default allEqualTo;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { curry } from 'ramda';\nimport _makeFlat from './internal/makeFlat';\n\nvar flatten1 = _makeFlat(false);\n/**\n * Flattens the list to the specified depth.\n *\n * @func flattenDepth\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.19.0|v2.19.0}\n * @category List\n * @sig Number -> [a] -> [b]\n * @param {!number} depth The maximum recursion depth\n * @param {!Array} list The array to flatten\n * @return {!Array} Returns the new flattened array\n * @see {@link http://ramdajs.com/docs/#flatten|R.flatten}, {@link http://ramdajs.com/docs/#unnest|R.unnest}\n * @example\n *\n * RA.flattenDepth(\n * 2,\n * [1, [2], [3, [4, 5], 6, [[[7], 8]]], 9, 10]\n * ); //=> [1, 2, 3, 4, 5, 6, [[7], 8], 9, 10];\n */\n\n\nvar flattenDepth = curry(function (depth, list) {\n var currentDept = depth;\n\n var flatList = _toConsumableArray(list);\n\n while (currentDept > 0) {\n flatList = flatten1(flatList);\n currentDept -= 1;\n }\n\n return flatList;\n});\nexport default flattenDepth;","import isArrayLike from '../isArrayLike';\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 * @func makeFlat\n * @memberOf RA\n *\n * @category List\n * @param {!bool} = should recursively flatten\n * @param {!Array} = the nested list to be flattened\n * @return {!Array} = the flattened list\n * @sig Bool -> List -> List\n *\n */\n\nvar makeFlat = function makeFlat(recursive) {\n return function flatt(list) {\n var value;\n var jlen;\n var j;\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n if (isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n};\n\nexport default makeFlat;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { bind } from 'ramda';\nimport isIterable from '../../isIterable';\nimport isNotUndefined from '../../isNotUndefined';\nimport isNotNil from '../../isNotNil';\nimport isNotFunction from '../../isNotFunction';\n\nvar copyArray = function copyArray(items, mapFn, thisArg) {\n var boundMapFn = isNotUndefined(thisArg) ? bind(mapFn, thisArg) : mapFn;\n return isNotUndefined(mapFn) ? _toConsumableArray(items).map(boundMapFn) : _toConsumableArray(items);\n};\n\nvar fromArray = function fromArray(items, mapFn, thisArg) {\n if (items == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n\n if (isNotNil(mapFn) && isNotFunction(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n if (isIterable(items)) {\n return copyArray(items, mapFn, thisArg);\n }\n\n return [];\n};\n\nexport default fromArray;","import { ifElse, values, curryN } from 'ramda';\nimport isIterable from './isIterable';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Array.from';\nexport var fromPolyfill = curryN(1, polyfill);\nvar fromArray = isFunction(Array.from) ? curryN(1, Array.from) : fromPolyfill;\n/**\n * Converts value to an array.\n *\n * @func toArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig * -> [a]\n * @param {*} val The value to convert\n * @return {Array}\n * @example\n *\n * RA.toArray([1, 2]); //=> [1, 2]\n * RA.toArray({'foo': 1, 'bar': 2}); //=> [1, 2]\n * RA.toArray('abc'); //=> ['a', 'b', 'c']\n * RA.toArray(1); //=> []\n * RA.toArray(null); //=> []\n */\n\nvar toArray = ifElse(isIterable, fromArray, values);\nexport default toArray;","import { converge, length, uniq } from 'ramda';\nimport lengthEq from './lengthEq';\n/**\n * Returns true if all items in the list are unique. `R.equals` is used to determine equality.\n *\n * @func allUnique\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.notAllUnique|notAllUnique}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allUnique([ 1, 2, 3, 4 ]); //=> true\n * RA.allUnique([ 1, 1, 2, 3 ]); //=> false\n * RA.allUnique([]); //=> true\n *\n */\n\nvar allUnique = converge(lengthEq, [length, uniq]);\nexport default allUnique;","import { complement } from 'ramda';\nimport allUnique from './allUnique';\n/**\n * Returns true if at least one item of the list is repeated. `R.equals` is used to determine equality.\n *\n * @func notAllUnique\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allUnique|allUnique}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.notAllUnique([ 1, 1, 2, 3 ]); //=> true\n * RA.notAllUnique([ 1, 2, 3, 4 ]); //=> false\n * RA.notAllUnique([]); //=> false\n *\n */\n\nvar notAllUnique = complement(allUnique);\nexport default notAllUnique;","function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { reduce, either, curry, prop, sort, comparator, map, lt } from 'ramda';\n/**\n * Sort a list of objects by a list of props (if first prop value is equivalent, sort by second, etc).\n *\n * @func sortByProps\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0}\n * @category List\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array.} props A list of properties in the list param to sort by\n * @param {Array.} list A list of objects to be sorted\n * @return {Array.} A new list sorted by the properties in the props param\n * @example\n *\n * sortByProps(['num'], [{num: 3}, {num: 2}, {num: 1}])\n * //=> [{num: 1}, {num: 2} {num: 3}]\n * sortByProps(['letter', 'num'], [{num: 3, letter: 'a'}, {num: 2, letter: 'a'} {num: 1, letter: 'z'}])\n * //=> [ {num: 2, letter: 'a'}, {num: 3, letter: 'a'}, {num: 1, letter: 'z'}]\n * sortByProps(['name', 'num'], [{num: 3}, {num: 2}, {num: 1}])\n * //=> [{num: 1}, {num: 2}, {num: 3}]\n */\n\nvar sortByProps = curry(function (props, list) {\n var firstTruthy = function firstTruthy(_ref) {\n var _ref2 = _toArray(_ref),\n head = _ref2[0],\n tail = _ref2.slice(1);\n\n return reduce(either, head, tail);\n };\n\n var makeComparator = function makeComparator(propName) {\n return comparator(function (a, b) {\n return lt(prop(propName, a), prop(propName, b));\n });\n };\n\n return sort(firstTruthy(map(makeComparator, props)), list);\n});\nexport default sortByProps;","import { curry, addIndex, filter, pipe, modulo, identical, nthArg, __ } from 'ramda';\n/**\n * When given a number n and an array, returns an array containing every nth element.\n *\n * @func skipTake\n * @memberOf RA\n * @category List\n * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0}\n * @sig Number -> [a] -> [a]\n * @param {number} the nth element to extract\n * @param {Array} value the input array\n * @return {Array} An array containing every nth element\n * @example\n *\n * RA.skipTake(2, [1,2,3,4]) //=> [1, 3]\n * RA.skipTake(3, R.range(0, 20)); //=> [0, 3, 6, 9, 12, 15, 18]\n */\n\nvar skipTake = curry(function (n, list) {\n return addIndex(filter)(pipe(nthArg(1), modulo(__, n), identical(0)))(list);\n});\nexport default skipTake;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nslice(0, -1);\nexport default init;","import { curryN, path, apply, init, bind } from 'ramda';\nimport isNotFunction from './isNotFunction';\nimport isEmptyArray from './isEmptyArray';\n/**\n * Invokes the method at path of object with given arguments.\n *\n * @func invokeArgs\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.27.0|v2.27.0}\n * @category Object\n * @sig Array -> Array -> Object -> *\n * @param {Array.} path The path of the method to invoke\n * @param {Array} args The arguments to invoke the method with\n * @param {Object} obj The object to query\n * @return {*}\n * @example\n *\n * RA.invokeArgs(['abs'], [-1], Math); //=> 1\n * RA.invokeArgs(['path', 'to', 'non-existent', 'method'], [-1], Math); //=> undefined\n */\n\nvar invokeArgs = curryN(3, function (mpath, args, obj) {\n var method = path(mpath, obj);\n var context = path(init(mpath), obj);\n if (isNotFunction(method)) return undefined;\n if (isEmptyArray(mpath)) return undefined;\n var boundMethod = bind(method, context);\n return apply(boundMethod, args);\n});\nexport default invokeArgs;","import { curry, ap, path, __ } from 'ramda';\n/**\n * Acts as multiple path: arrays of paths in, array of values out. Preserves order.\n *\n * @func paths\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category List\n * @sig [[k]] -> {k: v} - [v]\n * @param {Array} ps The property paths to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#derivative-of-rprops-for-deep-fields|Ramda Cookbook}, {@link http://ramdajs.com/docs/#props|R.props}\n * @example\n *\n * const obj = {\n * a: { b: { c: 1 } },\n * x: 2,\n * };\n *\n * RA.paths([['a', 'b', 'c'], ['x']], obj); //=> [1, 2]\n */\n\nvar paths = curry(function (ps, obj) {\n return ap([path(__, obj)], ps);\n});\nexport default paths;","import { merge, flip } from 'ramda';\n/**\n * Create a new object with the own properties of the second object merged with\n * the own properties of the first object. If a key exists in both objects,\n * the value from the first object will be used. *\n * Putting it simply: it sets properties only if they don't exist.\n *\n * @func mergeRight\n * @deprecated since v2.12.0; available in ramda@0.26.0 as R.mergeLeft\n * @aliases mergeLeft, resetToDefault\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.6.0|v1.6.0}\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} r Destination\n * @param {Object} l Source\n * @return {Object}\n * @see {@link http://ramdajs.com/docs/#merge|R.merge}, {@link https://github.com/ramda/ramda/wiki/Cookbook#set-properties-only-if-they-dont-exist|Ramda Cookbook}\n * @example\n *\n * RA.mergeRight({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n */\n\nvar mergeRight = flip(merge);\nexport default mergeRight;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\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 */\n\nvar props =\n/*#__PURE__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","import { curryN, pipe, mergeAll, props } from 'ramda';\n/**\n * Functional equivalent of merging object properties with object spread operator.\n *\n * @func mergeProps\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.17.0|v1.17.0}\n * @category Object\n * @sig [k] -> {k: {a}} -> {a}\n * @see {@link RA.mergePaths|mergePaths}\n * @param {!Array} ps The property names to merge\n * @param {!Object} obj The object to query\n * @return {!Object} The object composed of merged properties of obj\n * @example\n *\n * const obj = {\n * foo: { fooInner: 1 },\n * bar: { barInner: 2 }\n * };\n *\n * { ...obj.foo, ...obj.bar }; //=> { fooInner: 1, barInner: 2 }\n * RA.mergeProps(['foo', 'bar'], obj); //=> { fooInner: 1, barInner: 2 }\n */\n\nvar mergeProps = curryN(2, pipe(props, mergeAll));\nexport default mergeProps;","import { curryN, pipe, mergeAll } from 'ramda';\nimport paths from './paths';\n/**\n * Merge objects under corresponding paths.\n *\n * @func mergePaths\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.17.0|v1.17.0}\n * @category Object\n * @sig [[k]] -> {k: {a}} -> {a}\n * @see {@link RA.mergeProps|mergeProps}\n * @param {!Array} paths The property paths to merge\n * @param {!Object} obj The object to query\n * @return {!Object} The object composed of merged property paths of obj\n * @example\n *\n * const obj = {\n * foo: { fooInner: { fooInner2: 1 } },\n * bar: { barInner: 2 }\n * };\n *\n * { ...obj.foo.fooInner, ...obj.bar }; //=> { fooInner2: 1, barInner: 2 }\n * RA.mergePaths([['foo', 'fooInner'], ['bar']], obj); //=> { fooInner2: 1, barInner: 2 }\n */\n\nvar mergePaths = curryN(2, pipe(paths, mergeAll));\nexport default mergePaths;","import { curry, over, lensPath } from 'ramda';\nimport mergeRight from './mergeRight';\n/**\n * Create a new object with the own properties of the object under the `path`\n * merged with the own properties of the provided `source`.\n * If a key exists in both objects, the value from the `source` object will be used.\n *\n * @func mergePath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Object\n * @sig [k] -> {a} -> {k: {a}} -> {k: {a}}\n * @see {@link RA.mergeProp|mergeProp}\n * @param {!Array} path The property path of the destination object\n * @param {!Object} source The source object\n * @param {!Object} obj The object that has destination object under corresponding property path\n * @return {!Object} The new version of object\n * @example\n *\n * RA.mergePath(\n * ['outer', 'inner'],\n * { foo: 3, bar: 4 },\n * { outer: { inner: { foo: 2 } } }\n * ); //=> { outer: { inner: { foo: 3, bar: 4 } }\n */\n\nvar mergePath = curry(function (path, source, obj) {\n return over(lensPath(path), mergeRight(source), obj);\n});\nexport default mergePath;","import { curry, of } from 'ramda';\nimport mergePath from './mergePath';\n/**\n * Create a new object with the own properties of the object under the `p`\n * merged with the own properties of the provided `source`.\n * If a key exists in both objects, the value from the `source` object will be used.\n *\n * @func mergeProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Object\n * @sig [k] -> {a} -> {k: {a}} -> {k: {a}}\n * @see {@link RA.mergePath|mergePath}\n * @param {!Array} p The property of the destination object\n * @param {!Object} source The source object\n * @param {!Object} obj The object that has destination object under corresponding property\n * @return {!Object} The new version of object\n * @example\n *\n * RA.mergeProp(\n * 'outer',\n * { foo: 3, bar: 4 },\n * { outer: { foo: 2 } }\n * ); //=> { outer: { foo: 3, bar: 4 } };\n */\n\nvar mergeProp = curry(function (p, subj, obj) {\n return mergePath(of(p), subj, obj);\n});\nexport default mergeProp;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\n_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\nexport default useWith;","import { complement, identity, pickBy, useWith } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * Returns a partial copy of an object containing only the keys\n * that don't satisfy the supplied predicate.\n *\n * @func omitBy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {!Function} pred A predicate to determine whether or not a key should be included on the output object\n * @param {!Object} obj The object to copy from\n * @return {!Object} A new object only with properties that don't satisfy `pred`\n *\n * @example\n *\n * const isLowerCase = (val, key) => key.toLowerCase() === key;\n * RA.omitBy(isLowerCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\n/* eslint-enable max-len */\n\nvar omitBy = useWith(pickBy, [complement, identity]);\nexport default omitBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default pickBy;","import { curryN, identical, partial, pathOr, unary, when } from 'ramda';\n/**\n * If the given, non-null object has a value at the given path, returns the value at that path.\n * Otherwise returns the result of invoking the provided function with the object.\n *\n * @func pathOrLazy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig ({a} -> a) -> [Idx] -> {a} -> a\n * @param {Function} defaultFn The function that will return the default value.\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` of the supplied object or the default value.\n * @example\n *\n * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOrLazy = curryN(3, function pathOrLazy(defaultFn, path, obj) {\n return when(identical(defaultFn), partial(unary(defaultFn), [obj]), pathOr(defaultFn, path, obj));\n});\nexport default pathOrLazy;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\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 -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","import { view, defaultTo, curryN } from 'ramda';\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n * Returns the defaultValue if \"view\" is null, undefined or NaN; otherwise the \"view\" is returned.\n *\n * @func viewOr\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Object\n * @typedef Lens s b = Functor f => (b -> f b) -> s -> f s\n * @sig a -> Lens s b -> s -> b | a\n * @see {@link http://ramdajs.com/docs/#view|R.view}\n * @param {*} defaultValue The default value\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @returns {*} \"view\" or defaultValue\n *\n * @example\n *\n * RA.viewOr('N/A', R.lensProp('x'), {}); // => 'N/A'\n * RA.viewOr('N/A', R.lensProp('x'), { x: 1 }); // => 1\n * RA.viewOr('some', R.lensProp('y'), { y: null }); // => 'some'\n * RA.viewOr('some', R.lensProp('y'), { y: false }); // => false\n */\n\nvar viewOr = curryN(3, function (defaultValue, lens, data) {\n return defaultTo(defaultValue, view(lens, data));\n});\nexport default viewOr;","import { length, has, path, head, tail, curryN } from 'ramda';\nimport isObj from './isObj';\n/**\n * Returns whether or not an object has an own property with the specified name at a given path.\n *\n * @func hasPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @deprecated since v2.12.0; ramda@0.26.0 contains hasPath\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array.} path The path of the nested property\n * @param {Object} obj The object to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#has|R.has}\n * @example\n *\n * RA.hasPath(['a', 'b'], { a: { b: 1 } }); //=> true\n * RA.hasPath(['a', 'b', 'c'], { a: { b: 1 } }); //=> false\n * RA.hasPath(['a', 'b'], { a: { } }); //=> false\n * RA.hasPath([0], [1, 2]); //=> true\n */\n\nvar hasPath = curryN(2, function (objPath, obj) {\n var prop = head(objPath); // termination conditions\n\n if (length(objPath) === 0 || !isObj(obj)) {\n return false;\n }\n\n if (length(objPath) === 1) {\n return has(prop, obj);\n }\n\n return hasPath(tail(objPath), path([prop], obj)); // base case\n});\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\nimport dissoc from \"./dissoc.js\";\nimport remove from \"./remove.js\";\nimport update from \"./update.js\";\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import { curryN, converge, merge, dissocPath, pathOr } from 'ramda';\n/**\n * Spreads object under property path onto provided object.\n * It's like {@link RA.flattenPath|flattenPath}, but removes object under the property path.\n *\n * @func spreadPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!Array.} path The property path to spread\n * @param {!Object} obj The provided object\n * @return {!Object} The result of the spread\n * @see {@link RA.spreadProp|spreadProp}, {@link RA.flattenPath|flattenPath}\n * @example\n *\n * RA.spreadPath(\n * ['b1', 'b2'],\n * { a: 1, b1: { b2: { c: 3, d: 4 } } }\n * ); // => { a: 1, c: 3, d: 4, b1: {} };\n */\n\nvar spreadPath = curryN(2, converge(merge, [dissocPath, pathOr({})]));\nexport default spreadPath;","import { of, curry } from 'ramda';\nimport spreadPath from './spreadPath';\n/**\n * Spreads object under property onto provided object.\n * It's like {@link RA.flattenProp|flattenProp}, but removes object under the property.\n *\n * @func spreadProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig Idx -> {k: v} -> {k: v}\n * @param {!string|number} prop The property to spread\n * @param {!Object} obj The provided object\n * @return {!Object} The result of the spread\n * @see {@link RA.spreadPath|spreadPath}, {@link RA.flattenProp|flattenProp}\n * @example\n *\n * RA.spreadProp('b', { a: 1, b: { c: 3, d: 4 } }); // => { a: 1, c: 3, d: 4 };\n */\n\nvar spreadProp = curry(function (prop, obj) {\n return spreadPath(of(prop), obj);\n});\nexport default spreadProp;","import { pathOr, curry, merge } from 'ramda';\n/**\n * Flattens a property path so that its fields are spread out into the provided object.\n * It's like {@link RA.spreadPath|spreadPath}, but preserves object under the property path.\n *\n * @func flattenPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!Array.} path The property path to flatten\n * @param {!Object} obj The provided object\n * @return {!Object} The flattened object\n * @see {@link RA.flattenProp|flattenProp}, {@link RA.spreadPath|spreadPath}\n * @example\n *\n * RA.flattenPath(\n * ['b1', 'b2'],\n * { a: 1, b1: { b2: { c: 3, d: 4 } } }\n * ); // => { a: 1, c: 3, d: 4, b1: { b2: { c: 3, d: 4 } } };\n */\n\nvar flattenPath = curry(function (path, obj) {\n return merge(obj, pathOr({}, path, obj));\n});\nexport default flattenPath;","import { of, curry } from 'ramda';\nimport flattenPath from './flattenPath';\n/**\n * Flattens a property so that its fields are spread out into the provided object.\n * It's like {@link RA.spreadProp|spreadProp}, but preserves object under the property path.\n *\n * @func flattenProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!string|number} prop The property to flatten\n * @param {!Object} obj The provided object\n * @return {!Object} The flattened object\n * @see {@link RA.flattenPath|flattenPath}, {@link RA.spreadProp|spreadProp}\n * @example\n *\n * RA.flattenProp(\n * 'b',\n * { a: 1, b: { c: 3, d: 4 } }\n * ); // => { a: 1, c: 3, d: 4, b: { c: 3, d: 4 } };\n */\n\nvar flattenProp = curry(function (prop, obj) {\n return flattenPath(of(prop), obj);\n});\nexport default flattenProp;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import { apply, curryN, flip, map, pipe, toPairs, transpose, when } from 'ramda';\nimport lengthEq from './lengthEq';\n/**\n * Creates a new list out of the supplied object by applying the function to each key/value pairing.\n *\n * @func unzipObjWith\n * @memberOf RA\n * @category Object\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig (v, k) => [k, v] -> { k: v } -> [[k], [v]]\n * @param {Function} fn The function to transform each value-key pair\n * @param {Object} obj Object to unzip\n * @return {Array} A pair of tw lists: a list of keys and a list of values\n * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.zipObjWith|zipObjWith}\n * @example\n *\n * RA.unzipObjWith((v, k) => [`new${k.toUpperCase()}`, 2 * v], { a: 1, b: 2, c: 3 });\n * //=> [['newA', 'newB', 'newC'], [2, 4, 6]]\n */\n\nvar unzipObjWith = curryN(2, function (fn, obj) {\n return pipe(toPairs, map(pipe(flip, apply)(fn)), transpose, when(lengthEq(0), function () {\n return [[], []];\n }))(obj);\n});\nexport default unzipObjWith;","import { apply, curryN, fromPairs, map, pipe, zip } from 'ramda';\n/**\n * Creates a new object out of a list of keys and a list of values by applying the function\n * to each equally-positioned pair in the lists.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n *\n * @func zipObjWith\n * @memberOf RA\n * @category Object\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig (b, a) -> [k, v] -> [a] -> [b] -> { k: v }\n * @param {Function} fn The function to transform each value-key pair\n * @param {Array} keys Array to transform into the properties on the output object\n * @param {Array} values Array to transform into the values on the output object\n * @return {Object} The object made by pairing up and transforming same-indexed elements of `keys` and `values`.\n * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.unzipObjWith|unzipObjWith}\n * @example\n *\n * RA.zipObjWith((value, key) => [key, `${key}${value + 1}`]), ['a', 'b', 'c'], [1, 2, 3]);\n * // => { a: 'a2', b: 'b3', c: 'c4' }\n */\n\nvar zipObjWith = curryN(3, function (fn, keys, values) {\n return pipe(zip, map(apply(fn)), fromPairs)(values, keys);\n});\nexport default zipObjWith;","import { view, curryN, equals, pipe } from 'ramda';\n/**\n * Returns `true` if data structure focused by the given lens equals provided value.\n *\n * @func lensEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> b -> s -> Boolean\n * @see {@link RA.lensNotEq|lensNotEq}\n * @param {function} lens Van Laarhoven lens\n * @param {*} value The value to compare the focused data structure with\n * @param {*} data The data structure\n * @return {boolean} `true` if the focused data structure equals value, `false` otherwise\n *\n * @example\n *\n * RA.lensEq(R.lensIndex(0), 1, [0, 1, 2]); // => false\n * RA.lensEq(R.lensIndex(1), 1, [0, 1, 2]); // => true\n * RA.lensEq(R.lensPath(['a', 'b']), 'foo', { a: { b: 'foo' } }) // => true\n */\n\nvar lensEq = curryN(3, function (lens, val, data) {\n return pipe(view(lens), equals(val))(data);\n});\nexport default lensEq;","import { complement } from 'ramda';\nimport lensEq from './lensEq';\n/**\n * Returns `true` if data structure focused by the given lens doesn't equal provided value.\n *\n * @func lensNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> b -> s -> Boolean\n * @see {@link RA.lensEq|lensEq}\n * @param {function} lens Van Laarhoven lens\n * @param {*} value The value to compare the focused data structure with\n * @param {*} data The data structure\n * @return {boolean} `false` if the focused data structure equals value, `true` otherwise\n *\n * @example\n *\n * RA.lensNotEq(R.lensIndex(0), 1, [0, 1, 2]); // => true\n * RA.lensNotEq(R.lensIndex(1), 1, [0, 1, 2]); // => false\n * RA.lensNotEq(R.lensPath(['a', 'b']), 'foo', { a: { b: 'foo' } }) // => false\n */\n\nvar lensNotEq = complement(lensEq);\nexport default lensNotEq;","import { view, curryN, pipe } from 'ramda';\nimport isTrue from './isTrue';\n/**\n * Returns `true` if data structure focused by the given lens satisfies the predicate.\n * Note that the predicate is expected to return boolean value and will be evaluated\n * as `false` unless the predicate returns `true`.\n *\n * @func lensSatisfies\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Boolean b => (a -> b) -> Lens s a -> s -> b\n * @see {@link RA.lensNotSatisfy|lensNotSatisfy}\n * @param {Function} predicate The predicate function\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @return {boolean} `true` if the focused data structure satisfies the predicate, `false` otherwise\n *\n * @example\n *\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(0), [false, true, 1]); // => false\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(1), [false, true, 1]); // => true\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(2), [false, true, 1]); // => false\n * RA.lensSatisfies(R.identity, R.lensProp('x'), { x: 1 }); // => false\n */\n\nvar lensSatisfies = curryN(3, function (predicate, lens, data) {\n return pipe(view(lens), predicate, isTrue)(data);\n});\nexport default lensSatisfies;","import { complement } from 'ramda';\nimport lensSatisfies from './lensSatisfies';\n/**\n * Returns `true` if data structure focused by the given lens doesn't satisfy the predicate.\n * Note that the predicate is expected to return boolean value.\n *\n * @func lensNotSatisfy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Boolean b => (a -> b) -> Lens s a -> s -> b\n * @see {@link RA.lensSatisfies|lensSatisfies}\n * @param {Function} predicate The predicate function\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @return {boolean} `false` if the focused data structure satisfies the predicate, `true` otherwise\n *\n * @example\n *\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(0), [false, true, 1]); // => true\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(1), [false, true, 1]); // => false\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(2), [false, true, 1]); // => true\n * RA.lensNotSatisfy(R.identity, R.lensProp('x'), { x: 1 }); // => true\n */\n\nvar lensNotSatisfy = complement(lensSatisfies);\nexport default lensNotSatisfy;","import _curry2 from \"./internal/_curry2.js\";\nimport ap from \"./ap.js\";\nimport map from \"./map.js\";\nimport prepend from \"./prepend.js\";\nimport reduceRight from \"./reduceRight.js\";\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\n_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\n\nexport default sequence;","import _curry3 from \"./internal/_curry3.js\";\nimport map from \"./map.js\";\nimport sequence from \"./sequence.js\";\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\n_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\n\nexport default traverse;","import { useWith, curry, curryN, equals, path, either, complement } from 'ramda'; // type :: Monad a => a -> String\n\nexport var type = either(path(['@@type']), path(['constructor', '@@type'])); // typeEquals :: Monad a => String -> a -> Boolean\n\nexport var typeEquals = curry(function (typeIdent, monad) {\n return type(monad) === typeIdent;\n}); // isSameType :: (Monad a, Monad b) => a -> b -> Boolean\n\nexport var isSameType = curryN(2, useWith(equals, [type, type])); // isNotSameType :: (Monad a, Monad b) => a -> b -> Boolean\n\nexport var isNotSameType = complement(isSameType);","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { equals, pathSatisfies } from 'ramda';\nimport isString from '../isString';\nimport isNumber from '../isNumber';\nimport isFunction from '../isFunction';\nimport { isSameType } from './util';\nimport fl from './mapping';\nexport var functorTrait = _defineProperty({}, fl.map, function (fn) {\n return this.constructor[fl.of](fn(this.value));\n});\nexport var applyTrait = _defineProperty({}, fl.ap, function (applyWithFn) {\n var _this = this;\n\n return applyWithFn.map(function (fn) {\n return fn(_this.value);\n });\n});\nexport var setoidTrait = _defineProperty({}, fl.equals, function (setoid) {\n return isSameType(this, setoid) && equals(this.value, setoid.value);\n});\nexport var semigroupTrait = _defineProperty({}, fl.concat, function (semigroup) {\n var concatenatedValue = this.value;\n\n if (isString(this.value) || isNumber(this.value)) {\n concatenatedValue = this.value + semigroup.value;\n } else if (pathSatisfies(isFunction, ['value', fl.concat], this)) {\n concatenatedValue = this.value[fl.concat](semigroup.value);\n } else if (pathSatisfies(isFunction, ['value', 'concat'], this)) {\n concatenatedValue = this.value.concat(semigroup.value);\n }\n\n return this.constructor[fl.of](concatenatedValue);\n});\nexport var chainTrait = _defineProperty({}, fl.chain, function (fn) {\n var newChain = fn(this.value);\n return isSameType(this, newChain) ? newChain : this;\n});\nexport var ordTrait = _defineProperty({}, fl.lte, function (ord) {\n return isSameType(this, ord) && (this.value < ord.value || this[fl.equals](ord));\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { empty as emptyR } from 'ramda';\nimport fl from './mapping';\nimport { applyTrait, functorTrait, setoidTrait, semigroupTrait, chainTrait, ordTrait } from './traits'; // we do this here for jsdocs generate properly\n\nvar of = fl.of,\n _ap = fl.ap,\n _map = fl.map,\n _equals = fl.equals,\n _concat = fl.concat,\n _chain = fl.chain,\n _lte = fl.lte,\n _empty = fl.empty,\n _contramap = fl.contramap;\n/**\n * The simplest {@link https://github.com/fantasyland/fantasy-land|fantasy-land}\n * compatible monad which attaches no information to values.\n *\n * The Identity type is a very simple type that has no interesting side effects and\n * is effectively just a container of some value. So why does it exist ?\n * The Identity type is often used as the base monad of a monad\n * transformer when no other behaviour is required.\n *\n * @memberOf RA\n * @implements\n * {@link https://github.com/fantasyland/fantasy-land#apply|Apply},\n * {@link https://github.com/fantasyland/fantasy-land#applicative|Applicative},\n * {@link https://github.com/fantasyland/fantasy-land#functor|Functor},\n * {@link https://github.com/fantasyland/fantasy-land#setoid|Setoid},\n * {@link https://github.com/fantasyland/fantasy-land#semigroup|Semigroup},\n * {@link https://github.com/fantasyland/fantasy-land#chain|Chain},\n * {@link https://github.com/fantasyland/fantasy-land#monad|Monad},\n * {@link https://github.com/fantasyland/fantasy-land#ord|Ord},\n * {@link https://github.com/fantasyland/fantasy-land#monoid|Monoid*},\n * {@link https://github.com/fantasyland/fantasy-land#contravariant|Contravariant}\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n */\n\nvar Identity = /*#__PURE__*/function () {\n _createClass(Identity, null, [{\n key: of,\n\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#applicative|Applicative} specification.\n *\n * @static\n * @sig of :: Applicative f => a -> f a\n * @param {*} value\n * @returns {RA.Identity}\n * @example\n *\n * const a = Identity.of(1); //=> Identity(1)\n */\n value: function value(_value) {\n return new Identity(_value);\n }\n }, {\n key: \"of\",\n value: function of(value) {\n return new Identity(value);\n }\n /**\n * @static\n */\n\n }, {\n key: '@@type',\n get: function get() {\n return 'RA/Identity';\n }\n /**\n * Private constructor. Use {@link RA.Identity.of|Identity.of} instead.\n *\n * @private\n * @param {*} value\n * @return {RA.Identity}\n */\n\n }]);\n\n function Identity(value) {\n _classCallCheck(this, Identity);\n\n this.value = value;\n }\n /**\n * Catamorphism for a value.\n * @returns {*}\n * @example\n *\n * const a = Identity.of(1);\n * a.get(); //=> 1\n */\n\n\n _createClass(Identity, [{\n key: \"get\",\n value: function get() {\n return this.value;\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#apply|Apply} specification.\n *\n * @sig ap :: Apply f => f a ~> f (a -> b) -> f b\n * @param {RA.Identity} applyWithFn\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1).map(a => b => a + b);\n *\n * a.ap(b); //=> Identity(2)\n */\n\n }, {\n key: _ap,\n value: function value(applyWithFn) {\n return applyTrait[_ap].call(this, applyWithFn);\n }\n }, {\n key: \"ap\",\n value: function ap(applyWithFn) {\n return this[_ap](applyWithFn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#functor|Functor} specification.\n *\n * @sig map :: Functor f => f a ~> (a -> b) -> f b\n * @param {Function} fn\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * a.map(a => a + 1); //=> Identity(2)\n */\n\n }, {\n key: _map,\n value: function value(fn) {\n return functorTrait[_map].call(this, fn);\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n return this[_map](fn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#setoid|Setoid} specification.\n *\n * @sig equals :: Setoid a => a ~> a -> Boolean\n * @param {RA.Identity} setoid\n * @return {boolean}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * const c = Identity.of(2);\n *\n * a.equals(b); //=> true\n * a.equals(c); //=> false\n */\n\n }, {\n key: _equals,\n value: function value(setoid) {\n return setoidTrait[_equals].call(this, setoid);\n }\n }, {\n key: \"equals\",\n value: function equals(setoid) {\n return this[_equals](setoid);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#semigroup|Semigroup} specification.\n *\n * @sig concat :: Semigroup a => a ~> a -> a\n * @param {RA.Identity} semigroup\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * a.concat(b); //=> 2\n *\n * const c = Identity.of('c');\n * const d = Identity.of('d');\n * c.concat(d); //=> 'cd'\n *\n * const e = Identity.of(['e']);\n * const f = Identity.of(['f']);\n * e.concat(f); //=> ['e', 'f']\n */\n\n }, {\n key: _concat,\n value: function value(semigroup) {\n return semigroupTrait[_concat].call(this, semigroup);\n }\n }, {\n key: \"concat\",\n value: function concat(semigroup) {\n return this[_concat](semigroup);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#chain|Chain} specification.\n *\n * @sig chain :: Chain m => m a ~> (a -> m b) -> m b\n * @param {Function} fn Function returning the value of the same {@link https://github.com/fantasyland/fantasy-land#semigroup|Chain}\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const fn = val => Identity.of(val + 1);\n *\n * a.chain(fn).chain(fn); //=> Identity(3)\n */\n\n }, {\n key: _chain,\n value: function value(fn) {\n return chainTrait[_chain].call(this, fn);\n }\n }, {\n key: \"chain\",\n value: function chain(fn) {\n return this[_chain](fn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#ord|Ord} specification.\n *\n * @sig lte :: Ord a => a ~> a -> Boolean\n * @param {RA.Identity} ord\n * @return {boolean}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * const c = Identity.of(2);\n *\n * a.lte(b); //=> true\n * a.lte(c); //=> true\n * c.lte(a); //=> false\n */\n\n }, {\n key: _lte,\n value: function value(ord) {\n return ordTrait[_lte].call(this, ord);\n }\n }, {\n key: \"lte\",\n value: function lte(ord) {\n return this[_lte](ord);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#monoid|Monoid*} specification.\n * Partial implementation of Monoid specification. `empty` method on instance only, returning\n * identity value of the wrapped type. Using `R.empty` under the hood.\n *\n *\n * @sig empty :: Monoid m => () -> m\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of('test');\n * const i = a.empty();\n *\n * a.concat(i); //=> Identity('string');\n * i.concat(a); //=> Identity('string');\n */\n\n }, {\n key: _empty,\n value: function value() {\n return this.constructor.of(emptyR(this.value));\n }\n }, {\n key: \"empty\",\n value: function empty() {\n return this[_empty]();\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#contravariant|Contravariant} specification.\n *\n * @sig contramap :: Contravariant f => f a ~> (b -> a) -> f b\n * @param {Function} fn\n * @return {RA.Identity}\n * @example\n *\n * const identity = a => a;\n * const add1 = a => a + 1;\n * const divide2 = a => a / 2;\n *\n * Identity.of(divide2).contramap(add1).get()(3); //=> 2\n * Identity.of(identity).contramap(divide2).contramap(add1).get()(3); //=> 2\n * Identity.of(identity).contramap(a => divide2(add1(a))).get()(3); //=> 2\n */\n\n }, {\n key: _contramap,\n value: function value(fn) {\n var _this = this;\n\n return this.constructor.of(function (value) {\n return _this.value(fn(value));\n });\n }\n }, {\n key: \"contramap\",\n value: function contramap(fn) {\n return this[_contramap](fn);\n }\n }]);\n\n return Identity;\n}();\n\nexport default Identity;","import { traverse, curry, pipe, prop, curryN } from 'ramda';\nimport Identity from './fantasy-land/Identity';\n/**\n * Creates a [Traversable](https://github.com/fantasyland/fantasy-land#traversable) lens\n * from an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning function.\n *\n * When executed, it maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func lensTraverse\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|2.7.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Applicative f => (a -> f a) -> Lens s a\n * @param {!function} of The Applicative-returning function\n * @return {!function} The Traversable lens\n * @see {@link http://ramdajs.com/docs/#lens|R.lens}, {@link http://ramdajs.com/docs/#traverse|R.traverse}\n *\n * @example\n *\n * const maybeLens = RA.lensTraverse(Maybe.of);\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.over(maybeLens, safeDiv(10), [2, 4, 5]); // => Just([5, 2.5, 2])\n * R.over(maybeLens, safeDiv(10), [2, 0, 5]); // => Nothing\n *\n * R.view(maybeLens, [Maybe.Just(2), Maybe.Just(3)]); // => Maybe.Just([2, 3])\n *\n * R.set(maybeLens, Maybe.Just(1), [Maybe.just(2), Maybe.Just(3)]); // => Maybe.Just([1, 1])\n */\n\nvar lensTraverse = curryN(1, function (of) {\n return curry(function (toFunctorFn, target) {\n return Identity.of(traverse(of, pipe(toFunctorFn, prop('value')), target));\n });\n});\nexport default lensTraverse;","import { curry, map } from 'ramda'; // This implementation was highly inspired by the implementations\n// in ramda-lens library.\n//\n// https://github.com/ramda/ramda-lens\n// isomorphic :: ((a -> b), (b -> a)) -> Isomorphism\n// Isomorphism = x -> y\n\nvar isomorphic = function isomorphic(to, from) {\n var isomorphism = function isomorphism(x) {\n return to(x);\n };\n\n isomorphism.from = from;\n return isomorphism;\n}; // isomorphisms :: ((a -> b), (b -> a)) -> (a -> b)\n\n\nvar isomorphisms = function isomorphisms(to, from) {\n return isomorphic(curry(function (toFunctorFn, target) {\n return map(from, toFunctorFn(to(target)));\n }), curry(function (toFunctorFn, target) {\n return map(to, toFunctorFn(from(target)));\n }));\n}; // from :: Isomorphism -> a -> b\n\n\nvar from = curry(function (isomorphism, x) {\n return isomorphism.from(x);\n});\n/**\n * Defines an isomorphism that will work like a lens. It takes two functions.\n * The function that converts and the function that recovers.\n *\n * @func lensIso\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|1.19.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> (a -> s) -> Lens s a\n * @param {!function} to The function that converts\n * @param {!function} from The function that recovers\n * @return {!function} The isomorphic lens\n * @see {@link http://ramdajs.com/docs/#lens|R.lens}\n *\n * @example\n *\n * const lensJSON = RA.lensIso(JSON.parse, JSON.stringify);\n *\n * R.over(lensJSON, assoc('b', 2), '{\"a\":1}'); //=> '{\"a\":1,\"b\":2}'\n * R.over(RA.lensIso.from(lensJSON), R.replace('}', ',\"b\":2}'), { a: 1 }); // => { a: 1, b: 2 }\n */\n\nvar lensIso = curry(isomorphisms);\nlensIso.from = from;\nexport default lensIso;","import { propEq, complement } from 'ramda';\n/**\n * Returns true if the specified object property is not equal,\n * in R.equals terms, to the given value; false otherwise.\n *\n * @func propNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name The property to pick\n * @param {a} val The value to compare to\n * @param {Object} object The object, that presumably contains value under the property\n * @return {boolean} Comparison result\n * @see {@link http://ramdajs.com/docs/#propEq|R.propEq}\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 hasNotBrownHair = RA.propNotEq('hair', 'brown');\n *\n * R.filter(hasNotBrownHair, kids); //=> [abby, alois]\n */\n\nvar propNotEq = complement(propEq);\nexport default propNotEq;","import { pathEq, complement } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * Determines whether a nested path on an object doesn't have a specific value,\n * in R.equals terms. Most likely used to filter a list.\n *\n * @func pathNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Relation\n * @sig [Idx] => a => {a} => Boolean\n * @sig Idx = String | Int\n * @param {Array} path The path of the nested property to use\n * @param {a} val The value to compare the nested property with\n * @param {Object} object The object to check the nested property in\n * @return {boolean} Returns Boolean `false` if the value equals the nested object property, `true` otherwise\n * @see {@link http://ramdajs.com/docs/#pathEq|R.pathEq}\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.pathNotEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user2, user3 ]\n */\n\n/* eslint-enable max-len */\n\nvar pathNotEq = complement(pathEq);\nexport default pathNotEq;","import { ifElse, curry, useWith, both, gte, lte, gt } from 'ramda';\nvar inRangeImp = ifElse(gte, function () {\n throw new Error('low must not be greater than high in inRange(low, high, value)');\n}, useWith(both, [lte, gt]));\n/**\n * Checks if `value` is between `low` and up to but not including `high`.\n *\n * @func inRange\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|v2.7.0}\n * @category Relation\n * @sig Number -> Number -> Number -> Boolean\n * @param {Number} low Start of the range\n * @param {Number} high The end of the range\n * @param {Number} value The value to test\n * @return {boolean}\n * @throws {Error} When `low` is greater than or equal to `high`\n * @example\n *\n * RA.inRange(0, 5, 3); //=> true\n * RA.inRange(0, 5, 0); //=> true\n * RA.inRange(0, 5, 4); //=> true\n * RA.inRange(0, 5, 5); //=> false\n * RA.inRange(0, 5, -1); //=> false\n */\n\nexport default curry(function (low, high, value) {\n return inRangeImp(low, high)(value);\n});","import { curry, compose, complement, both } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * A function which calls the two provided functions and returns the complement of `&&`ing the\n * results.\n * It returns true if the first function is false-y and the complement of the second function\n * otherwise. Note that this is short-circuited, meaning that the second function will not be\n * invoked if the first returns a false-y value. In short it will return true unless both predicates\n * return true.\n *\n * In addition to functions, `RA.notBoth` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func notBoth\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} Returns a function that applies its arguments to `f` and `g` and returns the complement of `&&`ing their outputs together.\n * @see {@link http://ramdajs.com/docs/#both|R.both}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.notBoth(gt10, even);\n *\n * f(12); //=> false\n * f(8); //=> true\n * f(11); //=> true\n * f(9); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar notBoth = curry(compose(complement, both));\nexport default notBoth;","import { and, complement } from 'ramda';\n/**\n * Returns false if both arguments are truthy; true otherwise.\n *\n * @func nand\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.19.0|v2.19.0}\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean} false if both arguments are truesy\n * @example\n *\n * RA.nand(true, true); //=> false\n * RA.nand(false, true); //=> true\n * RA.nand(true, false); //=> true\n * RA.nand(false, false); //=> true\n * RA.nand(1.0, 1.0); //=> false\n * RA.nand(1.0, 0); //=> true\n * RA.nand(0, 1.0); //=> true\n * RA.nand(0, 0); //=> true\n */\n\nvar nand = complement(and); // eslint-disable-line ramda/complement-simplification\n\nexport default nand;","import { curry, compose, complement, either } from 'ramda';\n/* eslint-disable max-len */\n\n/**\n * A function which calls the two provided functions and returns the complement of `||`ing the\n * results.\n * It returns false if the first function is truth-y and the complement of the second function\n * otherwise. Note that this is short-circuited, meaning that the second function will not be\n * invoked if the first returns a truth-y value. In short it will return true if neither predicate\n * returns true.\n *\n * In addition to functions, `RA.neither` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func neither\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} Returns a function that applies its arguments to `f` and `g` and returns the complement of `||`ing their outputs together.\n * @see {@link http://ramdajs.com/docs/#either|R.either}, {@link http://ramdajs.com/docs/#or|R.or}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.neither(gt10, even);\n *\n * f(12); //=> false\n * f(8); //=> false\n * f(11); //=> false\n * f(9); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar neither = curry(compose(complement, either));\nexport default neither;","import { or, complement } from 'ramda';\n/**\n * Returns true if both arguments are falsy; false otherwise.\n *\n * @func nor\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.20.0|v2.20.0}\n * @category Logic\n * @sig a -> b -> a ⊽ b\n * @param {*} a\n * @param {*} b\n * @return {boolean} true if both arguments are falsy\n * @see {@link RA.neither|neither}\n * @example\n *\n * RA.nor(true, true); //=> false\n * RA.nor(false, true); //=> false\n * RA.nor(true, false); //=> false\n * RA.nor(false, false); //=> true\n * RA.nor(1, 1); //=> false\n * RA.nor(1, 0); //=> false\n * RA.nor(0, 1); //=> false\n * RA.nor(0, 0); //=> true\n */\n\nvar nor = complement(or); // eslint-disable-line ramda/complement-simplification\n\nexport default nor;","import { curry, complement, compose, allPass } from 'ramda';\n/**\n * Takes a list of predicates and returns a predicate that returns true for a given list of\n * arguments if one or more of the provided predicates is not satisfied by those arguments. It is\n * the complement of Ramda's allPass.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func notAllPass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.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 {@link http://ramdajs.com/docs/#allPass|R.allPass}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.notAllPass([gt10, even]);\n *\n * f(12); //=> false\n * f(8); //=> true\n * f(11); //=> true\n * f(9); //=> true\n */\n\nvar notAllPass = curry(compose(complement, allPass));\nexport default notAllPass;","import { complement, compose, anyPass, curryN } from 'ramda';\n/**\n * Takes a list of predicates and returns a predicate that returns true for a given list of\n * arguments if none of the provided predicates are satisfied by those arguments. It is the\n * complement of Ramda's anyPass.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func nonePass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.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 {@link http://ramdajs.com/docs/#anyPass|R.anyPass}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.nonePass([gt10, even]);\n *\n * f(12); //=> false\n * f(8); //=> false\n * f(11); //=> false\n * f(9); //=> true\n */\n\nvar nonePass = curryN(1, compose(complement, anyPass));\nexport default nonePass;","import { useWith, curry, compose } from 'ramda';\nimport list from './list';\nimport isTruthy from './isTruthy';\n/**\n * Takes a combining predicate and a list of functions and returns a function which will map the\n * arguments it receives to the list of functions and returns the result of passing the values\n * returned from each function to the combining predicate. A combining predicate is a function that\n * combines a list of Boolean values into a single Boolean value, such as `R.any` or `R.all`. It\n * will test each value using `RA.isTruthy`, meaning the functions don't necessarily have to be\n * predicates.\n *\n * The function returned is curried to the number of functions supplied, and if called with more\n * arguments than functions, any remaining arguments are passed in to the combining predicate\n * untouched.\n *\n * @func argsPass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|v2.7.0}\n * @category Logic\n * @sig ((* -> Boolean) -> [*] -> Boolean) -> [(* -> Boolean), ...] -> (*...) -> Boolean\n * @param {Function} combiningPredicate The predicate used to combine the values returned from the\n * list of functions\n * @param {Array} functions List of functions\n * @return {boolean} Returns the combined result of mapping arguments to functions\n * @example\n *\n * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 'abc') //=> true\n * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 1) //=> false\n * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> true\n * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> false\n * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> true\n * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> false\n */\n\nvar argsPass = curry(function (combiningPredicate, predicates) {\n return useWith(compose(combiningPredicate(isTruthy), list), predicates);\n});\nexport default argsPass;","import { nAry } from 'ramda';\n/**\n * Accepts a function with any arity and returns a function with arity of zero.\n * The returned function ignores any arguments supplied to it.\n *\n * @func dropArgs\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.10.0|v2.10.0}\n * @category Logic\n * @sig (...a -> b)-> () -> b\n * @param {Function} fn The function with any arity\n * @return {Function} Returns function with arity of zero\n * @see {@link http://ramdajs.com/docs/#nAry|R.nAry}\n * @example\n *\n * const fn = (a = 1, b = 2) => a + b;\n *\n * RA.dropArgs(fn)('ignore1', 'ignore2'); //=> 3\n */\n\nvar dropArgs = nAry(0);\nexport default dropArgs;","import { bind, curryN } from 'ramda';\n/**\n * Returns the value of a number rounded to the nearest integer.\n *\n * @func round\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to round\n * @return {number} The value of the given number rounded to the nearest integer\n * @example\n *\n * RA.round(0.9); //=> 1\n * RA.round(5.95); //=> 6\n * RA.round(5.5); //=> 6\n * RA.round(5.05); //=> 5\n * RA.round(-5.05); //=> -5\n * RA.round(-5.5); //=> -5\n * RA.round(-5.95); //=> -6\n */\n\nvar round = curryN(1, bind(Math.round, Math));\nexport default round;","import { bind, curryN } from 'ramda';\n/**\n * Returns the smallest integer greater than or equal to a given number.\n *\n * Note: ceil(null) returns integer 0 and does not give a NaN error.\n *\n * @func ceil\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to ceil\n * @return {number} The smallest integer greater than or equal to the given number\n * @example\n *\n * RA.ceil(.95); //=> 1\n * RA.ceil(4); //=> 4\n * RA.ceil(7.004); //=> 8\n * RA.ceil(-0.95); //=> -0\n * RA.ceil(-4); //=> -4\n * RA.ceil(-7.004); //=> -7\n * RA.ceil(null); //=> 0\n */\n\nvar ceil = curryN(1, bind(Math.ceil, Math));\nexport default ceil;","import { divide, flip } from 'ramda';\n/**\n * Divides two numbers, where the second number is divided by the first number.\n *\n * @func divideNum\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Math\n * @sig Number -> Number -> Number\n * @param {number} divisor the number to divide by\n * @param {number} dividend the number to divide\n * @return {number} A number representing the quotient of dividing the dividend by the divisor\n * @example\n *\n * RA.divideNum(2, 1); //=> 0.5\n */\n\nvar divideNum = flip(divide);\nexport default divideNum;","import { bind, curryN } from 'ramda';\n/**\n * Returns the largest integer less than or equal to a given number.\n *\n * Note: floor(null) returns integer 0 and do not give a NaN error.\n *\n * @func floor\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to floor\n * @return {number} A number representing the largest integer less than or equal to the specified number\n * @example\n *\n * RA.floor(45.95); //=> 45\n * RA.floor(45.05); //=> 45\n * RA.floor(4); //=> 4\n * RA.floor(-45.05); //=> -46\n * RA.floor(-45.95); //=> -46\n * RA.floor(null); //=> 0\n */\n\nvar floor = curryN(1, bind(Math.floor, Math));\nexport default floor;","import isFinite from '../../isFinite';\n\nvar truncPolyfill = function truncPolyfill(v) {\n var numV = Number(v);\n\n if (!isFinite(numV)) {\n return numV;\n } // eslint-disable-next-line no-nested-ternary\n\n\n return numV - numV % 1 || (numV < 0 ? -0 : numV === 0 ? numV : 0);\n};\n\nexport default truncPolyfill;","import { bind, curryN } from 'ramda';\nimport polyfill from './internal/polyfills/Math.trunc';\nimport isFunction from './isFunction';\nexport var truncPolyfill = curryN(1, polyfill);\n/**\n * Returns the integer part of a number by removing any fractional digits.\n *\n * @func trunc\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number | String -> Number\n * @param {number|string} number The number to trunc\n * @return {number} The integer part of the given number\n * @example\n *\n * RA.trunc(13.37); //=> 13\n * RA.trunc(42.84); //=> 42\n * RA.trunc(0.123); //=> 0\n * RA.trunc(-0.123); //=> -0\n * RA.trunc('-1.123'); //=> -1\n * RA.trunc(NaN); //=> NaN\n * RA.trunc('foo'); //=> NaN\n */\n\nvar trunc = isFunction(Math.trunc) ? curryN(1, bind(Math.trunc, Math)) : truncPolyfill;\nexport default trunc;","var signPolyfill = function signPolyfill(number) {\n return (number > 0) - (number < 0) || +number;\n};\n\nexport default signPolyfill;","import { bind, curryN } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/Math.sign';\nexport var signPolyfill = curryN(1, polyfill);\n/**\n * Returns the sign of a number, indicating whether the number is positive, negative or zero.\n *\n * @func sign\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number | String -> Number\n * @param {number} number A number\n * @return {number} A number representing the sign of the given argument. If the argument is a positive number, negative number, positive zero or negative zero, the function will return 1, -1, 0 or -0 respectively. Otherwise, NaN is returned\n * @example\n *\n * RA.sign(3); // 1\n * RA.sign(-3); // -1\n * RA.sign('-3'); // -1\n * RA.sign(0); // 0\n * RA.sign(-0); // -0\n * RA.sign(NaN); // NaN\n * RA.sign('foo'); // NaN\n */\n\nvar sign = isFunction(Math.sign) ? curryN(1, bind(Math.sign, Math)) : signPolyfill;\nexport default sign;","import { flip, subtract } from 'ramda';\n/**\n * Subtracts its first argument from its second argument.\n *\n * @func subtractNum\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Math\n * @sig Number -> Number -> Number\n * @param {number} subtrahend the number to subtract\n * @param {number} minuend the number to subtract from\n * @return {number} A number representing the difference of subtracting the subtrahend from the minuend\n * @example\n *\n * RA.subtractNum(3, 5); //=> 2\n */\n\nvar subtractNum = flip(subtract);\nexport default subtractNum;","var checkArguments = function checkArguments(searchValue, replaceValue, str) {\n if (str == null || searchValue == null || replaceValue == null) {\n throw TypeError('Input values must not be `null` or `undefined`');\n }\n};\n\nvar checkValue = function checkValue(value, valueName) {\n if (typeof value !== 'string') {\n if (!(value instanceof String)) {\n throw TypeError(\"`\".concat(valueName, \"` must be a string\"));\n }\n }\n};\n\nvar checkSearchValue = function checkSearchValue(searchValue) {\n if (typeof searchValue !== 'string' && !(searchValue instanceof String) && !(searchValue instanceof RegExp)) {\n throw TypeError('`searchValue` must be a string or an regexp');\n }\n};\n\nvar returnResult = function returnResult(searchValue, replaceValue, str) {\n // searchValue is an empty string\n if (searchValue === '') return str.replace(/(?:)/g, replaceValue); // searchValue is a global regexp\n\n if (searchValue instanceof RegExp) {\n if (searchValue.flags.indexOf('g') === -1) {\n throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n\n return str.replace(searchValue, replaceValue);\n } // common case\n\n\n return str.split(searchValue).join(replaceValue);\n};\n\nvar replaceAll = function replaceAll(searchValue, replaceValue, str) {\n checkArguments(searchValue, replaceValue, str);\n checkValue(str, 'str');\n checkValue(replaceValue, 'replaceValue');\n checkSearchValue(searchValue);\n return returnResult(searchValue, replaceValue, str);\n};\n\nexport default replaceAll;","import { curryN, invoker } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/String.replaceAll';\nexport var replaceAllPolyfill = curryN(3, polyfill);\nexport var replaceAllInvoker = invoker(2, 'replaceAll');\n/**\n * Replaces all substring matches in a string with a replacement.\n *\n * @func replaceAll\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.17.0|v2.17.0}\n * @category String\n * @sig String -> String -> String -> String\n * @param {string} searchValue The substring or a global RegExp to match\n * @param {string} replaceValue The string to replace the matches with\n * @param {string} str The String to do the search and replacement in\n * @return {string} A new string containing all the `searchValue` replaced with the `replaceValue`\n * @throws {TypeError} When invalid arguments provided\n * @see {@link http://ramdajs.com/docs/#replace|R.replace}, {@link https://github.com/tc39/proposal-string-replaceall|TC39 proposal}\n * @example\n *\n * RA.replaceAll('ac', 'ef', 'ac ab ac ab'); //=> 'ef ab ef ab'\n * RA.replaceAll('', '_', 'xxx'); //=> '_x_x_x_'\n * RA.replaceAll(/x/g, 'v', 'xxx'); //=> 'vvv'\n * RA.replaceAll(/x/, 'v', 'xxx'); //=> TypeError\n */\n\nvar replaceAll = isFunction(String.prototype.replaceAll) ? replaceAllInvoker : replaceAllPolyfill;\nexport default replaceAll;","import { when, replace } from 'ramda';\nimport isString from './isString';\n/**\n * Escapes the RegExp special characters.\n *\n * @func escapeRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.21.0|v2.21.0}\n * @category String\n * @sig String -> String\n * @param {string} val the value to escape\n * @return {string}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping|MDN Regular Expressions Escaping}\n * @example\n *\n * RA.escapeRegExp('[ramda-adjunct](https://github.com/char0n/ramda-adjunct)'); //=> '\\[ramda\\-adjunct\\]\\(https://github\\.com/char0n/ramda\\-adjunct\\)'\n */\n\nvar escapeRegExp = when(isString, replace(/[.*+?^${}()|[\\]\\\\-]/g, '\\\\$&'));\nexport default escapeRegExp;","import { invoker } from 'ramda';\nimport polyfill from './internal/polyfills/String.trimStart';\nimport isFunction from './isFunction';\nexport var trimStartPolyfill = polyfill;\nexport var trimStartInvoker = invoker(0, 'trimStart');\n/**\n * Removes whitespace from the beginning of a string.\n *\n * @func trimStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> String\n * @param {string} value String value to have the whitespace removed from the beginning\n * @return {string} A new string representing the calling string stripped of whitespace from its beginning (left end).\n * @example\n *\n * RA.trimStart(' abc'); //=> 'abc'\n */\n\nvar trimStart = isFunction(String.prototype.trimStart) ? trimStartInvoker : trimStartPolyfill;\nexport default trimStart;","import { replace } from 'ramda';\nvar trimStart = replace(/^[\\s\\uFEFF\\xA0]+/, '');\nexport default trimStart;","import { invoker } from 'ramda';\nimport polyfill from './internal/polyfills/String.trimEnd';\nimport isFunction from './isFunction';\nexport var trimEndPolyfill = polyfill;\nexport var trimEndInvoker = invoker(0, 'trimEnd');\n/**\n * Removes whitespace from the end of a string.\n *\n * @func trimEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> String\n * @param {string} value String value to have the whitespace removed from the end\n * @return {string} A new string representing the calling string stripped of whitespace from its end (right end).\n * @see {@link RA.trimEnd|trimEnd}\n * @example\n *\n * RA.trimEnd('abc '); //=> 'abc'\n */\n\nvar trimEnd = isFunction(String.prototype.trimEnd) ? trimEndInvoker : trimEndPolyfill;\nexport default trimEnd;","import { replace } from 'ramda';\nvar trimStart = replace(/[\\s\\uFEFF\\xA0]+$/, '');\nexport default trimStart;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\nexport default _xdropLastWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLastWhile from \"./internal/_dropLastWhile.js\";\nimport _xdropLastWhile from \"./internal/_xdropLastWhile.js\";\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\nexport default dropLastWhile;","import { curry, dropLastWhile, join, pipe, split } from 'ramda';\nimport contained from './contained';\n/**\n * Removes specified characters from the end of a string.\n *\n * @func trimCharsEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.25.0|v2.25.0}\n * @category String\n * @sig String -> String\n * @param {string} chars The characters to trim\n * @param {string} value The string to trim\n * @return {string} Returns the trimmed string.\n * @example\n *\n * RA.trimCharsEnd('_-', '-_-abc-_-'); //=> '-_-abc'\n */\n\nvar trimCharsEnd = curry(function (chars, value) {\n return pipe(split(''), dropLastWhile(contained(chars)), join(''))(value);\n});\nexport default trimCharsEnd;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\n_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\nexport default _xdropWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropWhile from \"./internal/_xdropWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` 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.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return slice(idx, Infinity, xs);\n}));\n\nexport default dropWhile;","import { curry, dropWhile, join, pipe, split } from 'ramda';\nimport contained from './contained';\n/**\n * Removes specified characters from the beginning of a string.\n *\n * @func trimCharsStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.24.0|v2.24.0}\n * @category String\n * @sig String -> String\n * @param {string} chars The characters to trim\n * @param {string} value The string to trim\n * @return {string} Returns the trimmed string.\n * @example\n *\n * RA.trimCharsStart('_-', '-_-abc-_-'); //=> 'abc-_-'\n */\n\nvar trimCharsStart = curry(function (chars, value) {\n return pipe(split(''), dropWhile(contained(chars)), join(''))(value);\n});\nexport default trimCharsStart;","import isFunction from '../../isFunction';\nimport isNotUndefined from '../../isNotUndefined';\nimport repeat from './String.repeat';\n\nvar padStartPolyfill = function padStartPolyfill(padString, targetLength, value) {\n // eslint-disable-next-line no-bitwise\n var finalLength = targetLength >> 0; // truncate if number, or convert non-number to 0;\n\n var finalPadString = String(isNotUndefined(padString) ? padString : ' '); // return the original string, if targeted length is less than original strings length\n\n if (value.length >= finalLength) {\n return String(value);\n }\n\n finalLength -= value.length;\n\n if (finalLength > finalPadString.length) {\n var lenghtToPad = finalLength / finalPadString.length; // append to original to ensure we are longer than needed\n\n finalPadString += isFunction(String.prototype.repeat) ? finalPadString.repeat(lenghtToPad) : repeat(finalPadString, lenghtToPad);\n }\n\n return finalPadString.slice(0, finalLength) + String(value);\n};\n\nexport default padStartPolyfill;","import { flip, invoker, curry } from 'ramda';\nimport isFunction from './isFunction';\nimport polyfill from './internal/polyfills/String.padStart';\nexport var padStartInvoker = flip(invoker(2, 'padStart'));\nexport var padStartPolyfill = curry(polyfill);\n/**\n * The function pads the current string with a given string\n * (repeated, if needed) so that the resulting string reaches a given length.\n * The padding is applied from the start of the current string.\n *\n * @func padCharsStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> Number -> String -> String\n * @param {string} padString The string to pad the current string with\n * @param {number} targetLength The length of the resulting string once the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string on the start of current string\n * @see {@link RA.padStart|padStart}, {@link RA.padEnd|padEnd}, {@link RA.padCharsEnd|padCharsEnd}\n * @example\n *\n * RA.padCharsStart('-', 3, 'a'); // => '--a'\n * RA.padCharsStart('foo', 10, 'abc'); // => 'foofoofabc'\n * RA.padCharsStart('123456', 6, 'abc'); // => '123abc'\n */\n\nvar padCharsStart = isFunction(String.prototype.padStart) ? padStartInvoker : padStartPolyfill;\nexport default padCharsStart;","import isFunction from '../../isFunction';\nimport isNotUndefined from '../../isNotUndefined';\nimport repeat from './String.repeat';\n\nvar padEndPolyfill = function padEndPolyfill(padString, targetLength, value) {\n // eslint-disable-next-line no-bitwise\n var finalLength = targetLength >> 0;\n var finalPadString = String(isNotUndefined(padString) ? padString : ' ');\n\n if (value.length > finalLength) {\n return String(value);\n }\n\n finalLength -= value.length;\n\n if (finalLength > finalPadString.length) {\n var remainingLength = finalLength / finalPadString.length;\n finalPadString += isFunction(String.prototype.repeat) ? finalPadString.repeat(remainingLength) : repeat(finalPadString, remainingLength);\n }\n\n return String(value) + finalPadString.slice(0, finalLength);\n};\n\nexport default padEndPolyfill;","import { curry, invoker, flip } from 'ramda';\nimport polyfill from './internal/polyfills/String.padEnd';\nimport isFunction from './isFunction';\nexport var padEndPolyfill = curry(polyfill);\nexport var padEndInvoker = flip(invoker(2, 'padEnd'));\n/**\n * The function pads the current string with a given string\n * (repeated, if needed) so that the resulting string reaches a given length.\n * The padding is applied from the end of the current string.\n *\n * @func padCharsEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> Number -> String -> String\n * @param {string} padString The string to pad the current string with\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string\n * applied at the end of the current string\n * @see {@link RA.padEnd|padEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padStart|padStart}\n * @example\n *\n * RA.padCharsEnd('-', 3, 'a'); // => 'a--'\n * RA.padCharsEnd('foo', 10, 'abc'); // => 'abcfoofoof'\n * RA.padCharsEnd('123456', 6, 'abc'); // => 'abc123'\n */\n\nvar padCharsEnd = isFunction(String.prototype.padEnd) ? padEndInvoker : padEndPolyfill;\nexport default padCharsEnd;","import padCharsEnd from './padCharsEnd';\n/**\n * The function pads the current string with an empty string\n * so that the resulting string reaches a given length.\n * The padding is applied from the end of the current string.\n *\n * @func padEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig Number -> String -> String\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string\n * applied at the end of the current string\n * @see {@link RA.padCharsEnd|padCharsEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padStart|padStart}\n * @example\n *\n * RA.padEnd(3, 'a'); // => 'a '\n */\n\nvar padEnd = padCharsEnd(' ');\nexport default padEnd;","import padCharsStart from './padCharsStart';\n/**\n * Pads string on the left side if it's shorter than length.\n *\n * @func padStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.25.0|v2.25.0}\n * @category String\n * @sig Number -> String -> String\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the empty string\n * applied to the beginning of the current string\n * @see {@link RA.padCharsEnd|padCharsEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padEnd|padEnd}\n * @example\n *\n * RA.padStart(3, 'a'); // => ' a'\n */\n\nvar padStart = padCharsStart(' ');\nexport default padStart;","import React from 'react';\nimport { defaultProps, withProps, mapProps } from '@team-griffin/rehook';\nimport pureEnhance from '@ux/pure-enhance';\nimport { DynamicLink } from '@ux/dynamic-link';\nimport { useStyles, withInteraction } from '@team-griffin/stylr';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport longhand from '@team-griffin/css-longhand';\nimport px2em from '@ux/px2em';\nimport { content } from '@ux/type-size';\nimport { percentage, modifier } from '@ux/style-utils';\nimport { cond, equals, always, T, omit } from 'ramda';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar Size;\n\n(function (Size) {\n Size[\"SM\"] = \"SM\";\n Size[\"MD\"] = \"MD\";\n Size[\"LG\"] = \"LG\";\n Size[\"INHERIT\"] = \"INHERIT\";\n})(Size || (Size = {}));\n\nvar Against;\n\n(function (Against) {\n Against[\"LIGHT\"] = \"LIGHT\";\n Against[\"NEUTRAL\"] = \"NEUTRAL\";\n Against[\"DARK\"] = \"DARK\";\n Against[\"PRIMARY\"] = \"PRIMARY\";\n Against[\"PRIMARY_FADED\"] = \"PRIMARY_FADED\";\n Against[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n Against[\"HIGHLIGHT_FADED\"] = \"HIGHLIGHT_FADED\";\n})(Against || (Against = {}));\n\nvar ContentType;\n\n(function (ContentType) {\n ContentType[\"DEFAULT\"] = \"DEFAULT\";\n ContentType[\"PHONE_NUMBER\"] = \"PHONE_NUMBER\";\n})(ContentType || (ContentType = {}));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar stylesheet = function stylesheet(_ref) {\n var _useStyles;\n\n var theme = _ref.theme,\n against = _ref.against,\n block = _ref.block,\n disabled = _ref.disabled,\n size = _ref.size,\n caps = _ref.caps,\n contentType = _ref.contentType,\n hover = _ref.hover,\n active = _ref.active;\n var palette = theme.palette,\n typography = theme.typography;\n var fill = cond([[equals(Against.LIGHT), always(palette.secondary)], [equals(Against.NEUTRAL), always(palette.secondary)], [equals(Against.DARK), always(palette.tertiary)], [equals(Against.PRIMARY), always(palette.primaryContrast)], [equals(Against.PRIMARY_FADED), always(palette.secondary)], [equals(Against.HIGHLIGHT), always(palette.highlightContrast)], [equals(Against.HIGHLIGHT_FADED), always(palette.highlight)], [T, always(palette.secondary)]])(against);\n return useStyles((_useStyles = {\n default: {\n root: Object.assign({}, content(theme.typography), longhand('border', {\n color: 'transparent',\n style: 'solid',\n width: 0\n }), cssSides('margin', Side.A, 0), cssSides('padding', Side.A, 0), {\n fontFamily: typography.content,\n lineHeight: 1.1,\n paddingBottom: 1,\n color: fill,\n textAlign: 'left',\n backgroundColor: 'transparent',\n outline: 0,\n cursor: equals(disabled, true) ? 'not-allowed' : 'pointer',\n textDecoration: 'none',\n transition: 'opacity 0.2s ease-in-out, border 0.1s ease-in-out'\n }),\n\n /*\r\n we apply the border on the inner text span as we need to ensure\r\n that if the text wraps over 2 lines, both lines have a dotted border.\r\n If there is any padding on this inner element it breaks the underline\r\n when in a css column.\r\n */\n inner: Object.assign({}, longhand('borderBottom', {\n style: 'dotted',\n color: fill,\n width: 1\n }))\n },\n hover: {\n root: {\n opacity: 0.75\n },\n inner: {\n borderBottomStyle: 'solid',\n opacity: 0.75\n }\n },\n active: {\n inner: {\n borderBottomStyle: 'solid',\n opacity: 0.75\n }\n },\n caps: {\n root: {\n textTransform: 'uppercase'\n }\n },\n block: {\n root: {\n display: 'block',\n width: percentage(100)\n }\n }\n }, _defineProperty(_useStyles, modifier('size', Size.SM), {\n root: {\n fontSize: px2em(12)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.MD), {\n root: {\n fontSize: px2em(14)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.LG), {\n root: {\n fontSize: px2em(16)\n }\n }), _defineProperty(_useStyles, modifier('size', Size.INHERIT), {\n root: {\n fontSize: 'inherit',\n lineHeight: 'inherit'\n }\n }), _defineProperty(_useStyles, modifier('contentType', ContentType.PHONE_NUMBER), {\n inner: {\n borderBottomWidth: 0\n }\n }), _defineProperty(_useStyles, \"disabled\", {\n root: {\n opacity: 0.3\n }\n }), _useStyles), [{\n hover: hover\n }, {\n active: active\n }, {\n caps: caps\n }, {\n block: block\n }, {\n disabled: disabled\n }, {\n size: size\n }, {\n contentType: contentType\n }, {\n against: against\n }]);\n};\n\nvar PureTextButton = function PureTextButton(_a) {\n var styles = _a.styles,\n children = _a.children,\n domProps = __rest(_a, [\"styles\", \"children\"]);\n\n return React.createElement(DynamicLink, Object.assign({\n style: styles.root\n }, domProps), React.createElement(\"span\", {\n style: styles.inner\n }, children));\n};\nvar enhance = pureEnhance('TextButton', {\n hooks: [defaultProps({\n disabled: false,\n block: false,\n caps: false,\n size: Size.MD,\n contentType: ContentType.DEFAULT\n }), withProps(stylesheet), mapProps(omit(['theme', 'against', 'hover', 'active', 'focus', 'hocus', 'caps', 'block', 'size', 'contentType']))]\n});\nvar TextButton = withInteraction(enhance(PureTextButton)); // eslint-disable-next-line no-underscore-dangle\n\nexport default TextButton;\nexport { Against, ContentType, Size };\n","import _curry3 from \"./internal/_curry3.js\";\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 * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\n_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\nexport default reduceRight;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;"],"sourceRoot":""}