uncate">first 7 ans auparavant _baseSortedIndexBy.js 11e3a9652a first 7 ans auparavant _baseSortedUniq.js 11e3a9652a first 7 ans auparavant _baseSum.js 11e3a9652a first 7 ans auparavant _baseTimes.js 11e3a9652a first 7 ans auparavant _baseToNumber.js 11e3a9652a first 7 ans auparavant _baseToPairs.js 11e3a9652a first 7 ans auparavant _baseToString.js 11e3a9652a first 7 ans auparavant _baseUnary.js 11e3a9652a first 7 ans auparavant _baseUniq.js 11e3a9652a first 7 ans auparavant _baseUnset.js 11e3a9652a first 7 ans auparavant _baseUpdate.js 11e3a9652a first 7 ans auparavant _baseValues.js 11e3a9652a first 7 ans auparavant _baseWhile.js 11e3a9652a first 7 ans auparavant _baseWrapperValue.js 11e3a9652a first 7 ans auparavant _baseXor.js 11e3a9652a first 7 ans auparavant _baseZipObject.js 11e3a9652a first 7 ans auparavant _cacheHas.js 11e3a9652a first 7 ans auparavant _castArrayLikeObject.js 11e3a9652a first 7 ans auparavant _castFunction.js 11e3a9652a first 7 ans auparavant _castPath.js 11e3a9652a first 7 ans auparavant _castRest.js 11e3a9652a first 7 ans auparavant _castSlice.js 11e3a9652a first 7 ans auparavant _charsEndIndex.js 11e3a9652a first 7 ans auparavant _charsStartIndex.js 11e3a9652a first 7 ans auparavant _cloneArrayBuffer.js 11e3a9652a first 7 ans auparavant _cloneBuffer.js 11e3a9652a first 7 ans auparavant _cloneDataView.js 11e3a9652a first 7 ans auparavant _cloneRegExp.js 11e3a9652a first 7 ans auparavant _cloneSymbol.js 11e3a9652a first 7 ans auparavant _cloneTypedArray.js 11e3a9652a first 7 ans auparavant _compareAscending.js 11e3a9652a first 7 ans auparavant _compareMultiple.js 11e3a9652a first 7 ans auparavant _composeArgs.js 11e3a9652a first 7 ans auparavant _composeArgsRight.js 11e3a9652a first 7 ans auparavant _copyArray.js 11e3a9652a first 7 ans auparavant _copyObject.js 11e3a9652a first 7 ans auparavant _copySymbols.js 11e3a9652a first 7 ans auparavant _copySymbolsIn.js 11e3a9652a first 7 ans auparavant _coreJsData.js 11e3a9652a first 7 ans auparavant _countHolders.js 11e3a9652a first 7 ans auparavant _createAggregator.js 11e3a9652a first 7 ans auparavant _createAssigner.js 11e3a9652a first 7 ans auparavant _createBaseEach.js 11e3a9652a first 7 ans auparavant _createBaseFor.js 11e3a9652a first 7 ans auparavant _createBind.js 11e3a9652a first 7 ans auparavant _createCaseFirst.js 11e3a9652a first 7 ans auparavant _createCompounder.js 11e3a9652a first 7 ans auparavant _createCtor.js 11e3a9652a first 7 ans auparavant _createCurry.js 11e3a9652a first 7 ans auparavant _createFind.js 11e3a9652a first 7 ans auparavant _createFlow.js 11e3a9652a first 7 ans auparavant _createHybrid.js 11e3a9652a first 7 ans auparavant _createInverter.js 11e3a9652a first 7 ans auparavant _createMathOperation.js 11e3a9652a first 7 ans auparavant _createOver.js 11e3a9652a first 7 ans auparavant _createPadding.js 11e3a9652a first 7 ans auparavant _createPartial.js 11e3a9652a first 7 ans auparavant _createRange.js 11e3a9652a first 7 ans auparavant _createRecurry.js 11e3a9652a first 7 ans auparavant _createRelationalOperation.js 11e3a9652a first 7 ans auparavant _createRound.js 11e3a9652a first 7 ans auparavant _createSet.js 11e3a9652a first 7 ans auparavant _createToPairs.js 11e3a9652a first 7 ans auparavant _createWrap.js 11e3a9652a first 7 ans auparavant _customDefaultsAssignIn.js 11e3a9652a first 7 ans auparavant _customDefaultsMerge.js 11e3a9652a first 7 ans auparavant _customOmitClone.js 11e3a9652a first 7 ans auparavant _deburrLetter.js 11e3a9652a first 7 ans auparavant _defineProperty.js 11e3a9652a first 7 ans auparavant _equalArrays.js 11e3a9652a first 7 ans auparavant _equalByTag.js 11e3a9652a first 7 ans auparavant _equalObjects.js 11e3a9652a first 7 ans auparavant _escapeHtmlChar.js 11e3a9652a first 7 ans auparavant _escapeStringChar.js 11e3a9652a first 7 ans auparavant _flatRest.js 11e3a9652a first 7 ans auparavant _freeGlobal.js 11e3a9652a first 7 ans auparavant _getAllKeys.js 11e3a9652a first 7 ans auparavant _getAllKeysIn.js 11e3a9652a first 7 ans auparavant _getData.js 11e3a9652a first 7 ans auparavant _getFuncName.js 11e3a9652a first 7 ans auparavant _getHolder.js 11e3a9652a first 7 ans auparavant _getMapData.js 11e3a9652a first 7 ans auparavant _getMatchData.js 11e3a9652a first 7 ans auparavant _getNative.js 11e3a9652a first 7 ans auparavant _getPrototype.js 11e3a9652a first 7 ans auparavant _getRawTag.js 11e3a9652a first 7 ans auparavant _getSymbols.js 11e3a9652a first 7 ans auparavant _getSymbolsIn.js 11e3a9652a first 7 ans auparavant _getTag.js 11e3a9652a first 7 ans auparavant _getValue.js 11e3a9652a first 7 ans auparavant _getView.js 11e3a9652a first 7 ans auparavant _getWrapDetails.js 11e3a9652a first 7 ans auparavant _hasPath.js 11e3a9652a first 7 ans auparavant _hasUnicode.js 11e3a9652a first 7 ans auparavant _hasUnicodeWord.js 11e3a9652a first 7 ans auparavant _hashClear.js 11e3a9652a first 7 ans auparavant _hashDelete.js 11e3a9652a first 7 ans auparavant _hashGet.js 11e3a9652a first 7 ans auparavant _hashHas.js 11e3a9652a first 7 ans auparavant _hashSet.js 11e3a9652a first 7 ans auparavant _initCloneArray.js 11e3a9652a first 7 ans auparavant _initCloneByTag.js 11e3a9652a first 7 ans auparavant _initCloneObject.js 11e3a9652a first 7 ans auparavant _insertWrapDetails.js 11e3a9652a first 7 ans auparavant _isFlattenable.js 11e3a9652a first 7 ans auparavant _isIndex.js 11e3a9652a first 7 ans auparavant _isIterateeCall.js 11e3a9652a first 7 ans auparavant _isKey.js 11e3a9652a first 7 ans auparavant _isKeyable.js 11e3a9652a first 7 ans auparavant _isLaziable.js 11e3a9652a first 7 ans auparavant _isMaskable.js 11e3a9652a first 7 ans auparavant _isMasked.js 11e3a9652a first 7 ans auparavant _isPrototype.js 11e3a9652a first 7 ans auparavant _isStrictComparable.js 11e3a9652a first 7 ans auparavant _iteratorToArray.js 11e3a9652a first 7 ans auparavant _lazyClone.js 11e3a9652a first 7 ans auparavant _lazyReverse.js 11e3a9652a first 7 ans auparavant _lazyValue.js 11e3a9652a first 7 ans auparavant _listCacheClear.js 11e3a9652a first 7 ans auparavant _listCacheDelete.js 11e3a9652a first 7 ans auparavant _listCacheGet.js 11e3a9652a first 7 ans auparavant _listCacheHas.js 11e3a9652a first 7 ans auparavant _listCacheSet.js 11e3a9652a first 7 ans auparavant _mapCacheClear.js 11e3a9652a first 7 ans auparavant _mapCacheDelete.js 11e3a9652a first 7 ans auparavant _mapCacheGet.js 11e3a9652a first 7 ans auparavant _mapCacheHas.js 11e3a9652a first 7 ans auparavant _mapCacheSet.js 11e3a9652a first 7 ans auparavant _mapToArray.js 11e3a9652a first 7 ans auparavant _matchesStrictComparable.js 11e3a9652a first 7 ans auparavant _memoizeCapped.js 11e3a9652a first 7 ans auparavant _mergeData.js 11e3a9652a first 7 ans auparavant _metaMap.js 11e3a9652a first 7 ans auparavant _nativeCreate.js 11e3a9652a first 7 ans auparavant _nativeKeys.js 11e3a9652a first 7 ans auparavant _nativeKeysIn.js 11e3a9652a first 7 ans auparavant _nodeUtil.js 11e3a9652a first 7 ans auparavant _objectToString.js 11e3a9652a first 7 ans auparavant _overArg.js 11e3a9652a first 7 ans auparavant _overRest.js 11e3a9652a first 7 ans auparavant _parent.js 11e3a9652a first 7 ans auparavant _reEscape.js 11e3a9652a first 7 ans auparavant _reEvaluate.js 11e3a9652a first 7 ans auparavant _reInterpolate.js 11e3a9652a first 7 ans auparavant _realNames.js 11e3a9652a first 7 ans auparavant _reorder.js 11e3a9652a first 7 ans auparavant _replaceHolders.js 11e3a9652a first 7 ans auparavant _root.js 11e3a9652a first 7 ans auparavant _safeGet.js 11e3a9652a first 7 ans auparavant _setCacheAdd.js 11e3a9652a first 7 ans auparavant _setCacheHas.js 11e3a9652a first 7 ans auparavant _setData.js 11e3a9652a first 7 ans auparavant _setToArray.js 11e3a9652a first 7 ans auparavant _setToPairs.js 11e3a9652a first 7 ans auparavant _setToString.js 11e3a9652a first 7 ans auparavant _setWrapToString.js 11e3a9652a first 7 ans auparavant _shortOut.js 11e3a9652a first 7 ans auparavant _shuffleSelf.js 11e3a9652a first 7 ans auparavant _stackClear.js 11e3a9652a first 7 ans auparavant _stackDelete.js 11e3a9652a first 7 ans auparavant _stackGet.js 11e3a9652a first 7 ans auparavant _stackHas.js 11e3a9652a first 7 ans auparavant _stackSet.js 11e3a9652a first 7 ans auparavant _strictIndexOf.js 11e3a9652a first 7 ans auparavant _strictLastIndexOf.js 11e3a9652a first 7 ans auparavant _stringSize.js 11e3a9652a first 7 ans auparavant _stringToArray.js 11e3a9652a first 7 ans auparavant _stringToPath.js 11e3a9652a first 7 ans auparavant _toKey.js 11e3a9652a first 7 ans auparavant _toSource.js 11e3a9652a first 7 ans auparavant _unescapeHtmlChar.js 11e3a9652a first 7 ans auparavant _unicodeSize.js 11e3a9652a first 7 ans auparavant _unicodeToArray.js 11e3a9652a first 7 ans auparavant _unicodeWords.js 11e3a9652a first 7 ans auparavant _updateWrapDetails.js 11e3a9652a first 7 ans auparavant _wrapperClone.js 11e3a9652a first 7 ans auparavant add.js 11e3a9652a first 7 ans auparavant after.js 11e3a9652a first 7 ans auparavant array.js 11e3a9652a first 7 ans auparavant ary.js 11e3a9652a first 7 ans auparavant assign.js 11e3a9652a first 7 ans auparavant assignIn.js 11e3a9652a first 7 ans auparavant assignInWith.js 11e3a9652a first 7 ans auparavant assignWith.js 11e3a9652a first 7 ans auparavant at.js 11e3a9652a first 7 ans auparavant attempt.js 11e3a9652a first 7 ans auparavant before.js 11e3a9652a first 7 ans auparavant bind.js 11e3a9652a first 7 ans auparavant bindAll.js 11e3a9652a first 7 ans auparavant bindKey.js 11e3a9652a first 7 ans auparavant camelCase.js 11e3a9652a first 7 ans auparavant capitalize.js 11e3a9652a first 7 ans auparavant castArray.js 11e3a9652a first 7 ans auparavant ceil.js 11e3a9652a first 7 ans auparavant chain.js 11e3a9652a first 7 ans auparavant chunk.js 11e3a9652a first 7 ans auparavant clamp.js 11e3a9652a first 7 ans auparavant clone.js 11e3a9652a first 7 ans auparavant cloneDeep.js 11e3a9652a first 7 ans auparavant cloneDeepWith.js 11e3a9652a first 7 ans auparavant cloneWith.js 11e3a9652a first 7 ans auparavant collection.js 11e3a9652a first 7 ans auparavant commit.js 11e3a9652a first 7 ans auparavant compact.js 11e3a9652a first 7 ans auparavant concat.js 11e3a9652a first 7 ans auparavant cond.js 11e3a9652a first 7 ans auparavant conforms.js 11e3a9652a first 7 ans auparavant conformsTo.js 11e3a9652a first 7 ans auparavant constant.js 11e3a9652a first 7 ans auparavant core.js 11e3a9652a first 7 ans auparavant core.min.js 11e3a9652a first 7 ans auparavant countBy.js 11e3a9652a first 7 ans auparavant create.js 11e3a9652a first 7 ans auparavant curry.js 11e3a9652a first 7 ans auparavant curryRight.js 11e3a9652a first 7 ans auparavant date.js 11e3a9652a first 7 ans auparavant debounce.js 11e3a9652a first 7 ans auparavant deburr.js 11e3a9652a first 7 ans auparavant defaultTo.js 11e3a9652a first 7 ans auparavant defaults.js 11e3a9652a first 7 ans auparavant defaultsDeep.js 11e3a9652a first 7 ans auparavant defer.js 11e3a9652a first 7 ans auparavant delay.js 11e3a9652a first 7 ans auparavant difference.js 11e3a9652a first 7 ans auparavant differenceBy.js 11e3a9652a first 7 ans auparavant differenceWith.js 11e3a9652a first 7 ans auparavant divide.js 11e3a9652a first 7 ans auparavant drop.js 11e3a9652a first 7 ans auparavant dropRight.js 11e3a9652a first 7 ans auparavant dropRightWhile.js 11e3a9652a first 7 ans auparavant dropWhile.js 11e3a9652a first 7 ans auparavant each.js 11e3a9652a first 7 ans auparavant eachRight.js 11e3a9652a first 7 ans auparavant endsWith.js 11e3a9652a first 7 ans auparavant entries.js 11e3a9652a first 7 ans auparavant entriesIn.js 11e3a9652a first 7 ans auparavant eq.js 11e3a9652a first 7 ans auparavant escape.js 11e3a9652a first 7 ans auparavant escapeRegExp.js 11e3a9652a first 7 ans auparavant every.js 11e3a9652a first 7 ans auparavant extend.js 11e3a9652a first 7 ans auparavant extendWith.js 11e3a9652a first 7 ans auparavant fill.js 11e3a9652a first 7 ans auparavant filter.js 11e3a9652a first 7 ans auparavant find.js 11e3a9652a first 7 ans auparavant findIndex.js 11e3a9652a first 7 ans auparavant findKey.js 11e3a9652a first 7 ans auparavant findLast.js 11e3a9652a first 7 ans auparavant findLastIndex.js 11e3a9652a first 7 ans auparavant findLastKey.js 11e3a9652a first 7 ans auparavant first.js 11e3a9652a first 7 ans auparavant flatMap.js 11e3a9652a first 7 ans auparavant flatMapDeep.js 11e3a9652a first 7 ans auparavant flatMapDepth.js 11e3a9652a first 7 ans auparavant flatten.js 11e3a9652a first 7 ans auparavant flattenDeep.js 11e3a9652a first 7 ans auparavant flattenDepth.js 11e3a9652a first 7 ans auparavant flip.js 11e3a9652a first 7 ans auparavant floor.js 11e3a9652a first 7 ans auparavant flow.js 11e3a9652a first 7 ans auparavant flowRight.js 11e3a9652a first 7 ans auparavant forEach.js 11e3a9652a first 7 ans auparavant forEachRight.js 11e3a9652a first 7 ans auparavant forIn.js 11e3a9652a first 7 ans auparavant forInRight.js 11e3a9652a first 7 ans auparavant forOwn.js 11e3a9652a first 7 ans auparavant forOwnRight.js 11e3a9652a first 7 ans auparavant fp.js 11e3a9652a first 7 ans auparavant fromPairs.js 11e3a9652a first 7 ans auparavant function.js 11e3a9652a first 7 ans auparavant functions.js 11e3a9652a first 7 ans auparavant functionsIn.js 11e3a9652a first 7 ans auparavant get.js 11e3a9652a first 7 ans auparavant groupBy.js 11e3a9652a first 7 ans auparavant gt.js 11e3a9652a first 7 ans auparavant gte.js 11e3a9652a first 7 ans auparavant has.js 11e3a9652a first 7 ans auparavant hasIn.js 11e3a9652a first 7 ans auparavant head.js 11e3a9652a first 7 ans auparavant identity.js 11e3a9652a first 7 ans auparavant inRange.js 11e3a9652a first 7 ans auparavant includes.js 11e3a9652a first 7 ans auparavant index.js 11e3a9652a first 7 ans auparavant indexOf.js 11e3a9652a first 7 ans auparavant initial.js 11e3a9652a first 7 ans auparavant intersection.js 11e3a9652a first 7 ans auparavant intersectionBy.js 11e3a9652a first 7 ans auparavant intersectionWith.js 11e3a9652a first 7 ans auparavant invert.js 11e3a9652a first 7 ans auparavant invertBy.js 11e3a9652a first 7 ans auparavant invoke.js 11e3a9652a first 7 ans auparavant invokeMap.js 11e3a9652a first 7 ans auparavant isArguments.js 11e3a9652a first 7 ans auparavant isArray.js 11e3a9652a first 7 ans auparavant isArrayBuffer.js 11e3a9652a first 7 ans auparavant isArrayLike.js 11e3a9652a first 7 ans auparavant isArrayLikeObject.js 11e3a9652a first 7 ans auparavant isBoolean.js 11e3a9652a first 7 ans auparavant isBuffer.js 11e3a9652a first 7 ans auparavant isDate.js 11e3a9652a first 7 ans auparavant isElement.js 11e3a9652a first 7 ans auparavant isEmpty.js 11e3a9652a first 7 ans auparavant isEqual.js 11e3a9652a first 7 ans auparavant isEqualWith.js 11e3a9652a first 7 ans auparavant isError.js 11e3a9652a first 7 ans auparavant isFinite.js 11e3a9652a first 7 ans auparavant isFunction.js 11e3a9652a first 7 ans auparavant isInteger.js 11e3a9652a first 7 ans auparavant isLength.js 11e3a9652a first 7 ans auparavant isMap.js 11e3a9652a first 7 ans auparavant isMatch.js 11e3a9652a first 7 ans auparavant isMatchWith.js 11e3a9652a first 7 ans auparavant isNaN.js 11e3a9652a first 7 ans auparavant isNative.js 11e3a9652a first 7 ans auparavant isNil.js 11e3a9652a first 7 ans auparavant isNull.js 11e3a9652a first 7 ans auparavant isNumber.js 11e3a9652a first 7 ans auparavant isObject.js 11e3a9652a first 7 ans auparavant isObjectLike.js 11e3a9652a first 7 ans auparavant isPlainObject.js 11e3a9652a first 7 ans auparavant isRegExp.js 11e3a9652a first 7 ans auparavant isSafeInteger.js 11e3a9652a first 7 ans auparavant isSet.js 11e3a9652a first 7 ans auparavant isString.js 11e3a9652a first 7 ans auparavant isSymbol.js 11e3a9652a first 7 ans auparavant isTypedArray.js 11e3a9652a first 7 ans auparavant isUndefined.js 11e3a9652a first 7 ans auparavant isWeakMap.js 11e3a9652a first 7 ans auparavant isWeakSet.js 11e3a9652a first 7 ans auparavant iteratee.js 11e3a9652a first 7 ans auparavant join.js 11e3a9652a first 7 ans auparavant kebabCase.js 11e3a9652a first 7 ans auparavant keyBy.js 11e3a9652a first 7 ans auparavant keys.js 11e3a9652a first 7 ans auparavant keysIn.js 11e3a9652a first 7 ans auparavant lang.js 11e3a9652a first 7 ans auparavant last.js 11e3a9652a first 7 ans auparavant lastIndexOf.js 11e3a9652a first 7 ans auparavant lodash.js 11e3a9652a first 7 ans auparavant lodash.min.js 11e3a9652a first 7 ans auparavant lowerCase.js 11e3a9652a first 7 ans auparavant lowerFirst.js 11e3a9652a first 7 ans auparavant lt.js 11e3a9652a first 7 ans auparavant lte.js 11e3a9652a first 7 ans auparavant map.js 11e3a9652a first 7 ans auparavant mapKeys.js 11e3a9652a first 7 ans auparavant mapValues.js 11e3a9652a first 7 ans auparavant matches.js 11e3a9652a first 7 ans auparavant matchesProperty.js 11e3a9652a first 7 ans auparavant math.js 11e3a9652a first 7 ans auparavant max.js 11e3a9652a first 7 ans auparavant maxBy.js 11e3a9652a first 7 ans auparavant mean.js 11e3a9652a first 7 ans auparavant meanBy.js 11e3a9652a first 7 ans auparavant memoize.js 11e3a9652a first 7 ans auparavant merge.js 11e3a9652a first 7 ans auparavant mergeWith.js 11e3a9652a first 7 ans auparavant method.js 11e3a9652a first 7 ans auparavant methodOf.js 11e3a9652a first 7 ans auparavant min.js 11e3a9652a first 7 ans auparavant minBy.js 11e3a9652a first 7 ans auparavant mixin.js 11e3a9652a first 7 ans auparavant multiply.js 11e3a9652a first 7 ans auparavant negate.js 11e3a9652a first 7 ans auparavant next.js 11e3a9652a first 7 ans auparavant noop.js 11e3a9652a first 7 ans auparavant now.js 11e3a9652a first 7 ans auparavant nth.js 11e3a9652a first 7 ans auparavant nthArg.js 11e3a9652a first 7 ans auparavant number.js 11e3a9652a first 7 ans auparavant object.js 11e3a9652a first 7 ans auparavant omit.js 11e3a9652a first 7 ans auparavant omitBy.js 11e3a9652a first 7 ans auparavant once.js 11e3a9652a first 7 ans auparavant orderBy.js 11e3a9652a first 7 ans auparavant over.js 11e3a9652a first 7 ans auparavant overArgs.js 11e3a9652a first 7 ans auparavant overEvery.js 11e3a9652a first 7 ans auparavant overSome.js 11e3a9652a first 7 ans auparavant package.json 11e3a9652a first 7 ans auparavant pad.js 11e3a9652a first 7 ans auparavant padEnd.js 11e3a9652a first 7 ans auparavant padStart.js 11e3a9652a first 7 ans auparavant parseInt.js 11e3a9652a first 7 ans auparavant partial.js 11e3a9652a first 7 ans auparavant partialRight.js 11e3a9652a first 7 ans auparavant partition.js 11e3a9652a first 7 ans auparavant pick.js 11e3a9652a first 7 ans auparavant pickBy.js 11e3a9652a first 7 ans auparavant plant.js 11e3a9652a first 7 ans auparavant property.js 11e3a9652a first 7 ans auparavant propertyOf.js 11e3a9652a first 7 ans auparavant pull.js 11e3a9652a first 7 ans auparavant pullAll.js 11e3a9652a first 7 ans auparavant pullAllBy.js 11e3a9652a first 7 ans auparavant pullAllWith.js 11e3a9652a first 7 ans auparavant pullAt.js 11e3a9652a first 7 ans auparavant random.js 11e3a9652a first 7 ans auparavant range.js 11e3a9652a first 7 ans auparavant rangeRight.js 11e3a9652a first 7 ans auparavant rearg.js 11e3a9652a first 7 ans auparavant reduce.js 11e3a9652a first 7 ans auparavant reduceRight.js 11e3a9652a first 7 ans auparavant reject.js 11e3a9652a first 7 ans auparavant remove.js 11e3a9652a first 7 ans auparavant repeat.js 11e3a9652a first 7 ans auparavant replace.js 11e3a9652a first 7 ans auparavant rest.js 11e3a9652a first 7 ans auparavant result.js 11e3a9652a first 7 ans auparavant reverse.js 11e3a9652a first 7 ans auparavant round.js 11e3a9652a first 7 ans auparavant sample.js 11e3a9652a first 7 ans auparavant sampleSize.js 11e3a9652a first 7 ans auparavant seq.js 11e3a9652a first 7 ans auparavant set.js 11e3a9652a first 7 ans auparavant setWith.js 11e3a9652a first 7 ans auparavant shuffle.js 11e3a9652a first 7 ans auparavant size.js 11e3a9652a first 7 ans auparavant slice.js 11e3a9652a first 7 ans auparavant snakeCase.js 11e3a9652a first 7 ans auparavant some.js 11e3a9652a first 7 ans auparavant sortBy.js 11e3a9652a first 7 ans auparavant sortedIndex.js 11e3a9652a first 7 ans auparavant sortedIndexBy.js 11e3a9652a first 7 ans auparavant sortedIndexOf.js 11e3a9652a first 7 ans auparavant sortedLastIndex.js 11e3a9652a first 7 ans auparavant sortedLastIndexBy.js 11e3a9652a first 7 ans auparavant sortedLastIndexOf.js 11e3a9652a first 7 ans auparavant sortedUniq.js 11e3a9652a first 7 ans auparavant sortedUniqBy.js 11e3a9652a first 7 ans auparavant split.js 11e3a9652a first 7 ans auparavant spread.js 11e3a9652a first 7 ans auparavant startCase.js 11e3a9652a first 7 ans auparavant startsWith.js 11e3a9652a first 7 ans auparavant string.js 11e3a9652a first 7 ans auparavant stubArray.js 11e3a9652a first 7 ans auparavant stubFalse.js 11e3a9652a first 7 ans auparavant stubObject.js 11e3a9652a first 7 ans auparavant stubString.js 11e3a9652a first 7 ans auparavant stubTrue.js 11e3a9652a first 7 ans auparavant subtract.js 11e3a9652a first 7 ans auparavant sum.js 11e3a9652a first 7 ans auparavant sumBy.js 11e3a9652a first 7 ans auparavant tail.js 11e3a9652a first 7 ans auparavant take.js 11e3a9652a first 7 ans auparavant takeRight.js 11e3a9652a first 7 ans auparavant takeRightWhile.js 11e3a9652a first 7 ans auparavant takeWhile.js 11e3a9652a first 7 ans auparavant tap.js 11e3a9652a first 7 ans auparavant template.js 11e3a9652a first 7 ans auparavant templateSettings.js 11e3a9652a first 7 ans auparavant throttle.js 11e3a9652a first 7 ans auparavant thru.js 11e3a9652a first 7 ans auparavant times.js 11e3a9652a first 7 ans auparavant toArray.js 11e3a9652a first 7 ans auparavant toFinite.js 11e3a9652a first 7 ans auparavant toInteger.js 11e3a9652a first 7 ans auparavant toIterator.js 11e3a9652a first 7 ans auparavant toJSON.js 11e3a9652a first 7 ans auparavant toLength.js 11e3a9652a first 7 ans auparavant toLower.js 11e3a9652a first 7 ans auparavant toNumber.js 11e3a9652a first 7 ans auparavant toPairs.js 11e3a9652a first 7 ans auparavant toPairsIn.js 11e3a9652a first 7 ans auparavant toPath.js 11e3a9652a first 7 ans auparavant toPlainObject.js 11e3a9652a first 7 ans auparavant toSafeInteger.js 11e3a9652a first 7 ans auparavant toString.js 11e3a9652a first 7 ans auparavant toUpper.js 11e3a9652a first 7 ans auparavant transform.js 11e3a9652a first 7 ans auparavant trim.js 11e3a9652a first 7 ans auparavant trimEnd.js 11e3a9652a first 7 ans auparavant trimStart.js 11e3a9652a first 7 ans auparavant truncate.js 11e3a9652a first 7 ans auparavant unary.js 11e3a9652a first 7 ans auparavant unescape.js 11e3a9652a first 7 ans auparavant union.js 11e3a9652a first 7 ans auparavant unionBy.js 11e3a9652a first 7 ans auparavant unionWith.js 11e3a9652a first 7 ans auparavant uniq.js 11e3a9652a first 7 ans auparavant uniqBy.js 11e3a9652a first 7 ans auparavant uniqWith.js 11e3a9652a first 7 ans auparavant uniqueId.js 11e3a9652a first 7 ans auparavant unset.js 11e3a9652a first 7 ans auparavant unzip.js 11e3a9652a first 7 ans auparavant unzipWith.js 11e3a9652a first 7 ans auparavant update.js 11e3a9652a first 7 ans auparavant updateWith.js 11e3a9652a first 7 ans auparavant upperCase.js 11e3a9652a first 7 ans auparavant upperFirst.js 11e3a9652a first 7 ans auparavant util.js 11e3a9652a first 7 ans auparavant value.js 11e3a9652a first 7 ans auparavant valueOf.js 11e3a9652a first 7 ans auparavant values.js 11e3a9652a first 7 ans auparavant valuesIn.js 11e3a9652a first 7 ans auparavant without.js 11e3a9652a first 7 ans auparavant words.js 11e3a9652a first 7 ans auparavant wrap.js 11e3a9652a first 7 ans auparavant wrapperAt.js 11e3a9652a first 7 ans auparavant wrapperChain.js 11e3a9652a first 7 ans auparavant wrapperLodash.js 11e3a9652a first 7 ans auparavant wrapperReverse.js 11e3a9652a first 7 ans auparavant wrapperValue.js 11e3a9652a first 7 ans auparavant xor.js 11e3a9652a first 7 ans auparavant xorBy.js 11e3a9652a first 7 ans auparavant xorWith.js 11e3a9652a first 7 ans auparavant zip.js 11e3a9652a first 7 ans auparavant zipObject.js 11e3a9652a first 7 ans auparavant zipObjectDeep.js 11e3a9652a first 7 ans auparavant zipWith.js 11e3a9652a first 7 ans auparavant

