@kineviz/lodash 4.17.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +47 -0
- package/README.md +39 -0
- package/_.log +3 -0
- package/_DataView.js +7 -0
- package/_Hash.js +32 -0
- package/_LazyWrapper.js +28 -0
- package/_ListCache.js +32 -0
- package/_LodashWrapper.js +22 -0
- package/_Map.js +7 -0
- package/_MapCache.js +32 -0
- package/_Promise.js +7 -0
- package/_Set.js +7 -0
- package/_SetCache.js +27 -0
- package/_Stack.js +27 -0
- package/_Symbol.js +6 -0
- package/_Uint8Array.js +6 -0
- package/_WeakMap.js +7 -0
- package/_apply.js +21 -0
- package/_arrayAggregator.js +22 -0
- package/_arrayEach.js +22 -0
- package/_arrayEachRight.js +21 -0
- package/_arrayEvery.js +23 -0
- package/_arrayFilter.js +25 -0
- package/_arrayIncludes.js +17 -0
- package/_arrayIncludesWith.js +22 -0
- package/_arrayLikeKeys.js +49 -0
- package/_arrayMap.js +21 -0
- package/_arrayPush.js +20 -0
- package/_arrayReduce.js +26 -0
- package/_arrayReduceRight.js +24 -0
- package/_arraySample.js +15 -0
- package/_arraySampleSize.js +17 -0
- package/_arrayShuffle.js +15 -0
- package/_arraySome.js +23 -0
- package/_asciiSize.js +12 -0
- package/_asciiToArray.js +12 -0
- package/_asciiWords.js +15 -0
- package/_assignMergeValue.js +20 -0
- package/_assignValue.js +28 -0
- package/_assocIndexOf.js +21 -0
- package/_baseAggregator.js +21 -0
- package/_baseAssign.js +17 -0
- package/_baseAssignIn.js +17 -0
- package/_baseAssignValue.js +25 -0
- package/_baseAt.js +23 -0
- package/_baseClamp.js +22 -0
- package/_baseClone.js +166 -0
- package/_baseConforms.js +18 -0
- package/_baseConformsTo.js +27 -0
- package/_baseCreate.js +30 -0
- package/_baseDelay.js +21 -0
- package/_baseDifference.js +67 -0
- package/_baseEach.js +14 -0
- package/_baseEachRight.js +14 -0
- package/_baseEvery.js +21 -0
- package/_baseExtremum.js +32 -0
- package/_baseFill.js +32 -0
- package/_baseFilter.js +21 -0
- package/_baseFindIndex.js +24 -0
- package/_baseFindKey.js +23 -0
- package/_baseFlatten.js +38 -0
- package/_baseFor.js +16 -0
- package/_baseForOwn.js +16 -0
- package/_baseForOwnRight.js +16 -0
- package/_baseForRight.js +15 -0
- package/_baseFunctions.js +19 -0
- package/_baseGet.js +24 -0
- package/_baseGetAllKeys.js +20 -0
- package/_baseGetTag.js +28 -0
- package/_baseGt.js +14 -0
- package/_baseHas.js +19 -0
- package/_baseHasIn.js +13 -0
- package/_baseInRange.js +18 -0
- package/_baseIndexOf.js +20 -0
- package/_baseIndexOfWith.js +23 -0
- package/_baseIntersection.js +74 -0
- package/_baseInverter.js +21 -0
- package/_baseInvoke.js +24 -0
- package/_baseIsArguments.js +18 -0
- package/_baseIsArrayBuffer.js +17 -0
- package/_baseIsDate.js +18 -0
- package/_baseIsEqual.js +28 -0
- package/_baseIsEqualDeep.js +83 -0
- package/_baseIsMap.js +18 -0
- package/_baseIsMatch.js +62 -0
- package/_baseIsNaN.js +12 -0
- package/_baseIsNative.js +47 -0
- package/_baseIsRegExp.js +18 -0
- package/_baseIsSet.js +18 -0
- package/_baseIsTypedArray.js +60 -0
- package/_baseIteratee.js +31 -0
- package/_baseKeys.js +30 -0
- package/_baseKeysIn.js +33 -0
- package/_baseLodash.js +10 -0
- package/_baseLt.js +14 -0
- package/_baseMap.js +22 -0
- package/_baseMatches.js +22 -0
- package/_baseMatchesProperty.js +33 -0
- package/_baseMean.js +20 -0
- package/_baseMerge.js +42 -0
- package/_baseMergeDeep.js +94 -0
- package/_baseNth.js +20 -0
- package/_baseOrderBy.js +49 -0
- package/_basePick.js +19 -0
- package/_basePickBy.js +30 -0
- package/_baseProperty.js +14 -0
- package/_basePropertyDeep.js +16 -0
- package/_basePropertyOf.js +14 -0
- package/_basePullAll.js +51 -0
- package/_basePullAt.js +37 -0
- package/_baseRandom.js +18 -0
- package/_baseRange.js +28 -0
- package/_baseReduce.js +23 -0
- package/_baseRepeat.js +35 -0
- package/_baseRest.js +17 -0
- package/_baseSample.js +15 -0
- package/_baseSampleSize.js +18 -0
- package/_baseSet.js +51 -0
- package/_baseSetData.js +17 -0
- package/_baseSetToString.js +22 -0
- package/_baseShuffle.js +15 -0
- package/_baseSlice.js +31 -0
- package/_baseSome.js +22 -0
- package/_baseSortBy.js +21 -0
- package/_baseSortedIndex.js +42 -0
- package/_baseSortedIndexBy.js +67 -0
- package/_baseSortedUniq.js +30 -0
- package/_baseSum.js +24 -0
- package/_baseTimes.js +20 -0
- package/_baseToNumber.js +24 -0
- package/_baseToPairs.js +18 -0
- package/_baseToString.js +37 -0
- package/_baseTrim.js +19 -0
- package/_baseUnary.js +14 -0
- package/_baseUniq.js +72 -0
- package/_baseUnset.js +20 -0
- package/_baseUpdate.js +18 -0
- package/_baseValues.js +19 -0
- package/_baseWhile.js +26 -0
- package/_baseWrapperValue.js +25 -0
- package/_baseXor.js +36 -0
- package/_baseZipObject.js +23 -0
- package/_cacheHas.js +13 -0
- package/_castArrayLikeObject.js +14 -0
- package/_castFunction.js +14 -0
- package/_castPath.js +21 -0
- package/_castRest.js +14 -0
- package/_castSlice.js +18 -0
- package/_charsEndIndex.js +19 -0
- package/_charsStartIndex.js +20 -0
- package/_cloneArrayBuffer.js +16 -0
- package/_cloneBuffer.js +35 -0
- package/_cloneDataView.js +16 -0
- package/_cloneRegExp.js +17 -0
- package/_cloneSymbol.js +18 -0
- package/_cloneTypedArray.js +16 -0
- package/_compareAscending.js +41 -0
- package/_compareMultiple.js +44 -0
- package/_composeArgs.js +39 -0
- package/_composeArgsRight.js +41 -0
- package/_copyArray.js +20 -0
- package/_copyObject.js +40 -0
- package/_copySymbols.js +16 -0
- package/_copySymbolsIn.js +16 -0
- package/_coreJsData.js +6 -0
- package/_countHolders.js +21 -0
- package/_createAggregator.js +23 -0
- package/_createAssigner.js +37 -0
- package/_createBaseEach.js +32 -0
- package/_createBaseFor.js +25 -0
- package/_createBind.js +28 -0
- package/_createCaseFirst.js +33 -0
- package/_createCompounder.js +24 -0
- package/_createCtor.js +37 -0
- package/_createCurry.js +46 -0
- package/_createFind.js +25 -0
- package/_createFlow.js +78 -0
- package/_createHybrid.js +92 -0
- package/_createInverter.js +17 -0
- package/_createMathOperation.js +38 -0
- package/_createOver.js +27 -0
- package/_createPadding.js +33 -0
- package/_createPartial.js +43 -0
- package/_createRange.js +30 -0
- package/_createRecurry.js +56 -0
- package/_createRelationalOperation.js +20 -0
- package/_createRound.js +35 -0
- package/_createSet.js +19 -0
- package/_createToPairs.js +30 -0
- package/_createWrap.js +106 -0
- package/_customDefaultsAssignIn.js +29 -0
- package/_customDefaultsMerge.js +28 -0
- package/_customOmitClone.js +16 -0
- package/_deburrLetter.js +71 -0
- package/_defineProperty.js +11 -0
- package/_equalArrays.js +84 -0
- package/_equalByTag.js +112 -0
- package/_equalObjects.js +90 -0
- package/_escapeHtmlChar.js +21 -0
- package/_escapeStringChar.js +22 -0
- package/_flatRest.js +16 -0
- package/_freeGlobal.js +4 -0
- package/_getAllKeys.js +16 -0
- package/_getAllKeysIn.js +17 -0
- package/_getData.js +15 -0
- package/_getFuncName.js +31 -0
- package/_getHolder.js +13 -0
- package/_getMapData.js +18 -0
- package/_getMatchData.js +24 -0
- package/_getNative.js +17 -0
- package/_getPrototype.js +6 -0
- package/_getRawTag.js +46 -0
- package/_getSymbols.js +30 -0
- package/_getSymbolsIn.js +25 -0
- package/_getTag.js +58 -0
- package/_getValue.js +13 -0
- package/_getView.js +33 -0
- package/_getWrapDetails.js +17 -0
- package/_hasPath.js +39 -0
- package/_hasUnicode.js +26 -0
- package/_hasUnicodeWord.js +15 -0
- package/_hashClear.js +15 -0
- package/_hashDelete.js +17 -0
- package/_hashGet.js +30 -0
- package/_hashHas.js +23 -0
- package/_hashSet.js +23 -0
- package/_initCloneArray.js +26 -0
- package/_initCloneByTag.js +77 -0
- package/_initCloneObject.js +18 -0
- package/_insertWrapDetails.js +23 -0
- package/_isFlattenable.js +20 -0
- package/_isIndex.js +25 -0
- package/_isIterateeCall.js +30 -0
- package/_isKey.js +29 -0
- package/_isKeyable.js +15 -0
- package/_isLaziable.js +28 -0
- package/_isMaskable.js +14 -0
- package/_isMasked.js +20 -0
- package/_isPrototype.js +18 -0
- package/_isStrictComparable.js +15 -0
- package/_iteratorToArray.js +18 -0
- package/_lazyClone.js +23 -0
- package/_lazyReverse.js +23 -0
- package/_lazyValue.js +69 -0
- package/_listCacheClear.js +13 -0
- package/_listCacheDelete.js +35 -0
- package/_listCacheGet.js +19 -0
- package/_listCacheHas.js +16 -0
- package/_listCacheSet.js +26 -0
- package/_mapCacheClear.js +21 -0
- package/_mapCacheDelete.js +18 -0
- package/_mapCacheGet.js +16 -0
- package/_mapCacheHas.js +16 -0
- package/_mapCacheSet.js +22 -0
- package/_mapToArray.js +18 -0
- package/_matchesStrictComparable.js +20 -0
- package/_memoizeCapped.js +26 -0
- package/_mergeData.js +90 -0
- package/_metaMap.js +6 -0
- package/_nativeCreate.js +6 -0
- package/_nativeKeys.js +6 -0
- package/_nativeKeysIn.js +20 -0
- package/_nodeUtil.js +30 -0
- package/_objectToString.js +22 -0
- package/_overArg.js +15 -0
- package/_overRest.js +36 -0
- package/_parent.js +16 -0
- package/_reEscape.js +4 -0
- package/_reEvaluate.js +4 -0
- package/_reInterpolate.js +4 -0
- package/_realNames.js +4 -0
- package/_reorder.js +29 -0
- package/_replaceHolders.js +29 -0
- package/_root.js +9 -0
- package/_safeGet.js +21 -0
- package/_setCacheAdd.js +19 -0
- package/_setCacheHas.js +14 -0
- package/_setData.js +20 -0
- package/_setToArray.js +18 -0
- package/_setToPairs.js +18 -0
- package/_setToString.js +14 -0
- package/_setWrapToString.js +21 -0
- package/_shortOut.js +37 -0
- package/_shuffleSelf.js +28 -0
- package/_stackClear.js +15 -0
- package/_stackDelete.js +18 -0
- package/_stackGet.js +14 -0
- package/_stackHas.js +14 -0
- package/_stackSet.js +34 -0
- package/_strictIndexOf.js +23 -0
- package/_strictLastIndexOf.js +21 -0
- package/_stringSize.js +18 -0
- package/_stringToArray.js +18 -0
- package/_stringToPath.js +27 -0
- package/_toKey.js +21 -0
- package/_toSource.js +26 -0
- package/_trimmedEndIndex.js +19 -0
- package/_unescapeHtmlChar.js +21 -0
- package/_unicodeSize.js +44 -0
- package/_unicodeToArray.js +40 -0
- package/_unicodeWords.js +69 -0
- package/_updateWrapDetails.js +46 -0
- package/_wrapperClone.js +23 -0
- package/add.js +22 -0
- package/after.js +42 -0
- package/array.js +67 -0
- package/ary.js +29 -0
- package/assign.js +58 -0
- package/assignIn.js +40 -0
- package/assignInWith.js +38 -0
- package/assignWith.js +37 -0
- package/at.js +23 -0
- package/attempt.js +35 -0
- package/before.js +40 -0
- package/bind.js +57 -0
- package/bindAll.js +41 -0
- package/bindKey.js +68 -0
- package/camelCase.js +29 -0
- package/capitalize.js +23 -0
- package/castArray.js +44 -0
- package/ceil.js +26 -0
- package/chain.js +38 -0
- package/chunk.js +50 -0
- package/clamp.js +39 -0
- package/clone.js +36 -0
- package/cloneDeep.js +29 -0
- package/cloneDeepWith.js +40 -0
- package/cloneWith.js +42 -0
- package/collection.js +30 -0
- package/commit.js +33 -0
- package/compact.js +31 -0
- package/concat.js +43 -0
- package/cond.js +60 -0
- package/conforms.js +35 -0
- package/conformsTo.js +32 -0
- package/constant.js +26 -0
- package/core.js +3877 -0
- package/core.min.js +29 -0
- package/countBy.js +40 -0
- package/create.js +43 -0
- package/curry.js +57 -0
- package/curryRight.js +54 -0
- package/date.js +3 -0
- package/debounce.js +191 -0
- package/deburr.js +45 -0
- package/defaultTo.js +25 -0
- package/defaults.js +64 -0
- package/defaultsDeep.js +30 -0
- package/defer.js +26 -0
- package/delay.js +28 -0
- package/difference.js +33 -0
- package/differenceBy.js +44 -0
- package/differenceWith.js +40 -0
- package/divide.js +22 -0
- package/drop.js +38 -0
- package/dropRight.js +39 -0
- package/dropRightWhile.js +45 -0
- package/dropWhile.js +45 -0
- package/each.js +1 -0
- package/eachRight.js +1 -0
- package/endsWith.js +43 -0
- package/entries.js +1 -0
- package/entriesIn.js +1 -0
- package/eq.js +37 -0
- package/escape.js +43 -0
- package/escapeRegExp.js +32 -0
- package/every.js +56 -0
- package/extend.js +1 -0
- package/extendWith.js +1 -0
- package/fill.js +45 -0
- package/filter.js +52 -0
- package/find.js +42 -0
- package/findIndex.js +55 -0
- package/findKey.js +44 -0
- package/findLast.js +25 -0
- package/findLastIndex.js +59 -0
- package/findLastKey.js +44 -0
- package/first.js +1 -0
- package/flatMap.js +29 -0
- package/flatMapDeep.js +31 -0
- package/flatMapDepth.js +31 -0
- package/flatten.js +22 -0
- package/flattenDeep.js +25 -0
- package/flattenDepth.js +33 -0
- package/flip.js +28 -0
- package/floor.js +26 -0
- package/flow.js +27 -0
- package/flowRight.js +26 -0
- package/forEach.js +41 -0
- package/forEachRight.js +31 -0
- package/forIn.js +39 -0
- package/forInRight.js +37 -0
- package/forOwn.js +36 -0
- package/forOwnRight.js +34 -0
- package/fp/F.js +1 -0
- package/fp/T.js +1 -0
- package/fp/__.js +1 -0
- package/fp/_baseConvert.js +569 -0
- package/fp/_convertBrowser.js +18 -0
- package/fp/_falseOptions.js +7 -0
- package/fp/_mapping.js +358 -0
- package/fp/_util.js +16 -0
- package/fp/add.js +5 -0
- package/fp/after.js +5 -0
- package/fp/all.js +1 -0
- package/fp/allPass.js +1 -0
- package/fp/always.js +1 -0
- package/fp/any.js +1 -0
- package/fp/anyPass.js +1 -0
- package/fp/apply.js +1 -0
- package/fp/array.js +2 -0
- package/fp/ary.js +5 -0
- package/fp/assign.js +5 -0
- package/fp/assignAll.js +5 -0
- package/fp/assignAllWith.js +5 -0
- package/fp/assignIn.js +5 -0
- package/fp/assignInAll.js +5 -0
- package/fp/assignInAllWith.js +5 -0
- package/fp/assignInWith.js +5 -0
- package/fp/assignWith.js +5 -0
- package/fp/assoc.js +1 -0
- package/fp/assocPath.js +1 -0
- package/fp/at.js +5 -0
- package/fp/attempt.js +5 -0
- package/fp/before.js +5 -0
- package/fp/bind.js +5 -0
- package/fp/bindAll.js +5 -0
- package/fp/bindKey.js +5 -0
- package/fp/camelCase.js +5 -0
- package/fp/capitalize.js +5 -0
- package/fp/castArray.js +5 -0
- package/fp/ceil.js +5 -0
- package/fp/chain.js +5 -0
- package/fp/chunk.js +5 -0
- package/fp/clamp.js +5 -0
- package/fp/clone.js +5 -0
- package/fp/cloneDeep.js +5 -0
- package/fp/cloneDeepWith.js +5 -0
- package/fp/cloneWith.js +5 -0
- package/fp/collection.js +2 -0
- package/fp/commit.js +5 -0
- package/fp/compact.js +5 -0
- package/fp/complement.js +1 -0
- package/fp/compose.js +1 -0
- package/fp/concat.js +5 -0
- package/fp/cond.js +5 -0
- package/fp/conforms.js +1 -0
- package/fp/conformsTo.js +5 -0
- package/fp/constant.js +5 -0
- package/fp/contains.js +1 -0
- package/fp/convert.js +18 -0
- package/fp/countBy.js +5 -0
- package/fp/create.js +5 -0
- package/fp/curry.js +5 -0
- package/fp/curryN.js +5 -0
- package/fp/curryRight.js +5 -0
- package/fp/curryRightN.js +5 -0
- package/fp/date.js +2 -0
- package/fp/debounce.js +5 -0
- package/fp/deburr.js +5 -0
- package/fp/defaultTo.js +5 -0
- package/fp/defaults.js +5 -0
- package/fp/defaultsAll.js +5 -0
- package/fp/defaultsDeep.js +5 -0
- package/fp/defaultsDeepAll.js +5 -0
- package/fp/defer.js +5 -0
- package/fp/delay.js +5 -0
- package/fp/difference.js +5 -0
- package/fp/differenceBy.js +5 -0
- package/fp/differenceWith.js +5 -0
- package/fp/dissoc.js +1 -0
- package/fp/dissocPath.js +1 -0
- package/fp/divide.js +5 -0
- package/fp/drop.js +5 -0
- package/fp/dropLast.js +1 -0
- package/fp/dropLastWhile.js +1 -0
- package/fp/dropRight.js +5 -0
- package/fp/dropRightWhile.js +5 -0
- package/fp/dropWhile.js +5 -0
- package/fp/each.js +1 -0
- package/fp/eachRight.js +1 -0
- package/fp/endsWith.js +5 -0
- package/fp/entries.js +1 -0
- package/fp/entriesIn.js +1 -0
- package/fp/eq.js +5 -0
- package/fp/equals.js +1 -0
- package/fp/escape.js +5 -0
- package/fp/escapeRegExp.js +5 -0
- package/fp/every.js +5 -0
- package/fp/extend.js +1 -0
- package/fp/extendAll.js +1 -0
- package/fp/extendAllWith.js +1 -0
- package/fp/extendWith.js +1 -0
- package/fp/fill.js +5 -0
- package/fp/filter.js +5 -0
- package/fp/find.js +5 -0
- package/fp/findFrom.js +5 -0
- package/fp/findIndex.js +5 -0
- package/fp/findIndexFrom.js +5 -0
- package/fp/findKey.js +5 -0
- package/fp/findLast.js +5 -0
- package/fp/findLastFrom.js +5 -0
- package/fp/findLastIndex.js +5 -0
- package/fp/findLastIndexFrom.js +5 -0
- package/fp/findLastKey.js +5 -0
- package/fp/first.js +1 -0
- package/fp/flatMap.js +5 -0
- package/fp/flatMapDeep.js +5 -0
- package/fp/flatMapDepth.js +5 -0
- package/fp/flatten.js +5 -0
- package/fp/flattenDeep.js +5 -0
- package/fp/flattenDepth.js +5 -0
- package/fp/flip.js +5 -0
- package/fp/floor.js +5 -0
- package/fp/flow.js +5 -0
- package/fp/flowRight.js +5 -0
- package/fp/forEach.js +5 -0
- package/fp/forEachRight.js +5 -0
- package/fp/forIn.js +5 -0
- package/fp/forInRight.js +5 -0
- package/fp/forOwn.js +5 -0
- package/fp/forOwnRight.js +5 -0
- package/fp/fromPairs.js +5 -0
- package/fp/function.js +2 -0
- package/fp/functions.js +5 -0
- package/fp/functionsIn.js +5 -0
- package/fp/get.js +5 -0
- package/fp/getOr.js +5 -0
- package/fp/groupBy.js +5 -0
- package/fp/gt.js +5 -0
- package/fp/gte.js +5 -0
- package/fp/has.js +5 -0
- package/fp/hasIn.js +5 -0
- package/fp/head.js +5 -0
- package/fp/identical.js +1 -0
- package/fp/identity.js +5 -0
- package/fp/inRange.js +5 -0
- package/fp/includes.js +5 -0
- package/fp/includesFrom.js +5 -0
- package/fp/indexBy.js +1 -0
- package/fp/indexOf.js +5 -0
- package/fp/indexOfFrom.js +5 -0
- package/fp/init.js +1 -0
- package/fp/initial.js +5 -0
- package/fp/intersection.js +5 -0
- package/fp/intersectionBy.js +5 -0
- package/fp/intersectionWith.js +5 -0
- package/fp/invert.js +5 -0
- package/fp/invertBy.js +5 -0
- package/fp/invertObj.js +1 -0
- package/fp/invoke.js +5 -0
- package/fp/invokeArgs.js +5 -0
- package/fp/invokeArgsMap.js +5 -0
- package/fp/invokeMap.js +5 -0
- package/fp/isArguments.js +5 -0
- package/fp/isArray.js +5 -0
- package/fp/isArrayBuffer.js +5 -0
- package/fp/isArrayLike.js +5 -0
- package/fp/isArrayLikeObject.js +5 -0
- package/fp/isBoolean.js +5 -0
- package/fp/isBuffer.js +5 -0
- package/fp/isDate.js +5 -0
- package/fp/isElement.js +5 -0
- package/fp/isEmpty.js +5 -0
- package/fp/isEqual.js +5 -0
- package/fp/isEqualWith.js +5 -0
- package/fp/isError.js +5 -0
- package/fp/isFinite.js +5 -0
- package/fp/isFunction.js +5 -0
- package/fp/isInteger.js +5 -0
- package/fp/isLength.js +5 -0
- package/fp/isMap.js +5 -0
- package/fp/isMatch.js +5 -0
- package/fp/isMatchWith.js +5 -0
- package/fp/isNaN.js +5 -0
- package/fp/isNative.js +5 -0
- package/fp/isNil.js +5 -0
- package/fp/isNull.js +5 -0
- package/fp/isNumber.js +5 -0
- package/fp/isObject.js +5 -0
- package/fp/isObjectLike.js +5 -0
- package/fp/isPlainObject.js +5 -0
- package/fp/isRegExp.js +5 -0
- package/fp/isSafeInteger.js +5 -0
- package/fp/isSet.js +5 -0
- package/fp/isString.js +5 -0
- package/fp/isSymbol.js +5 -0
- package/fp/isTypedArray.js +5 -0
- package/fp/isUndefined.js +5 -0
- package/fp/isWeakMap.js +5 -0
- package/fp/isWeakSet.js +5 -0
- package/fp/iteratee.js +5 -0
- package/fp/join.js +5 -0
- package/fp/juxt.js +1 -0
- package/fp/kebabCase.js +5 -0
- package/fp/keyBy.js +5 -0
- package/fp/keys.js +5 -0
- package/fp/keysIn.js +5 -0
- package/fp/lang.js +2 -0
- package/fp/last.js +5 -0
- package/fp/lastIndexOf.js +5 -0
- package/fp/lastIndexOfFrom.js +5 -0
- package/fp/lowerCase.js +5 -0
- package/fp/lowerFirst.js +5 -0
- package/fp/lt.js +5 -0
- package/fp/lte.js +5 -0
- package/fp/map.js +5 -0
- package/fp/mapKeys.js +5 -0
- package/fp/mapValues.js +5 -0
- package/fp/matches.js +1 -0
- package/fp/matchesProperty.js +5 -0
- package/fp/math.js +2 -0
- package/fp/max.js +5 -0
- package/fp/maxBy.js +5 -0
- package/fp/mean.js +5 -0
- package/fp/meanBy.js +5 -0
- package/fp/memoize.js +5 -0
- package/fp/merge.js +5 -0
- package/fp/mergeAll.js +5 -0
- package/fp/mergeAllWith.js +5 -0
- package/fp/mergeWith.js +5 -0
- package/fp/method.js +5 -0
- package/fp/methodOf.js +5 -0
- package/fp/min.js +5 -0
- package/fp/minBy.js +5 -0
- package/fp/mixin.js +5 -0
- package/fp/multiply.js +5 -0
- package/fp/nAry.js +1 -0
- package/fp/negate.js +5 -0
- package/fp/next.js +5 -0
- package/fp/noop.js +5 -0
- package/fp/now.js +5 -0
- package/fp/nth.js +5 -0
- package/fp/nthArg.js +5 -0
- package/fp/number.js +2 -0
- package/fp/object.js +2 -0
- package/fp/omit.js +5 -0
- package/fp/omitAll.js +1 -0
- package/fp/omitBy.js +5 -0
- package/fp/once.js +5 -0
- package/fp/orderBy.js +5 -0
- package/fp/over.js +5 -0
- package/fp/overArgs.js +5 -0
- package/fp/overEvery.js +5 -0
- package/fp/overSome.js +5 -0
- package/fp/pad.js +5 -0
- package/fp/padChars.js +5 -0
- package/fp/padCharsEnd.js +5 -0
- package/fp/padCharsStart.js +5 -0
- package/fp/padEnd.js +5 -0
- package/fp/padStart.js +5 -0
- package/fp/parseInt.js +5 -0
- package/fp/partial.js +5 -0
- package/fp/partialRight.js +5 -0
- package/fp/partition.js +5 -0
- package/fp/path.js +1 -0
- package/fp/pathEq.js +1 -0
- package/fp/pathOr.js +1 -0
- package/fp/paths.js +1 -0
- package/fp/pick.js +5 -0
- package/fp/pickAll.js +1 -0
- package/fp/pickBy.js +5 -0
- package/fp/pipe.js +1 -0
- package/fp/placeholder.js +6 -0
- package/fp/plant.js +5 -0
- package/fp/pluck.js +1 -0
- package/fp/prop.js +1 -0
- package/fp/propEq.js +1 -0
- package/fp/propOr.js +1 -0
- package/fp/property.js +1 -0
- package/fp/propertyOf.js +5 -0
- package/fp/props.js +1 -0
- package/fp/pull.js +5 -0
- package/fp/pullAll.js +5 -0
- package/fp/pullAllBy.js +5 -0
- package/fp/pullAllWith.js +5 -0
- package/fp/pullAt.js +5 -0
- package/fp/random.js +5 -0
- package/fp/range.js +5 -0
- package/fp/rangeRight.js +5 -0
- package/fp/rangeStep.js +5 -0
- package/fp/rangeStepRight.js +5 -0
- package/fp/rearg.js +5 -0
- package/fp/reduce.js +5 -0
- package/fp/reduceRight.js +5 -0
- package/fp/reject.js +5 -0
- package/fp/remove.js +5 -0
- package/fp/repeat.js +5 -0
- package/fp/replace.js +5 -0
- package/fp/rest.js +5 -0
- package/fp/restFrom.js +5 -0
- package/fp/result.js +5 -0
- package/fp/reverse.js +5 -0
- package/fp/round.js +5 -0
- package/fp/sample.js +5 -0
- package/fp/sampleSize.js +5 -0
- package/fp/seq.js +2 -0
- package/fp/set.js +5 -0
- package/fp/setWith.js +5 -0
- package/fp/shuffle.js +5 -0
- package/fp/size.js +5 -0
- package/fp/slice.js +5 -0
- package/fp/snakeCase.js +5 -0
- package/fp/some.js +5 -0
- package/fp/sortBy.js +5 -0
- package/fp/sortedIndex.js +5 -0
- package/fp/sortedIndexBy.js +5 -0
- package/fp/sortedIndexOf.js +5 -0
- package/fp/sortedLastIndex.js +5 -0
- package/fp/sortedLastIndexBy.js +5 -0
- package/fp/sortedLastIndexOf.js +5 -0
- package/fp/sortedUniq.js +5 -0
- package/fp/sortedUniqBy.js +5 -0
- package/fp/split.js +5 -0
- package/fp/spread.js +5 -0
- package/fp/spreadFrom.js +5 -0
- package/fp/startCase.js +5 -0
- package/fp/startsWith.js +5 -0
- package/fp/string.js +2 -0
- package/fp/stubArray.js +5 -0
- package/fp/stubFalse.js +5 -0
- package/fp/stubObject.js +5 -0
- package/fp/stubString.js +5 -0
- package/fp/stubTrue.js +5 -0
- package/fp/subtract.js +5 -0
- package/fp/sum.js +5 -0
- package/fp/sumBy.js +5 -0
- package/fp/symmetricDifference.js +1 -0
- package/fp/symmetricDifferenceBy.js +1 -0
- package/fp/symmetricDifferenceWith.js +1 -0
- package/fp/tail.js +5 -0
- package/fp/take.js +5 -0
- package/fp/takeLast.js +1 -0
- package/fp/takeLastWhile.js +1 -0
- package/fp/takeRight.js +5 -0
- package/fp/takeRightWhile.js +5 -0
- package/fp/takeWhile.js +5 -0
- package/fp/tap.js +5 -0
- package/fp/template.js +5 -0
- package/fp/templateSettings.js +5 -0
- package/fp/throttle.js +5 -0
- package/fp/thru.js +5 -0
- package/fp/times.js +5 -0
- package/fp/toArray.js +5 -0
- package/fp/toFinite.js +5 -0
- package/fp/toInteger.js +5 -0
- package/fp/toIterator.js +5 -0
- package/fp/toJSON.js +5 -0
- package/fp/toLength.js +5 -0
- package/fp/toLower.js +5 -0
- package/fp/toNumber.js +5 -0
- package/fp/toPairs.js +5 -0
- package/fp/toPairsIn.js +5 -0
- package/fp/toPath.js +5 -0
- package/fp/toPlainObject.js +5 -0
- package/fp/toSafeInteger.js +5 -0
- package/fp/toString.js +5 -0
- package/fp/toUpper.js +5 -0
- package/fp/transform.js +5 -0
- package/fp/trim.js +5 -0
- package/fp/trimChars.js +5 -0
- package/fp/trimCharsEnd.js +5 -0
- package/fp/trimCharsStart.js +5 -0
- package/fp/trimEnd.js +5 -0
- package/fp/trimStart.js +5 -0
- package/fp/truncate.js +5 -0
- package/fp/unapply.js +1 -0
- package/fp/unary.js +5 -0
- package/fp/unescape.js +5 -0
- package/fp/union.js +5 -0
- package/fp/unionBy.js +5 -0
- package/fp/unionWith.js +5 -0
- package/fp/uniq.js +5 -0
- package/fp/uniqBy.js +5 -0
- package/fp/uniqWith.js +5 -0
- package/fp/uniqueId.js +5 -0
- package/fp/unnest.js +1 -0
- package/fp/unset.js +5 -0
- package/fp/unzip.js +5 -0
- package/fp/unzipWith.js +5 -0
- package/fp/update.js +5 -0
- package/fp/updateWith.js +5 -0
- package/fp/upperCase.js +5 -0
- package/fp/upperFirst.js +5 -0
- package/fp/useWith.js +1 -0
- package/fp/util.js +2 -0
- package/fp/value.js +5 -0
- package/fp/valueOf.js +5 -0
- package/fp/values.js +5 -0
- package/fp/valuesIn.js +5 -0
- package/fp/where.js +1 -0
- package/fp/whereEq.js +1 -0
- package/fp/without.js +5 -0
- package/fp/words.js +5 -0
- package/fp/wrap.js +5 -0
- package/fp/wrapperAt.js +5 -0
- package/fp/wrapperChain.js +5 -0
- package/fp/wrapperLodash.js +5 -0
- package/fp/wrapperReverse.js +5 -0
- package/fp/wrapperValue.js +5 -0
- package/fp/xor.js +5 -0
- package/fp/xorBy.js +5 -0
- package/fp/xorWith.js +5 -0
- package/fp/zip.js +5 -0
- package/fp/zipAll.js +5 -0
- package/fp/zipObj.js +1 -0
- package/fp/zipObject.js +5 -0
- package/fp/zipObjectDeep.js +5 -0
- package/fp/zipWith.js +5 -0
- package/fp.js +2 -0
- package/fromPairs.js +28 -0
- package/function.js +25 -0
- package/functions.js +31 -0
- package/functionsIn.js +31 -0
- package/get.js +33 -0
- package/groupBy.js +41 -0
- package/gt.js +29 -0
- package/gte.js +30 -0
- package/has.js +35 -0
- package/hasIn.js +34 -0
- package/head.js +23 -0
- package/identity.js +21 -0
- package/inRange.js +55 -0
- package/includes.js +53 -0
- package/index.js +1 -0
- package/indexOf.js +42 -0
- package/initial.js +22 -0
- package/intersection.js +30 -0
- package/intersectionBy.js +45 -0
- package/intersectionWith.js +41 -0
- package/invert.js +42 -0
- package/invertBy.js +56 -0
- package/invoke.js +24 -0
- package/invokeMap.js +41 -0
- package/isArguments.js +36 -0
- package/isArray.js +26 -0
- package/isArrayBuffer.js +27 -0
- package/isArrayLike.js +33 -0
- package/isArrayLikeObject.js +33 -0
- package/isBoolean.js +29 -0
- package/isBuffer.js +38 -0
- package/isDate.js +27 -0
- package/isElement.js +25 -0
- package/isEmpty.js +77 -0
- package/isEqual.js +35 -0
- package/isEqualWith.js +41 -0
- package/isError.js +36 -0
- package/isFinite.js +36 -0
- package/isFunction.js +37 -0
- package/isInteger.js +33 -0
- package/isLength.js +35 -0
- package/isMap.js +27 -0
- package/isMatch.js +36 -0
- package/isMatchWith.js +41 -0
- package/isNaN.js +38 -0
- package/isNative.js +40 -0
- package/isNil.js +25 -0
- package/isNull.js +22 -0
- package/isNumber.js +38 -0
- package/isObject.js +31 -0
- package/isObjectLike.js +29 -0
- package/isPlainObject.js +62 -0
- package/isRegExp.js +27 -0
- package/isSafeInteger.js +37 -0
- package/isSet.js +27 -0
- package/isString.js +30 -0
- package/isSymbol.js +29 -0
- package/isTypedArray.js +27 -0
- package/isUndefined.js +22 -0
- package/isWeakMap.js +28 -0
- package/isWeakSet.js +28 -0
- package/iteratee.js +53 -0
- package/join.js +26 -0
- package/kebabCase.js +28 -0
- package/keyBy.js +36 -0
- package/keys.js +37 -0
- package/keysIn.js +32 -0
- package/lang.js +58 -0
- package/last.js +20 -0
- package/lastIndexOf.js +46 -0
- package/lodash.js +17209 -0
- package/lodash.min.js +138 -0
- package/lowerCase.js +27 -0
- package/lowerFirst.js +22 -0
- package/lt.js +29 -0
- package/lte.js +30 -0
- package/map.js +53 -0
- package/mapKeys.js +36 -0
- package/mapValues.js +43 -0
- package/matches.js +46 -0
- package/matchesProperty.js +44 -0
- package/math.js +17 -0
- package/max.js +29 -0
- package/maxBy.js +34 -0
- package/mean.js +22 -0
- package/meanBy.js +31 -0
- package/memoize.js +73 -0
- package/merge.js +39 -0
- package/mergeWith.js +39 -0
- package/method.js +34 -0
- package/methodOf.js +33 -0
- package/min.js +29 -0
- package/minBy.js +34 -0
- package/mixin.js +74 -0
- package/multiply.js +22 -0
- package/negate.js +40 -0
- package/next.js +35 -0
- package/noop.js +17 -0
- package/now.js +23 -0
- package/nth.js +29 -0
- package/nthArg.js +32 -0
- package/number.js +5 -0
- package/object.js +49 -0
- package/omit.js +57 -0
- package/omitBy.js +29 -0
- package/once.js +25 -0
- package/orderBy.js +47 -0
- package/over.js +24 -0
- package/overArgs.js +61 -0
- package/overEvery.js +34 -0
- package/overSome.js +37 -0
- package/package.json +27 -0
- package/pad.js +49 -0
- package/padEnd.js +39 -0
- package/padStart.js +39 -0
- package/parseInt.js +43 -0
- package/partial.js +50 -0
- package/partialRight.js +49 -0
- package/partition.js +43 -0
- package/pick.js +25 -0
- package/pickBy.js +37 -0
- package/plant.js +48 -0
- package/property.js +32 -0
- package/propertyOf.js +30 -0
- package/pull.js +29 -0
- package/pullAll.js +29 -0
- package/pullAllBy.js +33 -0
- package/pullAllWith.js +32 -0
- package/pullAt.js +43 -0
- package/random.js +82 -0
- package/range.js +46 -0
- package/rangeRight.js +41 -0
- package/rearg.js +33 -0
- package/reduce.js +51 -0
- package/reduceRight.js +36 -0
- package/reject.js +46 -0
- package/remove.js +53 -0
- package/repeat.js +37 -0
- package/replace.js +29 -0
- package/rest.js +40 -0
- package/result.js +56 -0
- package/reverse.js +34 -0
- package/round.js +26 -0
- package/sample.js +24 -0
- package/sampleSize.js +37 -0
- package/seq.js +16 -0
- package/set.js +35 -0
- package/setWith.js +32 -0
- package/shuffle.js +25 -0
- package/size.js +46 -0
- package/slice.js +37 -0
- package/snakeCase.js +28 -0
- package/some.js +51 -0
- package/sortBy.js +48 -0
- package/sortedIndex.js +24 -0
- package/sortedIndexBy.js +33 -0
- package/sortedIndexOf.js +31 -0
- package/sortedLastIndex.js +25 -0
- package/sortedLastIndexBy.js +33 -0
- package/sortedLastIndexOf.js +31 -0
- package/sortedUniq.js +24 -0
- package/sortedUniqBy.js +26 -0
- package/split.js +52 -0
- package/spread.js +63 -0
- package/startCase.js +29 -0
- package/startsWith.js +39 -0
- package/string.js +33 -0
- package/stubArray.js +23 -0
- package/stubFalse.js +18 -0
- package/stubObject.js +23 -0
- package/stubString.js +18 -0
- package/stubTrue.js +18 -0
- package/subtract.js +22 -0
- package/sum.js +24 -0
- package/sumBy.js +33 -0
- package/tail.js +22 -0
- package/take.js +37 -0
- package/takeRight.js +39 -0
- package/takeRightWhile.js +45 -0
- package/takeWhile.js +45 -0
- package/tap.js +29 -0
- package/template.js +272 -0
- package/templateSettings.js +67 -0
- package/throttle.js +69 -0
- package/thru.js +28 -0
- package/times.js +51 -0
- package/toArray.js +58 -0
- package/toFinite.js +42 -0
- package/toInteger.js +36 -0
- package/toIterator.js +23 -0
- package/toJSON.js +1 -0
- package/toLength.js +38 -0
- package/toLower.js +28 -0
- package/toNumber.js +64 -0
- package/toPairs.js +30 -0
- package/toPairsIn.js +30 -0
- package/toPath.js +33 -0
- package/toPlainObject.js +32 -0
- package/toSafeInteger.js +37 -0
- package/toString.js +28 -0
- package/toUpper.js +28 -0
- package/transform.js +65 -0
- package/trim.js +47 -0
- package/trimEnd.js +41 -0
- package/trimStart.js +43 -0
- package/truncate.js +111 -0
- package/unary.js +22 -0
- package/unescape.js +34 -0
- package/union.js +26 -0
- package/unionBy.js +39 -0
- package/unionWith.js +34 -0
- package/uniq.js +25 -0
- package/uniqBy.js +31 -0
- package/uniqWith.js +28 -0
- package/uniqueId.js +28 -0
- package/unset.js +34 -0
- package/unzip.js +45 -0
- package/unzipWith.js +39 -0
- package/update.js +35 -0
- package/updateWith.js +33 -0
- package/upperCase.js +27 -0
- package/upperFirst.js +22 -0
- package/util.js +34 -0
- package/value.js +1 -0
- package/valueOf.js +1 -0
- package/values.js +34 -0
- package/valuesIn.js +32 -0
- package/without.js +31 -0
- package/words.js +35 -0
- package/wrap.js +30 -0
- package/wrapperAt.js +48 -0
- package/wrapperChain.js +34 -0
- package/wrapperLodash.js +147 -0
- package/wrapperReverse.js +44 -0
- package/wrapperValue.js +21 -0
- package/xor.js +28 -0
- package/xorBy.js +39 -0
- package/xorWith.js +34 -0
- package/zip.js +22 -0
- package/zipObject.js +24 -0
- package/zipObjectDeep.js +23 -0
- package/zipWith.js +32 -0
package/stubObject.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This method returns a new empty object.
|
|
3
|
+
*
|
|
4
|
+
* @static
|
|
5
|
+
* @memberOf _
|
|
6
|
+
* @since 4.13.0
|
|
7
|
+
* @category Util
|
|
8
|
+
* @returns {Object} Returns the new empty object.
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* var objects = _.times(2, _.stubObject);
|
|
12
|
+
*
|
|
13
|
+
* console.log(objects);
|
|
14
|
+
* // => [{}, {}]
|
|
15
|
+
*
|
|
16
|
+
* console.log(objects[0] === objects[1]);
|
|
17
|
+
* // => false
|
|
18
|
+
*/
|
|
19
|
+
function stubObject() {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
module.exports = stubObject;
|
package/stubString.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This method returns an empty string.
|
|
3
|
+
*
|
|
4
|
+
* @static
|
|
5
|
+
* @memberOf _
|
|
6
|
+
* @since 4.13.0
|
|
7
|
+
* @category Util
|
|
8
|
+
* @returns {string} Returns the empty string.
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* _.times(2, _.stubString);
|
|
12
|
+
* // => ['', '']
|
|
13
|
+
*/
|
|
14
|
+
function stubString() {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
module.exports = stubString;
|
package/stubTrue.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This method returns `true`.
|
|
3
|
+
*
|
|
4
|
+
* @static
|
|
5
|
+
* @memberOf _
|
|
6
|
+
* @since 4.13.0
|
|
7
|
+
* @category Util
|
|
8
|
+
* @returns {boolean} Returns `true`.
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* _.times(2, _.stubTrue);
|
|
12
|
+
* // => [true, true]
|
|
13
|
+
*/
|
|
14
|
+
function stubTrue() {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
module.exports = stubTrue;
|
package/subtract.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var createMathOperation = require('./_createMathOperation');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Subtract two numbers.
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @memberOf _
|
|
8
|
+
* @since 4.0.0
|
|
9
|
+
* @category Math
|
|
10
|
+
* @param {number} minuend The first number in a subtraction.
|
|
11
|
+
* @param {number} subtrahend The second number in a subtraction.
|
|
12
|
+
* @returns {number} Returns the difference.
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* _.subtract(6, 4);
|
|
16
|
+
* // => 2
|
|
17
|
+
*/
|
|
18
|
+
var subtract = createMathOperation(function(minuend, subtrahend) {
|
|
19
|
+
return minuend - subtrahend;
|
|
20
|
+
}, 0);
|
|
21
|
+
|
|
22
|
+
module.exports = subtract;
|
package/sum.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var baseSum = require('./_baseSum'),
|
|
2
|
+
identity = require('./identity');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Computes the sum of the values in `array`.
|
|
6
|
+
*
|
|
7
|
+
* @static
|
|
8
|
+
* @memberOf _
|
|
9
|
+
* @since 3.4.0
|
|
10
|
+
* @category Math
|
|
11
|
+
* @param {Array} array The array to iterate over.
|
|
12
|
+
* @returns {number} Returns the sum.
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* _.sum([4, 2, 8, 6]);
|
|
16
|
+
* // => 20
|
|
17
|
+
*/
|
|
18
|
+
function sum(array) {
|
|
19
|
+
return (array && array.length)
|
|
20
|
+
? baseSum(array, identity)
|
|
21
|
+
: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = sum;
|
package/sumBy.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var baseIteratee = require('./_baseIteratee'),
|
|
2
|
+
baseSum = require('./_baseSum');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This method is like `_.sum` except that it accepts `iteratee` which is
|
|
6
|
+
* invoked for each element in `array` to generate the value to be summed.
|
|
7
|
+
* The iteratee is invoked with one argument: (value).
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 4.0.0
|
|
12
|
+
* @category Math
|
|
13
|
+
* @param {Array} array The array to iterate over.
|
|
14
|
+
* @param {Function} [iteratee=_.identity] The iteratee invoked per element.
|
|
15
|
+
* @returns {number} Returns the sum.
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
|
|
19
|
+
*
|
|
20
|
+
* _.sumBy(objects, function(o) { return o.n; });
|
|
21
|
+
* // => 20
|
|
22
|
+
*
|
|
23
|
+
* // The `_.property` iteratee shorthand.
|
|
24
|
+
* _.sumBy(objects, 'n');
|
|
25
|
+
* // => 20
|
|
26
|
+
*/
|
|
27
|
+
function sumBy(array, iteratee) {
|
|
28
|
+
return (array && array.length)
|
|
29
|
+
? baseSum(array, baseIteratee(iteratee, 2))
|
|
30
|
+
: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = sumBy;
|
package/tail.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var baseSlice = require('./_baseSlice');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Gets all but the first element of `array`.
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @memberOf _
|
|
8
|
+
* @since 4.0.0
|
|
9
|
+
* @category Array
|
|
10
|
+
* @param {Array} array The array to query.
|
|
11
|
+
* @returns {Array} Returns the slice of `array`.
|
|
12
|
+
* @example
|
|
13
|
+
*
|
|
14
|
+
* _.tail([1, 2, 3]);
|
|
15
|
+
* // => [2, 3]
|
|
16
|
+
*/
|
|
17
|
+
function tail(array) {
|
|
18
|
+
var length = array == null ? 0 : array.length;
|
|
19
|
+
return length ? baseSlice(array, 1, length) : [];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
module.exports = tail;
|
package/take.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var baseSlice = require('./_baseSlice'),
|
|
2
|
+
toInteger = require('./toInteger');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a slice of `array` with `n` elements taken from the beginning.
|
|
6
|
+
*
|
|
7
|
+
* @static
|
|
8
|
+
* @memberOf _
|
|
9
|
+
* @since 0.1.0
|
|
10
|
+
* @category Array
|
|
11
|
+
* @param {Array} array The array to query.
|
|
12
|
+
* @param {number} [n=1] The number of elements to take.
|
|
13
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
|
14
|
+
* @returns {Array} Returns the slice of `array`.
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* _.take([1, 2, 3]);
|
|
18
|
+
* // => [1]
|
|
19
|
+
*
|
|
20
|
+
* _.take([1, 2, 3], 2);
|
|
21
|
+
* // => [1, 2]
|
|
22
|
+
*
|
|
23
|
+
* _.take([1, 2, 3], 5);
|
|
24
|
+
* // => [1, 2, 3]
|
|
25
|
+
*
|
|
26
|
+
* _.take([1, 2, 3], 0);
|
|
27
|
+
* // => []
|
|
28
|
+
*/
|
|
29
|
+
function take(array, n, guard) {
|
|
30
|
+
if (!(array && array.length)) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
n = (guard || n === undefined) ? 1 : toInteger(n);
|
|
34
|
+
return baseSlice(array, 0, n < 0 ? 0 : n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = take;
|
package/takeRight.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var baseSlice = require('./_baseSlice'),
|
|
2
|
+
toInteger = require('./toInteger');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a slice of `array` with `n` elements taken from the end.
|
|
6
|
+
*
|
|
7
|
+
* @static
|
|
8
|
+
* @memberOf _
|
|
9
|
+
* @since 3.0.0
|
|
10
|
+
* @category Array
|
|
11
|
+
* @param {Array} array The array to query.
|
|
12
|
+
* @param {number} [n=1] The number of elements to take.
|
|
13
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
|
14
|
+
* @returns {Array} Returns the slice of `array`.
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* _.takeRight([1, 2, 3]);
|
|
18
|
+
* // => [3]
|
|
19
|
+
*
|
|
20
|
+
* _.takeRight([1, 2, 3], 2);
|
|
21
|
+
* // => [2, 3]
|
|
22
|
+
*
|
|
23
|
+
* _.takeRight([1, 2, 3], 5);
|
|
24
|
+
* // => [1, 2, 3]
|
|
25
|
+
*
|
|
26
|
+
* _.takeRight([1, 2, 3], 0);
|
|
27
|
+
* // => []
|
|
28
|
+
*/
|
|
29
|
+
function takeRight(array, n, guard) {
|
|
30
|
+
var length = array == null ? 0 : array.length;
|
|
31
|
+
if (!length) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
n = (guard || n === undefined) ? 1 : toInteger(n);
|
|
35
|
+
n = length - n;
|
|
36
|
+
return baseSlice(array, n < 0 ? 0 : n, length);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = takeRight;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var baseIteratee = require('./_baseIteratee'),
|
|
2
|
+
baseWhile = require('./_baseWhile');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a slice of `array` with elements taken from the end. Elements are
|
|
6
|
+
* taken until `predicate` returns falsey. The predicate is invoked with
|
|
7
|
+
* three arguments: (value, index, array).
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 3.0.0
|
|
12
|
+
* @category Array
|
|
13
|
+
* @param {Array} array The array to query.
|
|
14
|
+
* @param {Function} [predicate=_.identity] The function invoked per iteration.
|
|
15
|
+
* @returns {Array} Returns the slice of `array`.
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* var users = [
|
|
19
|
+
* { 'user': 'barney', 'active': true },
|
|
20
|
+
* { 'user': 'fred', 'active': false },
|
|
21
|
+
* { 'user': 'pebbles', 'active': false }
|
|
22
|
+
* ];
|
|
23
|
+
*
|
|
24
|
+
* _.takeRightWhile(users, function(o) { return !o.active; });
|
|
25
|
+
* // => objects for ['fred', 'pebbles']
|
|
26
|
+
*
|
|
27
|
+
* // The `_.matches` iteratee shorthand.
|
|
28
|
+
* _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
|
|
29
|
+
* // => objects for ['pebbles']
|
|
30
|
+
*
|
|
31
|
+
* // The `_.matchesProperty` iteratee shorthand.
|
|
32
|
+
* _.takeRightWhile(users, ['active', false]);
|
|
33
|
+
* // => objects for ['fred', 'pebbles']
|
|
34
|
+
*
|
|
35
|
+
* // The `_.property` iteratee shorthand.
|
|
36
|
+
* _.takeRightWhile(users, 'active');
|
|
37
|
+
* // => []
|
|
38
|
+
*/
|
|
39
|
+
function takeRightWhile(array, predicate) {
|
|
40
|
+
return (array && array.length)
|
|
41
|
+
? baseWhile(array, baseIteratee(predicate, 3), false, true)
|
|
42
|
+
: [];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = takeRightWhile;
|
package/takeWhile.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var baseIteratee = require('./_baseIteratee'),
|
|
2
|
+
baseWhile = require('./_baseWhile');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a slice of `array` with elements taken from the beginning. Elements
|
|
6
|
+
* are taken until `predicate` returns falsey. The predicate is invoked with
|
|
7
|
+
* three arguments: (value, index, array).
|
|
8
|
+
*
|
|
9
|
+
* @static
|
|
10
|
+
* @memberOf _
|
|
11
|
+
* @since 3.0.0
|
|
12
|
+
* @category Array
|
|
13
|
+
* @param {Array} array The array to query.
|
|
14
|
+
* @param {Function} [predicate=_.identity] The function invoked per iteration.
|
|
15
|
+
* @returns {Array} Returns the slice of `array`.
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* var users = [
|
|
19
|
+
* { 'user': 'barney', 'active': false },
|
|
20
|
+
* { 'user': 'fred', 'active': false },
|
|
21
|
+
* { 'user': 'pebbles', 'active': true }
|
|
22
|
+
* ];
|
|
23
|
+
*
|
|
24
|
+
* _.takeWhile(users, function(o) { return !o.active; });
|
|
25
|
+
* // => objects for ['barney', 'fred']
|
|
26
|
+
*
|
|
27
|
+
* // The `_.matches` iteratee shorthand.
|
|
28
|
+
* _.takeWhile(users, { 'user': 'barney', 'active': false });
|
|
29
|
+
* // => objects for ['barney']
|
|
30
|
+
*
|
|
31
|
+
* // The `_.matchesProperty` iteratee shorthand.
|
|
32
|
+
* _.takeWhile(users, ['active', false]);
|
|
33
|
+
* // => objects for ['barney', 'fred']
|
|
34
|
+
*
|
|
35
|
+
* // The `_.property` iteratee shorthand.
|
|
36
|
+
* _.takeWhile(users, 'active');
|
|
37
|
+
* // => []
|
|
38
|
+
*/
|
|
39
|
+
function takeWhile(array, predicate) {
|
|
40
|
+
return (array && array.length)
|
|
41
|
+
? baseWhile(array, baseIteratee(predicate, 3))
|
|
42
|
+
: [];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
module.exports = takeWhile;
|
package/tap.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This method invokes `interceptor` and returns `value`. The interceptor
|
|
3
|
+
* is invoked with one argument; (value). The purpose of this method is to
|
|
4
|
+
* "tap into" a method chain sequence in order to modify intermediate results.
|
|
5
|
+
*
|
|
6
|
+
* @static
|
|
7
|
+
* @memberOf _
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
* @category Seq
|
|
10
|
+
* @param {*} value The value to provide to `interceptor`.
|
|
11
|
+
* @param {Function} interceptor The function to invoke.
|
|
12
|
+
* @returns {*} Returns `value`.
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* _([1, 2, 3])
|
|
16
|
+
* .tap(function(array) {
|
|
17
|
+
* // Mutate input array.
|
|
18
|
+
* array.pop();
|
|
19
|
+
* })
|
|
20
|
+
* .reverse()
|
|
21
|
+
* .value();
|
|
22
|
+
* // => [2, 1]
|
|
23
|
+
*/
|
|
24
|
+
function tap(value, interceptor) {
|
|
25
|
+
interceptor(value);
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = tap;
|
package/template.js
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
var assignInWith = require('./assignInWith'),
|
|
2
|
+
attempt = require('./attempt'),
|
|
3
|
+
baseValues = require('./_baseValues'),
|
|
4
|
+
customDefaultsAssignIn = require('./_customDefaultsAssignIn'),
|
|
5
|
+
escapeStringChar = require('./_escapeStringChar'),
|
|
6
|
+
isError = require('./isError'),
|
|
7
|
+
isIterateeCall = require('./_isIterateeCall'),
|
|
8
|
+
keys = require('./keys'),
|
|
9
|
+
reInterpolate = require('./_reInterpolate'),
|
|
10
|
+
templateSettings = require('./templateSettings'),
|
|
11
|
+
toString = require('./toString');
|
|
12
|
+
|
|
13
|
+
/** Error message constants. */
|
|
14
|
+
var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
|
|
15
|
+
|
|
16
|
+
/** Used to match empty string literals in compiled template source. */
|
|
17
|
+
var reEmptyStringLeading = /\b__p \+= '';/g,
|
|
18
|
+
reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
|
|
19
|
+
reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Used to validate the `validate` option in `_.template` variable.
|
|
23
|
+
*
|
|
24
|
+
* Forbids characters which could potentially change the meaning of the function argument definition:
|
|
25
|
+
* - "()," (modification of function parameters)
|
|
26
|
+
* - "=" (default value)
|
|
27
|
+
* - "[]{}" (destructuring of function parameters)
|
|
28
|
+
* - "/" (beginning of a comment)
|
|
29
|
+
* - whitespace
|
|
30
|
+
*/
|
|
31
|
+
var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Used to match
|
|
35
|
+
* [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
|
|
36
|
+
*/
|
|
37
|
+
var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
|
|
38
|
+
|
|
39
|
+
/** Used to ensure capturing order of template delimiters. */
|
|
40
|
+
var reNoMatch = /($^)/;
|
|
41
|
+
|
|
42
|
+
/** Used to match unescaped characters in compiled string literals. */
|
|
43
|
+
var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
|
|
44
|
+
|
|
45
|
+
/** Used for built-in method references. */
|
|
46
|
+
var objectProto = Object.prototype;
|
|
47
|
+
|
|
48
|
+
/** Used to check objects for own properties. */
|
|
49
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Creates a compiled template function that can interpolate data properties
|
|
53
|
+
* in "interpolate" delimiters, HTML-escape interpolated data properties in
|
|
54
|
+
* "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
|
|
55
|
+
* properties may be accessed as free variables in the template. If a setting
|
|
56
|
+
* object is given, it takes precedence over `_.templateSettings` values.
|
|
57
|
+
*
|
|
58
|
+
* **Note:** In the development build `_.template` utilizes
|
|
59
|
+
* [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
|
|
60
|
+
* for easier debugging.
|
|
61
|
+
*
|
|
62
|
+
* For more information on precompiling templates see
|
|
63
|
+
* [lodash's custom builds documentation](https://lodash.com/custom-builds).
|
|
64
|
+
*
|
|
65
|
+
* For more information on Chrome extension sandboxes see
|
|
66
|
+
* [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
|
|
67
|
+
*
|
|
68
|
+
* @static
|
|
69
|
+
* @since 0.1.0
|
|
70
|
+
* @memberOf _
|
|
71
|
+
* @category String
|
|
72
|
+
* @param {string} [string=''] The template string.
|
|
73
|
+
* @param {Object} [options={}] The options object.
|
|
74
|
+
* @param {RegExp} [options.escape=_.templateSettings.escape]
|
|
75
|
+
* The HTML "escape" delimiter.
|
|
76
|
+
* @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
|
|
77
|
+
* The "evaluate" delimiter.
|
|
78
|
+
* @param {Object} [options.imports=_.templateSettings.imports]
|
|
79
|
+
* An object to import into the template as free variables.
|
|
80
|
+
* @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
|
|
81
|
+
* The "interpolate" delimiter.
|
|
82
|
+
* @param {string} [options.sourceURL='templateSources[n]']
|
|
83
|
+
* The sourceURL of the compiled template.
|
|
84
|
+
* @param {string} [options.variable='obj']
|
|
85
|
+
* The data object variable name.
|
|
86
|
+
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
|
|
87
|
+
* @returns {Function} Returns the compiled template function.
|
|
88
|
+
* @example
|
|
89
|
+
*
|
|
90
|
+
* // Use the "interpolate" delimiter to create a compiled template.
|
|
91
|
+
* var compiled = _.template('hello <%= user %>!');
|
|
92
|
+
* compiled({ 'user': 'fred' });
|
|
93
|
+
* // => 'hello fred!'
|
|
94
|
+
*
|
|
95
|
+
* // Use the HTML "escape" delimiter to escape data property values.
|
|
96
|
+
* var compiled = _.template('<b><%- value %></b>');
|
|
97
|
+
* compiled({ 'value': '<script>' });
|
|
98
|
+
* // => '<b><script></b>'
|
|
99
|
+
*
|
|
100
|
+
* // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
|
|
101
|
+
* var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
|
|
102
|
+
* compiled({ 'users': ['fred', 'barney'] });
|
|
103
|
+
* // => '<li>fred</li><li>barney</li>'
|
|
104
|
+
*
|
|
105
|
+
* // Use the internal `print` function in "evaluate" delimiters.
|
|
106
|
+
* var compiled = _.template('<% print("hello " + user); %>!');
|
|
107
|
+
* compiled({ 'user': 'barney' });
|
|
108
|
+
* // => 'hello barney!'
|
|
109
|
+
*
|
|
110
|
+
* // Use the ES template literal delimiter as an "interpolate" delimiter.
|
|
111
|
+
* // Disable support by replacing the "interpolate" delimiter.
|
|
112
|
+
* var compiled = _.template('hello ${ user }!');
|
|
113
|
+
* compiled({ 'user': 'pebbles' });
|
|
114
|
+
* // => 'hello pebbles!'
|
|
115
|
+
*
|
|
116
|
+
* // Use backslashes to treat delimiters as plain text.
|
|
117
|
+
* var compiled = _.template('<%= "\\<%- value %\\>" %>');
|
|
118
|
+
* compiled({ 'value': 'ignored' });
|
|
119
|
+
* // => '<%- value %>'
|
|
120
|
+
*
|
|
121
|
+
* // Use the `imports` option to import `jQuery` as `jq`.
|
|
122
|
+
* var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
|
|
123
|
+
* var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
|
|
124
|
+
* compiled({ 'users': ['fred', 'barney'] });
|
|
125
|
+
* // => '<li>fred</li><li>barney</li>'
|
|
126
|
+
*
|
|
127
|
+
* // Use the `sourceURL` option to specify a custom sourceURL for the template.
|
|
128
|
+
* var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
|
|
129
|
+
* compiled(data);
|
|
130
|
+
* // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
|
|
131
|
+
*
|
|
132
|
+
* // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
|
|
133
|
+
* var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
|
|
134
|
+
* compiled.source;
|
|
135
|
+
* // => function(data) {
|
|
136
|
+
* // var __t, __p = '';
|
|
137
|
+
* // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
|
|
138
|
+
* // return __p;
|
|
139
|
+
* // }
|
|
140
|
+
*
|
|
141
|
+
* // Use custom template delimiters.
|
|
142
|
+
* _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
|
|
143
|
+
* var compiled = _.template('hello {{ user }}!');
|
|
144
|
+
* compiled({ 'user': 'mustache' });
|
|
145
|
+
* // => 'hello mustache!'
|
|
146
|
+
*
|
|
147
|
+
* // Use the `source` property to inline compiled templates for meaningful
|
|
148
|
+
* // line numbers in error messages and stack traces.
|
|
149
|
+
* fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
|
|
150
|
+
* var JST = {\
|
|
151
|
+
* "main": ' + _.template(mainText).source + '\
|
|
152
|
+
* };\
|
|
153
|
+
* ');
|
|
154
|
+
*/
|
|
155
|
+
function template(string, options, guard) {
|
|
156
|
+
// Based on John Resig's `tmpl` implementation
|
|
157
|
+
// (http://ejohn.org/blog/javascript-micro-templating/)
|
|
158
|
+
// and Laura Doktorova's doT.js (https://github.com/olado/doT).
|
|
159
|
+
var settings = templateSettings.imports._.templateSettings || templateSettings;
|
|
160
|
+
|
|
161
|
+
if (guard && isIterateeCall(string, options, guard)) {
|
|
162
|
+
options = undefined;
|
|
163
|
+
}
|
|
164
|
+
string = toString(string);
|
|
165
|
+
options = assignInWith({}, options, settings, customDefaultsAssignIn);
|
|
166
|
+
|
|
167
|
+
var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
|
|
168
|
+
importsKeys = keys(imports),
|
|
169
|
+
importsValues = baseValues(imports, importsKeys);
|
|
170
|
+
|
|
171
|
+
var isEscaping,
|
|
172
|
+
isEvaluating,
|
|
173
|
+
index = 0,
|
|
174
|
+
interpolate = options.interpolate || reNoMatch,
|
|
175
|
+
source = "__p += '";
|
|
176
|
+
|
|
177
|
+
// Compile the regexp to match each delimiter.
|
|
178
|
+
var reDelimiters = RegExp(
|
|
179
|
+
(options.escape || reNoMatch).source + '|' +
|
|
180
|
+
interpolate.source + '|' +
|
|
181
|
+
(interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
|
|
182
|
+
(options.evaluate || reNoMatch).source + '|$'
|
|
183
|
+
, 'g');
|
|
184
|
+
|
|
185
|
+
// Use a sourceURL for easier debugging.
|
|
186
|
+
// The sourceURL gets injected into the source that's eval-ed, so be careful
|
|
187
|
+
// to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in
|
|
188
|
+
// and escape the comment, thus injecting code that gets evaled.
|
|
189
|
+
var sourceURL = hasOwnProperty.call(options, 'sourceURL')
|
|
190
|
+
? ('//# sourceURL=' +
|
|
191
|
+
(options.sourceURL + '').replace(/\s/g, ' ') +
|
|
192
|
+
'\n')
|
|
193
|
+
: '';
|
|
194
|
+
|
|
195
|
+
string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
|
|
196
|
+
interpolateValue || (interpolateValue = esTemplateValue);
|
|
197
|
+
|
|
198
|
+
// Escape characters that can't be included in string literals.
|
|
199
|
+
source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
|
|
200
|
+
|
|
201
|
+
// Replace delimiters with snippets.
|
|
202
|
+
if (escapeValue) {
|
|
203
|
+
isEscaping = true;
|
|
204
|
+
source += "' +\n__e(" + escapeValue + ") +\n'";
|
|
205
|
+
}
|
|
206
|
+
if (evaluateValue) {
|
|
207
|
+
isEvaluating = true;
|
|
208
|
+
source += "';\n" + evaluateValue + ";\n__p += '";
|
|
209
|
+
}
|
|
210
|
+
if (interpolateValue) {
|
|
211
|
+
source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
|
|
212
|
+
}
|
|
213
|
+
index = offset + match.length;
|
|
214
|
+
|
|
215
|
+
// The JS engine embedded in Adobe products needs `match` returned in
|
|
216
|
+
// order to produce the correct `offset` value.
|
|
217
|
+
return match;
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
source += "';\n";
|
|
221
|
+
|
|
222
|
+
// If `variable` is not specified wrap a with-statement around the generated
|
|
223
|
+
// code to add the data object to the top of the scope chain.
|
|
224
|
+
var variable = hasOwnProperty.call(options, 'variable') && options.variable;
|
|
225
|
+
if (!variable) {
|
|
226
|
+
source = 'with (obj) {\n' + source + '\n}\n';
|
|
227
|
+
}
|
|
228
|
+
// Throw an error if a forbidden character was found in `variable`, to prevent
|
|
229
|
+
// potential command injection attacks.
|
|
230
|
+
else if (reForbiddenIdentifierChars.test(variable)) {
|
|
231
|
+
throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Cleanup code by stripping empty strings.
|
|
235
|
+
source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
|
|
236
|
+
.replace(reEmptyStringMiddle, '$1')
|
|
237
|
+
.replace(reEmptyStringTrailing, '$1;');
|
|
238
|
+
|
|
239
|
+
// Frame code as the function body.
|
|
240
|
+
source = 'function(' + (variable || 'obj') + ') {\n' +
|
|
241
|
+
(variable
|
|
242
|
+
? ''
|
|
243
|
+
: 'obj || (obj = {});\n'
|
|
244
|
+
) +
|
|
245
|
+
"var __t, __p = ''" +
|
|
246
|
+
(isEscaping
|
|
247
|
+
? ', __e = _.escape'
|
|
248
|
+
: ''
|
|
249
|
+
) +
|
|
250
|
+
(isEvaluating
|
|
251
|
+
? ', __j = Array.prototype.join;\n' +
|
|
252
|
+
"function print() { __p += __j.call(arguments, '') }\n"
|
|
253
|
+
: ';\n'
|
|
254
|
+
) +
|
|
255
|
+
source +
|
|
256
|
+
'return __p\n}';
|
|
257
|
+
|
|
258
|
+
var result = attempt(function() {
|
|
259
|
+
return Function(importsKeys, sourceURL + 'return ' + source)
|
|
260
|
+
.apply(undefined, importsValues);
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// Provide the compiled function's source by its `toString` method or
|
|
264
|
+
// the `source` property as a convenience for inlining compiled templates.
|
|
265
|
+
result.source = source;
|
|
266
|
+
if (isError(result)) {
|
|
267
|
+
throw result;
|
|
268
|
+
}
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
module.exports = template;
|