README.md

lodash v4.17.5

The Lodash library exported as Node.js modules.

Installation

Using npm:

$ npm i -g npm
$ npm i --save lodash

In Node.js:

// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');

// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');

// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

See the package source for more details.

Note:
Install n_ for Lodash use in the Node.js < 6 REPL.

Support

Tested in Chrome 63-64, Firefox 57-58, IE 11, Edge 14, Safari 10-11, Node.js 4-9, & PhantomJS 2.1.1.
Automated browser & CI test runs are available.

kodo - Gogs: Go Git Service

Nenhuma Descrição

staff_views.py 17KB

    # -*- coding: utf-8 -*- import json from django.conf import settings from django.db import transaction from django_logit import logit from django_response import response from account.models import UserInfo from coupon.models import CouponInfo, UserCouponInfo from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo from mch.models import AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo, SaleclerkInfo from member.models import RightInfo from staff.models import StaffDeleteClerkSaleSubmitLogInfo, StaffDeleteConsumerSubmitLogInfo from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo, SaleclerkSaleStatisticInfo, SaleStatisticInfo) from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductDistributorStatusCode, ProductModelStatusCode, SaleclerkStatusCode, UserStatusCode) def exec_del_clerk_sale_submit(pk, admin_id): try: ssli = SaleclerkSubmitLogInfo.objects.select_for_update().get(pk=pk) except SaleclerkSubmitLogInfo.DoesNotExist: return response() if not ssli.status: return response() ssli.status = False ssli.is_staff_delete = True ssli.save() try: brand = BrandInfo.objects.get(pk=ssli.brand_pk) except BrandInfo.DoesNotExist: return response(ProductBrandStatusCode) try: model = ModelInfo.objects.get(pk=ssli.model_pk) except ModelInfo.DoesNotExist: return response(ProductModelStatusCode) try: clerk = SaleclerkInfo.objects.select_for_update().get(clerk_id=ssli.clerk_id, status=True) except SaleclerkInfo.DoesNotExist: return response(SaleclerkStatusCode.CLERK_NOT_FOUND) try: distributor = DistributorInfo.objects.get(distributor_id=clerk.distributor_id) except DistributorInfo.DoesNotExist: return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND) ymd = str(ssli.ymd) if not clerk.test_user and not ssli.dupload: # 删除积分 try: income = SaleclerkIntegralIncomeExpensesInfo.objects.select_for_update().get(model_id=model.model_id, code=ssli.code, clerk_id=ssli.clerk_id, status=True) except SaleclerkIntegralIncomeExpensesInfo.DoesNotExist: return response() income.status = False income.save() integral = model.integral clerk.num -= 1 clerk.integral -= integral clerk.total_integral -= integral clerk.save() # 记录删除日志 StaffDeleteClerkSaleSubmitLogInfo.objects.create( admin_id=admin_id, log_pk=pk, model_name=model.model_name, code=ssli.code ) # 日销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd, ) ssi.num -= 1 ssi.save() # 月销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:6], ) ssi.num -= 1 ssi.save() # 年销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:4], ) ssi.num -= 1 ssi.save() # 型号销量统计 mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd, ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:6], ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:4], ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() # 经销商销量统计 dssi, _ = DistributorSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, distributor_id=distributor.distributor_id, ymd=ymd, ) dssi.distributor_name = distributor.distributor_name dssi.num -= 1 dssi.save() dssi2, _ = DistributorSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, distributor_id=distributor.distributor_id, ymd=0, ) dssi2.distributor_name = distributor.distributor_name dssi2.num -= 1 dssi2.save() # 日省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd, ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 月省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd[:6], ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 年省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd[:4], ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 日销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd, ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() # 月销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd[:6], ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() # 年销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd[:4], ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() @logit @transaction.atomic def del_clerk_sale_submit_api(request): brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID admin_id = request.POST.get('admin_id', '') pk = int(request.POST.get('pk', '')) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) exec_del_clerk_sale_submit(pk, admin_id) return response(200, 'Del Success', u'删除成功') @logit @transaction.atomic def batch_del_clerk_sale_submit_api(request): brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID admin_id = request.POST.get('admin_id', '') pks = json.loads(request.POST.get('pks', [])) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) for pk in pks: exec_del_clerk_sale_submit(pk, admin_id) return response(200, 'Del Success', u'删除成功') def exec_del_consumer_submit(pk, admin_id): try: ssli = ConsumeInfoSubmitLogInfo.objects.select_for_update().get(pk=pk) except ConsumeInfoSubmitLogInfo.DoesNotExist: return response() if not ssli.status: return response() sn = ssli.serialNo ssli.status = False ssli.delete_type = ConsumeInfoSubmitLogInfo.RETURN ssli.save() ConsumeInfoSubmitLogInfo.objects.filter(serialNo=sn, model_id=ssli.model_id, dupload=True, status=True).update(delete_type=ConsumeInfoSubmitLogInfo.RETURN, status=False) if ssli.dupload: return response() try: brand = BrandInfo.objects.get(brand_id=ssli.brand_id) except BrandInfo.DoesNotExist: return response(ProductBrandStatusCode.BRAND_NOT_FOUND) try: model = ModelInfo.objects.get(model_id=ssli.model_id) except ModelInfo.DoesNotExist: return response(ProductModelStatusCode.MODEL_NOT_FOUND) try: user = UserInfo.objects.select_for_update().get(user_id=ssli.user_id) except UserInfo.DoesNotExist: return response(UserStatusCode.USER_NOT_FOUND) # 记录删除日志 StaffDeleteConsumerSubmitLogInfo.objects.create( admin_id=admin_id, log_pk=pk, model_name=model.model_name, code=ssli.serialNo ) if ssli.unbound: return response() # 消除用户劵 if user.shots_num <= 5: rights = RightInfo.objects.filter(is_send_coupon=True, status=True) for right in rights: if user.level == UserInfo.MEMBER_LRC: coupon_id = right.coupon_level1_id coupon_num = right.coupon_level1_num elif user.level == UserInfo.MEMBER_SILVER: coupon_id = right.coupon_level2_id coupon_num = right.coupon_level2_num elif user.level == UserInfo.MEMBER_GOLD: coupon_id = right.coupon_level3_id coupon_num = right.coupon_level3_num elif user.level == UserInfo.MEMBER_WHITE_GOLD: coupon_id = right.coupon_level4_id coupon_num = right.coupon_level4_num elif user.level == UserInfo.MEMBER_BLACK_GOLD: coupon_id = right.coupon_level5_id coupon_num = right.coupon_level5_num else: continue try: coupon = CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue user_coupons = UserCouponInfo.objects.filter(user_id=user.user_id, coupon_id=coupon_id, coupon_from='MEMBER_BENEFITS', status=True, has_used=False).values_list('pk', flat=True) # 防止用户部分劵已使用,不够消除 UserCouponInfo.objects.filter(pk__in=list(user_coupons)[0:min(coupon_num, len(user_coupons))]).update(status=False) # 消除活动劵 if ssli.submit_during_activity: UserCouponInfo.objects.filter(user_id=user.user_id, coupon_from='PROMOTION', submit_pk=ssli.pk).update(status=False) # 消除积分及会员等级 integral = model.shot_member_integral if user.shots_num <= 5: user.level -= 1 user.shots_num -= 1 user.integral -= integral user.integral = max(user.integral, 0) user.save() # 消除统计记录 ymd = str(ssli.ymd) if not user.test_user: # 日销量统计 ssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd, ) ssi.num -= 1 ssi.save() # 月销量统计 ssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:6], ) ssi.num -= 1 ssi.save() # 年销量统计 ssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:4], ) ssi.num -= 1 ssi.save() # 日用户统计 ussi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd, ) try: ussi.users.remove(user.user_id) except ValueError: pass ussi.num = len(ussi.users) ussi.save() # 月用户统计 ussi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:6], ) try: ussi.users.remove(user.user_id) except ValueError: pass ussi.num = len(ussi.users) ussi.save() # 年用户统计 ussi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:4], ) try: ussi.users.remove(user.user_id) except ValueError: pass ussi.num = len(ussi.users) ussi.save() # 型号日销量统计 mssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd, ) try: mssi.users.remove(user.user_id) except ValueError: pass mssi.num = len(mssi.users) mssi.save() # 型号月销量统计 mssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:6], ) try: mssi.users.remove(user.user_id) except ValueError: pass mssi.num = len(mssi.users) mssi.save() # 型号年销量统计 mssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:4], ) try: mssi.users.remove(user.user_id) except ValueError: pass mssi.num = len(mssi.users) mssi.save() # 省份日销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_name=ssli.province, ymd=ymd, ) pssi.province_name = ssli.province pssi.num -= 1 pssi.save() # 省份月销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_name=ssli.province, ymd=ymd[:6], ) pssi.province_name = ssli.province pssi.num -= 1 pssi.save() # 省份年销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_name=ssli.province, ymd=ymd[:4], ) pssi.province_name = ssli.province pssi.num -= 1 pssi.save() @logit @transaction.atomic def del_consumer_submit_api(request): brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID admin_id = request.POST.get('admin_id', '') pk = int(request.POST.get('pk', '')) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) exec_del_consumer_submit(pk, admin_id) return response(200, 'Del Success', u'删除成功') @logit @transaction.atomic def batch_del_consumer_submit_api(request): brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID admin_id = request.POST.get('admin_id', '') pks = json.loads(request.POST.get('pks', [])) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) for pk in pks: exec_del_consumer_submit(pk, admin_id) return response(200, 'Del Success', u'删除成功')