├── .vscode └── settings.json ├── C++ ├── c++扩展.md └── 概述.md ├── C └── C_Overview.md ├── Git └── vscode_and_git.md ├── Linux ├── 6818_Linux_drive │ ├── Bootloader应用分析.md │ ├── Linux内核开发移植.md │ ├── Linux字符设备驱动设计.md │ ├── Linux设备驱动核心.md │ ├── 嵌入式文件系统.md │ └── 裸机工程开发调试.md ├── A.md ├── Linux设备驱动开发详解.md └── 正点Linux驱动开发 │ └── Linux 块设备驱动.md ├── README.md ├── SUMMARY.md ├── _book ├── .vscode │ └── settings.json ├── android_bottom │ ├── AOSP.html │ ├── AOSP.md │ ├── hardware_abstraction_layer.html │ ├── hardware_abstraction_layer.md │ ├── smart_pointer.html │ ├── smart_pointer.md │ ├── summary.html │ └── summary.md ├── gitbook │ ├── fonts │ │ └── fontawesome │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── gitbook-plugin-back-to-top-button │ │ ├── plugin.css │ │ └── plugin.js │ ├── gitbook-plugin-chapter-fold │ │ ├── chapter-fold.css │ │ └── chapter-fold.js │ ├── gitbook-plugin-code │ │ ├── plugin.css │ │ └── plugin.js │ ├── gitbook-plugin-fontsettings │ │ ├── fontsettings.js │ │ └── website.css │ ├── gitbook-plugin-highlight │ │ ├── ebook.css │ │ └── website.css │ ├── gitbook-plugin-insert-logo │ │ ├── plugin.css │ │ └── plugin.js │ ├── gitbook-plugin-livereload │ │ └── plugin.js │ ├── gitbook-plugin-pageview-count │ │ ├── plugin.css │ │ └── plugin.js │ ├── gitbook-plugin-search-pro │ │ ├── jquery.mark.min.js │ │ ├── search.css │ │ └── search.js │ ├── gitbook-plugin-sharing-plus │ │ └── buttons.js │ ├── gitbook-plugin-splitter │ │ ├── splitter.css │ │ └── splitter.js │ ├── gitbook-plugin-tbfed-pagefooter │ │ └── footer.css │ ├── gitbook.js │ ├── images │ │ ├── apple-touch-icon-precomposed-152.png │ │ └── favicon.ico │ ├── style.css │ └── theme.js ├── index.html ├── linux_driver │ ├── character_device_driver.html │ ├── character_device_driver.md │ ├── linux_driver.html │ └── linux_driver.md ├── linux_in_a_word │ ├── network_indepen.html │ └── network_indepen.md ├── linux_kernel_0_12 │ ├── computer_composition.html │ └── computer_composition.md ├── operating_system │ ├── operat_mechanism.html │ ├── operat_mechanism.md │ ├── process.html │ └── process.md ├── readthedec.md └── search_plus_index.json ├── android_bottom ├── binder │ ├── README.md │ └── binder.md ├── hardware_abstraction_layer │ ├── README.md │ ├── android_application.md │ ├── android_hardware_abstraction_layer_module.md │ ├── android_hardware_access_service.md │ └── android_hardware_driver.md ├── logger_log_system │ ├── README.md │ ├── log_interface.md │ ├── logcat.md │ └── logger_log.md └── smart_pointer.md ├── book.json ├── c └── print_cpucode.md ├── gtk ├── control.md ├── event_handling.md ├── glade.md └── gtk_overview.md ├── iot ├── iot_overview.md └── rfid.md ├── learning_route.md ├── linux_driver ├── character_device_driver.md └── linux_driver.md ├── linux_in_a_word └── network_indepen.md ├── linux_kernel_0_12 └── computer_composition.md ├── mu-lu ├── c.md ├── gtk.md ├── linux-nei-he-0.12.md ├── qi-ta.md ├── qt.md ├── shell.md ├── sqlite.md └── ubuntu.md ├── mysql └── mysql_make.md ├── node_modules ├── gitbook-plugin-back-to-top-button │ ├── LICENSE │ ├── README.md │ ├── assets │ │ ├── plugin.css │ │ └── plugin.js │ ├── index.js │ ├── package.json │ └── screenshots.png ├── gitbook-plugin-chapter-fold │ ├── .npmignore │ ├── README.md │ ├── book │ │ ├── chapter-fold.css │ │ └── chapter-fold.js │ ├── index.js │ └── package.json ├── gitbook-plugin-code │ ├── LICENSE │ ├── README.md │ ├── assets │ │ ├── plugin.css │ │ └── plugin.js │ ├── index.js │ └── package.json ├── gitbook-plugin-custom-favicon │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── gitbook-plugin-insert-logo │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── plugin.css │ │ └── plugin.js │ └── package.json ├── gitbook-plugin-pageview-count │ ├── LICENSE │ ├── README.md │ ├── assets │ │ ├── plugin.css │ │ └── plugin.js │ ├── index.js │ └── package.json ├── gitbook-plugin-popup │ ├── .npmignore │ ├── README.md │ ├── index.js │ └── package.json ├── gitbook-plugin-search-pro │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── _layouts │ │ └── website │ │ │ └── page.html │ ├── assets │ │ ├── jquery.mark.min.js │ │ ├── search.css │ │ └── search.js │ ├── index.js │ ├── package.json │ └── previews │ │ ├── search1.gif │ │ ├── search2.gif │ │ └── search3.gif ├── gitbook-plugin-sharing-plus │ ├── .eslintrc │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── assets │ │ └── buttons.js │ ├── index.js │ └── package.json ├── gitbook-plugin-splitter │ ├── .npmignore │ ├── LICENSE.txt │ ├── README.md │ ├── book │ │ ├── splitter.css │ │ └── splitter.js │ ├── gitbook-splitter-demo.gif │ ├── index.js │ └── package.json ├── gitbook-plugin-tbfed-pagefooter │ ├── LICENSE │ ├── README.md │ ├── assets │ │ └── footer.css │ ├── index.js │ └── package.json ├── html-entities │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── html4-entities.js │ │ ├── html5-entities.js │ │ └── xml-entities.js │ └── package.json ├── lodash │ ├── LICENSE │ ├── README.md │ ├── array.js │ ├── array │ │ ├── chunk.js │ │ ├── compact.js │ │ ├── difference.js │ │ ├── drop.js │ │ ├── dropRight.js │ │ ├── dropRightWhile.js │ │ ├── dropWhile.js │ │ ├── fill.js │ │ ├── findIndex.js │ │ ├── findLastIndex.js │ │ ├── first.js │ │ ├── flatten.js │ │ ├── flattenDeep.js │ │ ├── head.js │ │ ├── indexOf.js │ │ ├── initial.js │ │ ├── intersection.js │ │ ├── last.js │ │ ├── lastIndexOf.js │ │ ├── object.js │ │ ├── pull.js │ │ ├── pullAt.js │ │ ├── remove.js │ │ ├── rest.js │ │ ├── slice.js │ │ ├── sortedIndex.js │ │ ├── sortedLastIndex.js │ │ ├── tail.js │ │ ├── take.js │ │ ├── takeRight.js │ │ ├── takeRightWhile.js │ │ ├── takeWhile.js │ │ ├── union.js │ │ ├── uniq.js │ │ ├── unique.js │ │ ├── unzip.js │ │ ├── unzipWith.js │ │ ├── without.js │ │ ├── xor.js │ │ ├── zip.js │ │ ├── zipObject.js │ │ └── zipWith.js │ ├── chain.js │ ├── chain │ │ ├── chain.js │ │ ├── commit.js │ │ ├── concat.js │ │ ├── lodash.js │ │ ├── plant.js │ │ ├── reverse.js │ │ ├── run.js │ │ ├── tap.js │ │ ├── thru.js │ │ ├── toJSON.js │ │ ├── toString.js │ │ ├── value.js │ │ ├── valueOf.js │ │ ├── wrapperChain.js │ │ ├── wrapperCommit.js │ │ ├── wrapperConcat.js │ │ ├── wrapperPlant.js │ │ ├── wrapperReverse.js │ │ ├── wrapperToString.js │ │ └── wrapperValue.js │ ├── collection.js │ ├── collection │ │ ├── all.js │ │ ├── any.js │ │ ├── at.js │ │ ├── collect.js │ │ ├── contains.js │ │ ├── countBy.js │ │ ├── detect.js │ │ ├── each.js │ │ ├── eachRight.js │ │ ├── every.js │ │ ├── filter.js │ │ ├── find.js │ │ ├── findLast.js │ │ ├── findWhere.js │ │ ├── foldl.js │ │ ├── foldr.js │ │ ├── forEach.js │ │ ├── forEachRight.js │ │ ├── groupBy.js │ │ ├── include.js │ │ ├── includes.js │ │ ├── indexBy.js │ │ ├── inject.js │ │ ├── invoke.js │ │ ├── map.js │ │ ├── max.js │ │ ├── min.js │ │ ├── partition.js │ │ ├── pluck.js │ │ ├── reduce.js │ │ ├── reduceRight.js │ │ ├── reject.js │ │ ├── sample.js │ │ ├── select.js │ │ ├── shuffle.js │ │ ├── size.js │ │ ├── some.js │ │ ├── sortBy.js │ │ ├── sortByAll.js │ │ ├── sortByOrder.js │ │ ├── sum.js │ │ └── where.js │ ├── date.js │ ├── date │ │ └── now.js │ ├── function.js │ ├── function │ │ ├── after.js │ │ ├── ary.js │ │ ├── backflow.js │ │ ├── before.js │ │ ├── bind.js │ │ ├── bindAll.js │ │ ├── bindKey.js │ │ ├── compose.js │ │ ├── curry.js │ │ ├── curryRight.js │ │ ├── debounce.js │ │ ├── defer.js │ │ ├── delay.js │ │ ├── flow.js │ │ ├── flowRight.js │ │ ├── memoize.js │ │ ├── modArgs.js │ │ ├── negate.js │ │ ├── once.js │ │ ├── partial.js │ │ ├── partialRight.js │ │ ├── rearg.js │ │ ├── restParam.js │ │ ├── spread.js │ │ ├── throttle.js │ │ └── wrap.js │ ├── index.js │ ├── internal │ │ ├── LazyWrapper.js │ │ ├── LodashWrapper.js │ │ ├── MapCache.js │ │ ├── SetCache.js │ │ ├── arrayConcat.js │ │ ├── arrayCopy.js │ │ ├── arrayEach.js │ │ ├── arrayEachRight.js │ │ ├── arrayEvery.js │ │ ├── arrayExtremum.js │ │ ├── arrayFilter.js │ │ ├── arrayMap.js │ │ ├── arrayPush.js │ │ ├── arrayReduce.js │ │ ├── arrayReduceRight.js │ │ ├── arraySome.js │ │ ├── arraySum.js │ │ ├── assignDefaults.js │ │ ├── assignOwnDefaults.js │ │ ├── assignWith.js │ │ ├── baseAssign.js │ │ ├── baseAt.js │ │ ├── baseCallback.js │ │ ├── baseClone.js │ │ ├── baseCompareAscending.js │ │ ├── baseCopy.js │ │ ├── baseCreate.js │ │ ├── baseDelay.js │ │ ├── baseDifference.js │ │ ├── baseEach.js │ │ ├── baseEachRight.js │ │ ├── baseEvery.js │ │ ├── baseExtremum.js │ │ ├── baseFill.js │ │ ├── baseFilter.js │ │ ├── baseFind.js │ │ ├── baseFindIndex.js │ │ ├── baseFlatten.js │ │ ├── baseFor.js │ │ ├── baseForIn.js │ │ ├── baseForOwn.js │ │ ├── baseForOwnRight.js │ │ ├── baseForRight.js │ │ ├── baseFunctions.js │ │ ├── baseGet.js │ │ ├── baseIndexOf.js │ │ ├── baseIsEqual.js │ │ ├── baseIsEqualDeep.js │ │ ├── baseIsFunction.js │ │ ├── baseIsMatch.js │ │ ├── baseLodash.js │ │ ├── baseMap.js │ │ ├── baseMatches.js │ │ ├── baseMatchesProperty.js │ │ ├── baseMerge.js │ │ ├── baseMergeDeep.js │ │ ├── baseProperty.js │ │ ├── basePropertyDeep.js │ │ ├── basePullAt.js │ │ ├── baseRandom.js │ │ ├── baseReduce.js │ │ ├── baseSetData.js │ │ ├── baseSlice.js │ │ ├── baseSome.js │ │ ├── baseSortBy.js │ │ ├── baseSortByOrder.js │ │ ├── baseSum.js │ │ ├── baseToString.js │ │ ├── baseUniq.js │ │ ├── baseValues.js │ │ ├── baseWhile.js │ │ ├── baseWrapperValue.js │ │ ├── binaryIndex.js │ │ ├── binaryIndexBy.js │ │ ├── bindCallback.js │ │ ├── bufferClone.js │ │ ├── cacheIndexOf.js │ │ ├── cachePush.js │ │ ├── charsLeftIndex.js │ │ ├── charsRightIndex.js │ │ ├── compareAscending.js │ │ ├── compareMultiple.js │ │ ├── composeArgs.js │ │ ├── composeArgsRight.js │ │ ├── createAggregator.js │ │ ├── createAssigner.js │ │ ├── createBaseEach.js │ │ ├── createBaseFor.js │ │ ├── createBindWrapper.js │ │ ├── createCache.js │ │ ├── createCompounder.js │ │ ├── createCtorWrapper.js │ │ ├── createCurry.js │ │ ├── createDefaults.js │ │ ├── createExtremum.js │ │ ├── createFind.js │ │ ├── createFindIndex.js │ │ ├── createFindKey.js │ │ ├── createFlow.js │ │ ├── createForEach.js │ │ ├── createForIn.js │ │ ├── createForOwn.js │ │ ├── createHybridWrapper.js │ │ ├── createObjectMapper.js │ │ ├── createPadDir.js │ │ ├── createPadding.js │ │ ├── createPartial.js │ │ ├── createPartialWrapper.js │ │ ├── createReduce.js │ │ ├── createRound.js │ │ ├── createSortedIndex.js │ │ ├── createWrapper.js │ │ ├── deburrLetter.js │ │ ├── equalArrays.js │ │ ├── equalByTag.js │ │ ├── equalObjects.js │ │ ├── escapeHtmlChar.js │ │ ├── escapeRegExpChar.js │ │ ├── escapeStringChar.js │ │ ├── getData.js │ │ ├── getFuncName.js │ │ ├── getLength.js │ │ ├── getMatchData.js │ │ ├── getNative.js │ │ ├── getView.js │ │ ├── indexOfNaN.js │ │ ├── initCloneArray.js │ │ ├── initCloneByTag.js │ │ ├── initCloneObject.js │ │ ├── invokePath.js │ │ ├── isArrayLike.js │ │ ├── isIndex.js │ │ ├── isIterateeCall.js │ │ ├── isKey.js │ │ ├── isLaziable.js │ │ ├── isLength.js │ │ ├── isObjectLike.js │ │ ├── isSpace.js │ │ ├── isStrictComparable.js │ │ ├── lazyClone.js │ │ ├── lazyReverse.js │ │ ├── lazyValue.js │ │ ├── mapDelete.js │ │ ├── mapGet.js │ │ ├── mapHas.js │ │ ├── mapSet.js │ │ ├── mergeData.js │ │ ├── mergeDefaults.js │ │ ├── metaMap.js │ │ ├── pickByArray.js │ │ ├── pickByCallback.js │ │ ├── reEscape.js │ │ ├── reEvaluate.js │ │ ├── reInterpolate.js │ │ ├── realNames.js │ │ ├── reorder.js │ │ ├── replaceHolders.js │ │ ├── setData.js │ │ ├── shimKeys.js │ │ ├── sortedUniq.js │ │ ├── toIterable.js │ │ ├── toObject.js │ │ ├── toPath.js │ │ ├── trimmedLeftIndex.js │ │ ├── trimmedRightIndex.js │ │ ├── unescapeHtmlChar.js │ │ └── wrapperClone.js │ ├── lang.js │ ├── lang │ │ ├── clone.js │ │ ├── cloneDeep.js │ │ ├── eq.js │ │ ├── gt.js │ │ ├── gte.js │ │ ├── isArguments.js │ │ ├── isArray.js │ │ ├── isBoolean.js │ │ ├── isDate.js │ │ ├── isElement.js │ │ ├── isEmpty.js │ │ ├── isEqual.js │ │ ├── isError.js │ │ ├── isFinite.js │ │ ├── isFunction.js │ │ ├── isMatch.js │ │ ├── isNaN.js │ │ ├── isNative.js │ │ ├── isNull.js │ │ ├── isNumber.js │ │ ├── isObject.js │ │ ├── isPlainObject.js │ │ ├── isRegExp.js │ │ ├── isString.js │ │ ├── isTypedArray.js │ │ ├── isUndefined.js │ │ ├── lt.js │ │ ├── lte.js │ │ ├── toArray.js │ │ └── toPlainObject.js │ ├── math.js │ ├── math │ │ ├── add.js │ │ ├── ceil.js │ │ ├── floor.js │ │ ├── max.js │ │ ├── min.js │ │ ├── round.js │ │ └── sum.js │ ├── number.js │ ├── number │ │ ├── inRange.js │ │ └── random.js │ ├── object.js │ ├── object │ │ ├── assign.js │ │ ├── create.js │ │ ├── defaults.js │ │ ├── defaultsDeep.js │ │ ├── extend.js │ │ ├── findKey.js │ │ ├── findLastKey.js │ │ ├── forIn.js │ │ ├── forInRight.js │ │ ├── forOwn.js │ │ ├── forOwnRight.js │ │ ├── functions.js │ │ ├── get.js │ │ ├── has.js │ │ ├── invert.js │ │ ├── keys.js │ │ ├── keysIn.js │ │ ├── mapKeys.js │ │ ├── mapValues.js │ │ ├── merge.js │ │ ├── methods.js │ │ ├── omit.js │ │ ├── pairs.js │ │ ├── pick.js │ │ ├── result.js │ │ ├── set.js │ │ ├── transform.js │ │ ├── values.js │ │ └── valuesIn.js │ ├── package.json │ ├── string.js │ ├── string │ │ ├── camelCase.js │ │ ├── capitalize.js │ │ ├── deburr.js │ │ ├── endsWith.js │ │ ├── escape.js │ │ ├── escapeRegExp.js │ │ ├── kebabCase.js │ │ ├── pad.js │ │ ├── padLeft.js │ │ ├── padRight.js │ │ ├── parseInt.js │ │ ├── repeat.js │ │ ├── snakeCase.js │ │ ├── startCase.js │ │ ├── startsWith.js │ │ ├── template.js │ │ ├── templateSettings.js │ │ ├── trim.js │ │ ├── trimLeft.js │ │ ├── trimRight.js │ │ ├── trunc.js │ │ ├── unescape.js │ │ └── words.js │ ├── support.js │ ├── utility.js │ └── utility │ │ ├── attempt.js │ │ ├── callback.js │ │ ├── constant.js │ │ ├── identity.js │ │ ├── iteratee.js │ │ ├── matches.js │ │ ├── matchesProperty.js │ │ ├── method.js │ │ ├── methodOf.js │ │ ├── mixin.js │ │ ├── noop.js │ │ ├── property.js │ │ ├── propertyOf.js │ │ ├── range.js │ │ ├── times.js │ │ └── uniqueId.js └── moment │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── dist │ ├── locale │ │ ├── af.js │ │ ├── ar-dz.js │ │ ├── ar-kw.js │ │ ├── ar-ly.js │ │ ├── ar-ma.js │ │ ├── ar-sa.js │ │ ├── ar-tn.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── be.js │ │ ├── bg.js │ │ ├── bm.js │ │ ├── bn.js │ │ ├── bo.js │ │ ├── br.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cv.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-at.js │ │ ├── de-ch.js │ │ ├── de.js │ │ ├── dv.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en-ie.js │ │ ├── en-il.js │ │ ├── en-in.js │ │ ├── en-nz.js │ │ ├── en-sg.js │ │ ├── eo.js │ │ ├── es-do.js │ │ ├── es-us.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fil.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr-ch.js │ │ ├── fr.js │ │ ├── fy.js │ │ ├── ga.js │ │ ├── gd.js │ │ ├── gl.js │ │ ├── gom-deva.js │ │ ├── gom-latn.js │ │ ├── gu.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── hy-am.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it-ch.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── jv.js │ │ ├── ka.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── kn.js │ │ ├── ko.js │ │ ├── ku.js │ │ ├── ky.js │ │ ├── lb.js │ │ ├── lo.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── me.js │ │ ├── mi.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mn.js │ │ ├── mr.js │ │ ├── ms-my.js │ │ ├── ms.js │ │ ├── mt.js │ │ ├── my.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl-be.js │ │ ├── nl.js │ │ ├── nn.js │ │ ├── oc-lnc.js │ │ ├── pa-in.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── sd.js │ │ ├── se.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-cyrl.js │ │ ├── sr.js │ │ ├── ss.js │ │ ├── sv.js │ │ ├── sw.js │ │ ├── ta.js │ │ ├── te.js │ │ ├── tet.js │ │ ├── tg.js │ │ ├── th.js │ │ ├── tk.js │ │ ├── tl-ph.js │ │ ├── tlh.js │ │ ├── tr.js │ │ ├── tzl.js │ │ ├── tzm-latn.js │ │ ├── tzm.js │ │ ├── ug-cn.js │ │ ├── uk.js │ │ ├── ur.js │ │ ├── uz-latn.js │ │ ├── uz.js │ │ ├── vi.js │ │ ├── x-pseudo.js │ │ ├── yo.js │ │ ├── zh-cn.js │ │ ├── zh-hk.js │ │ ├── zh-mo.js │ │ └── zh-tw.js │ └── moment.js │ ├── ender.js │ ├── locale │ ├── af.js │ ├── ar-dz.js │ ├── ar-kw.js │ ├── ar-ly.js │ ├── ar-ma.js │ ├── ar-sa.js │ ├── ar-tn.js │ ├── ar.js │ ├── az.js │ ├── be.js │ ├── bg.js │ ├── bm.js │ ├── bn.js │ ├── bo.js │ ├── br.js │ ├── bs.js │ ├── ca.js │ ├── cs.js │ ├── cv.js │ ├── cy.js │ ├── da.js │ ├── de-at.js │ ├── de-ch.js │ ├── de.js │ ├── dv.js │ ├── el.js │ ├── en-au.js │ ├── en-ca.js │ ├── en-gb.js │ ├── en-ie.js │ ├── en-il.js │ ├── en-in.js │ ├── en-nz.js │ ├── en-sg.js │ ├── eo.js │ ├── es-do.js │ ├── es-us.js │ ├── es.js │ ├── et.js │ ├── eu.js │ ├── fa.js │ ├── fi.js │ ├── fil.js │ ├── fo.js │ ├── fr-ca.js │ ├── fr-ch.js │ ├── fr.js │ ├── fy.js │ ├── ga.js │ ├── gd.js │ ├── gl.js │ ├── gom-deva.js │ ├── gom-latn.js │ ├── gu.js │ ├── he.js │ ├── hi.js │ ├── hr.js │ ├── hu.js │ ├── hy-am.js │ ├── id.js │ ├── is.js │ ├── it-ch.js │ ├── it.js │ ├── ja.js │ ├── jv.js │ ├── ka.js │ ├── kk.js │ ├── km.js │ ├── kn.js │ ├── ko.js │ ├── ku.js │ ├── ky.js │ ├── lb.js │ ├── lo.js │ ├── lt.js │ ├── lv.js │ ├── me.js │ ├── mi.js │ ├── mk.js │ ├── ml.js │ ├── mn.js │ ├── mr.js │ ├── ms-my.js │ ├── ms.js │ ├── mt.js │ ├── my.js │ ├── nb.js │ ├── ne.js │ ├── nl-be.js │ ├── nl.js │ ├── nn.js │ ├── oc-lnc.js │ ├── pa-in.js │ ├── pl.js │ ├── pt-br.js │ ├── pt.js │ ├── ro.js │ ├── ru.js │ ├── sd.js │ ├── se.js │ ├── si.js │ ├── sk.js │ ├── sl.js │ ├── sq.js │ ├── sr-cyrl.js │ ├── sr.js │ ├── ss.js │ ├── sv.js │ ├── sw.js │ ├── ta.js │ ├── te.js │ ├── tet.js │ ├── tg.js │ ├── th.js │ ├── tk.js │ ├── tl-ph.js │ ├── tlh.js │ ├── tr.js │ ├── tzl.js │ ├── tzm-latn.js │ ├── tzm.js │ ├── ug-cn.js │ ├── uk.js │ ├── ur.js │ ├── uz-latn.js │ ├── uz.js │ ├── vi.js │ ├── x-pseudo.js │ ├── yo.js │ ├── zh-cn.js │ ├── zh-hk.js │ ├── zh-mo.js │ └── zh-tw.js │ ├── min │ ├── locales.js │ ├── locales.min.js │ ├── locales.min.js.map │ ├── moment-with-locales.js │ ├── moment-with-locales.min.js │ ├── moment-with-locales.min.js.map │ ├── moment.min.js │ └── moment.min.js.map │ ├── moment.d.ts │ ├── moment.js │ ├── package.js │ ├── package.json │ ├── src │ ├── lib │ │ ├── create │ │ │ ├── check-overflow.js │ │ │ ├── date-from-array.js │ │ │ ├── from-anything.js │ │ │ ├── from-array.js │ │ │ ├── from-object.js │ │ │ ├── from-string-and-array.js │ │ │ ├── from-string-and-format.js │ │ │ ├── from-string.js │ │ │ ├── local.js │ │ │ ├── parsing-flags.js │ │ │ ├── utc.js │ │ │ └── valid.js │ │ ├── duration │ │ │ ├── abs.js │ │ │ ├── add-subtract.js │ │ │ ├── as.js │ │ │ ├── bubble.js │ │ │ ├── clone.js │ │ │ ├── constructor.js │ │ │ ├── create.js │ │ │ ├── duration.js │ │ │ ├── get.js │ │ │ ├── humanize.js │ │ │ ├── iso-string.js │ │ │ ├── prototype.js │ │ │ └── valid.js │ │ ├── format │ │ │ └── format.js │ │ ├── locale │ │ │ ├── base-config.js │ │ │ ├── calendar.js │ │ │ ├── constructor.js │ │ │ ├── en.js │ │ │ ├── formats.js │ │ │ ├── invalid.js │ │ │ ├── lists.js │ │ │ ├── locale.js │ │ │ ├── locales.js │ │ │ ├── ordinal.js │ │ │ ├── pre-post-format.js │ │ │ ├── prototype.js │ │ │ ├── relative.js │ │ │ └── set.js │ │ ├── moment │ │ │ ├── add-subtract.js │ │ │ ├── calendar.js │ │ │ ├── clone.js │ │ │ ├── compare.js │ │ │ ├── constructor.js │ │ │ ├── creation-data.js │ │ │ ├── diff.js │ │ │ ├── format.js │ │ │ ├── from.js │ │ │ ├── get-set.js │ │ │ ├── locale.js │ │ │ ├── min-max.js │ │ │ ├── moment.js │ │ │ ├── now.js │ │ │ ├── prototype.js │ │ │ ├── start-end-of.js │ │ │ ├── to-type.js │ │ │ ├── to.js │ │ │ └── valid.js │ │ ├── parse │ │ │ ├── regex.js │ │ │ └── token.js │ │ ├── units │ │ │ ├── aliases.js │ │ │ ├── constants.js │ │ │ ├── day-of-month.js │ │ │ ├── day-of-week.js │ │ │ ├── day-of-year.js │ │ │ ├── era.js │ │ │ ├── hour.js │ │ │ ├── millisecond.js │ │ │ ├── minute.js │ │ │ ├── month.js │ │ │ ├── offset.js │ │ │ ├── priorities.js │ │ │ ├── quarter.js │ │ │ ├── second.js │ │ │ ├── timestamp.js │ │ │ ├── timezone.js │ │ │ ├── units.js │ │ │ ├── week-calendar-utils.js │ │ │ ├── week-year.js │ │ │ ├── week.js │ │ │ └── year.js │ │ └── utils │ │ │ ├── abs-ceil.js │ │ │ ├── abs-floor.js │ │ │ ├── abs-round.js │ │ │ ├── compare-arrays.js │ │ │ ├── defaults.js │ │ │ ├── deprecate.js │ │ │ ├── extend.js │ │ │ ├── has-own-prop.js │ │ │ ├── hooks.js │ │ │ ├── index-of.js │ │ │ ├── is-array.js │ │ │ ├── is-calendar-spec.js │ │ │ ├── is-date.js │ │ │ ├── is-function.js │ │ │ ├── is-leap-year.js │ │ │ ├── is-moment-input.js │ │ │ ├── is-number.js │ │ │ ├── is-object-empty.js │ │ │ ├── is-object.js │ │ │ ├── is-string.js │ │ │ ├── is-undefined.js │ │ │ ├── keys.js │ │ │ ├── map.js │ │ │ ├── mod.js │ │ │ ├── some.js │ │ │ ├── to-int.js │ │ │ └── zero-fill.js │ ├── locale │ │ ├── af.js │ │ ├── ar-dz.js │ │ ├── ar-kw.js │ │ ├── ar-ly.js │ │ ├── ar-ma.js │ │ ├── ar-sa.js │ │ ├── ar-tn.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── be.js │ │ ├── bg.js │ │ ├── bm.js │ │ ├── bn.js │ │ ├── bo.js │ │ ├── br.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cv.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-at.js │ │ ├── de-ch.js │ │ ├── de.js │ │ ├── dv.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en-ie.js │ │ ├── en-il.js │ │ ├── en-in.js │ │ ├── en-nz.js │ │ ├── en-sg.js │ │ ├── eo.js │ │ ├── es-do.js │ │ ├── es-us.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fil.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr-ch.js │ │ ├── fr.js │ │ ├── fy.js │ │ ├── ga.js │ │ ├── gd.js │ │ ├── gl.js │ │ ├── gom-deva.js │ │ ├── gom-latn.js │ │ ├── gu.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── hy-am.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it-ch.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── jv.js │ │ ├── ka.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── kn.js │ │ ├── ko.js │ │ ├── ku.js │ │ ├── ky.js │ │ ├── lb.js │ │ ├── lo.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── me.js │ │ ├── mi.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mn.js │ │ ├── mr.js │ │ ├── ms-my.js │ │ ├── ms.js │ │ ├── mt.js │ │ ├── my.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl-be.js │ │ ├── nl.js │ │ ├── nn.js │ │ ├── oc-lnc.js │ │ ├── pa-in.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── sd.js │ │ ├── se.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-cyrl.js │ │ ├── sr.js │ │ ├── ss.js │ │ ├── sv.js │ │ ├── sw.js │ │ ├── ta.js │ │ ├── te.js │ │ ├── tet.js │ │ ├── tg.js │ │ ├── th.js │ │ ├── tk.js │ │ ├── tl-ph.js │ │ ├── tlh.js │ │ ├── tr.js │ │ ├── tzl.js │ │ ├── tzm-latn.js │ │ ├── tzm.js │ │ ├── ug-cn.js │ │ ├── uk.js │ │ ├── ur.js │ │ ├── uz-latn.js │ │ ├── uz.js │ │ ├── vi.js │ │ ├── x-pseudo.js │ │ ├── yo.js │ │ ├── zh-cn.js │ │ ├── zh-hk.js │ │ ├── zh-mo.js │ │ └── zh-tw.js │ └── moment.js │ └── ts3.1-typings │ └── moment.d.ts ├── operating_system ├── operat_mechanism.md └── process.md ├── other ├── typora-tu-chuang.md └── typora_picture_bed.md ├── qt └── first_qt.md ├── shell ├── auto_packaging.md ├── condition.md ├── control.md ├── shell_overview.md └── variable.md ├── sqlite ├── database_overview.md ├── shu-ju-ku-gai-shu.md ├── sql_basis.md ├── sql_improve.md └── sqlite_c.md ├── ubuntu ├── format_problem.md ├── linux_use.md ├── use_notebook.md ├── use_samba.md ├── use_ubuntu.md └── use_vscode.md ├── web ├── cgi.md └── xml.md ├── 单片机 └── 单片机复习资料.md ├── 安卓底层开发 ├── Android手机底层软硬件.md ├── 安卓深度探索 │ └── Android驱动开发前的准备.md └── 硬件控制服务.md ├── 操作系统 ├── linux操作系统原理 │ └── 操作系统概述.md └── 王道操作系统笔记 │ ├── 操作系统的运行机制.md │ └── 进程.md ├── 数据结构 ├── 堆.md ├── 数组和字符串.md ├── 栈.md └── 队列.md ├── 模电 └── 模电复习题.md ├── 算法 ├── 二分法.md ├── 算法导论.md └── 递归分治.md ├── 面试 ├── 公司分类 │ ├── 18_360_未解.md │ ├── 18_北京华油信通_未解.md │ ├── 18_易兆微电子_未解.md │ └── 19威泰视信.md ├── 嵌入式系统.md ├── 智商题.md ├── 知识点分 │ ├── CC++ │ │ └── C++100必会题.md │ └── 网络 │ │ ├── C++_十进制转IPV4点分.md │ │ ├── 三次握手.md │ │ └── 网络分层.md └── 面试问题.md └── 音视频 └── audio音频 ├── IIS.md ├── alsa(audio)驱动分析.md ├── linux音视频框架.md ├── wave音频数据的格式.md └── 多媒体音频格式.md /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "restructuredtext.confPath": "" 3 | } -------------------------------------------------------------------------------- /C/C_Overview.md: -------------------------------------------------------------------------------- 1 | 9 | * @Author: cpu_code 10 | * @Date: 2020-06-24 20:49:48 11 | * @LastEditTime: 2020-06-27 23:07:52 12 | * @FilePath: \md\C\C语言概述.md 13 | * @Gitee: https://gitee.com/cpu_code 14 | * @CSDN: https://blog.csdn.net/qq_44226094 15 | 16 | 17 | # C语言概述 18 | 19 | 20 | 21 | ### C语言的发展简史与特色 22 | 23 | 24 | 25 | ### 简单的C程序介绍 26 | 27 | ```c 28 | main( ) 29 | { 30 | printf(″A simple c program.\n″); 31 | } 32 | ``` 33 | 34 | 35 | 36 | 37 | 38 | ### 用C语言解决实际问题的步骤 -------------------------------------------------------------------------------- /_book/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "restructuredtext.confPath": "" 3 | } -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-back-to-top-button/plugin.js: -------------------------------------------------------------------------------- 1 | var gitbook = window.gitbook; 2 | 3 | gitbook.events.on('page.change', function() { 4 | 5 | var back_to_top_button = ['
'].join(""); 6 | $(".book").append(back_to_top_button) 7 | 8 | $(".back-to-top").hide(); 9 | 10 | $('.book-body,.body-inner').on('scroll', function () { 11 | if ($(this).scrollTop() > 100) { 12 | $('.back-to-top').fadeIn(); 13 | } else { 14 | $('.back-to-top').fadeOut(); 15 | } 16 | }); 17 | 18 | $('.back-to-top').click(function () { 19 | $('.book-body,.body-inner').animate({ 20 | scrollTop: 0 21 | }, 800); 22 | return false; 23 | }); 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-chapter-fold/chapter-fold.css: -------------------------------------------------------------------------------- 1 | .book .book-summary .chapter > .articles { 2 | overflow: hidden; 3 | max-height: 0px; 4 | } 5 | 6 | .book .book-summary .chapter.expanded > .articles { 7 | max-height: 9999px; 8 | } 9 | 10 | .book .book-summary .exc-trigger { 11 | position: absolute; 12 | left: 12px; 13 | top: 12px; 14 | } 15 | 16 | .book .book-summary ul.summary li a, 17 | .book .book-summary ul.summary li span { 18 | padding-left: 30px; 19 | } 20 | 21 | .book .book-summary .exc-trigger:before { 22 | content: "\f105"; 23 | } 24 | 25 | .book .book-summary .expanded > a .exc-trigger:before, 26 | .book .book-summary .expanded > span .exc-trigger:before { 27 | content: "\f107"; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-code/plugin.css: -------------------------------------------------------------------------------- 1 | #code-textarea { 2 | height: 0; 3 | position: fixed; 4 | top: -1000px; 5 | width: 0; 6 | } 7 | 8 | .code-wrapper { 9 | position: relative; 10 | } 11 | 12 | .code-wrapper i { 13 | color: #c1c7cd; 14 | cursor: pointer; 15 | font-size: 12px; 16 | font-weight: bold; 17 | position: absolute; 18 | right: 1em; 19 | top: 1em; 20 | } 21 | 22 | .code-wrapper pre { 23 | background: #f7f8f9; 24 | border-radius: 3px; 25 | counter-reset: line; 26 | font-size: 15px; 27 | } 28 | 29 | .code-wrapper pre > code > span.code-line:before { 30 | counter-increment: line; 31 | color: #c1c7cd; 32 | content: counter(line); 33 | display: inline-block; 34 | font-size: 12px; 35 | margin-right: 1.5em; 36 | width: 1em; 37 | } 38 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-insert-logo/plugin.css: -------------------------------------------------------------------------------- 1 | .book .book-summary .book-logo { 2 | text-align: center; 3 | padding: 20px; 4 | } -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-insert-logo/plugin.js: -------------------------------------------------------------------------------- 1 | require(['gitbook', 'jQuery'], function (gitbook, $) { 2 | var url = '' 3 | var style = '' 4 | var insertLogo = function (url, style) { 5 | $('.book-summary').children().eq(0).before('') 6 | } 7 | gitbook.events.bind('start', function (e, config) { 8 | url = config['insert-logo']['url'] 9 | style = config['insert-logo']['style'] 10 | }) 11 | 12 | gitbook.events.bind("page.change", function() { 13 | insertLogo(url, style) 14 | }) 15 | }) 16 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-livereload/plugin.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var newEl = document.createElement('script'), 3 | firstScriptTag = document.getElementsByTagName('script')[0]; 4 | 5 | if (firstScriptTag) { 6 | newEl.async = 1; 7 | newEl.src = '//' + window.location.hostname + ':35729/livereload.js'; 8 | firstScriptTag.parentNode.insertBefore(newEl, firstScriptTag); 9 | } 10 | 11 | })(); 12 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-pageview-count/plugin.css: -------------------------------------------------------------------------------- 1 | .page-view-wrapper .btn{ 2 | display: inline-block; 3 | } 4 | .page-view-counter{ 5 | margin-left: -14px; 6 | font-size: 15px; 7 | display:inline-block; 8 | } -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-splitter/splitter.css: -------------------------------------------------------------------------------- 1 | .divider-content-summary { 2 | position: absolute; 3 | top: 0; 4 | right: 0; 5 | height: 100%; 6 | width: 5px; 7 | display: table; 8 | cursor: col-resize; 9 | color: #ccc; 10 | -webkit-transition: color 350ms ease; 11 | -moz-transition: color 350ms ease; 12 | -o-transition: color 350ms ease; 13 | transition: color 350ms ease 14 | } 15 | .divider-content-summary:hover { 16 | color: #444; 17 | } 18 | .divider-content-summary__icon { 19 | display: table-cell; 20 | vertical-align: middle; 21 | text-align: center; 22 | } 23 | -------------------------------------------------------------------------------- /_book/gitbook/gitbook-plugin-tbfed-pagefooter/footer.css: -------------------------------------------------------------------------------- 1 | .page-footer { 2 | margin-top: 50px; 3 | border-top: 1px solid #ccc; 4 | overflow: hidden; 5 | padding: 10px 0; 6 | font-size: 12px; 7 | color: #808080; 8 | } 9 | .page-footer a { 10 | color: #808080!important; 11 | text-decoration: underline!important; 12 | } 13 | .footer-modification { 14 | float: right; 15 | } 16 | -------------------------------------------------------------------------------- /_book/gitbook/images/apple-touch-icon-precomposed-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/images/apple-touch-icon-precomposed-152.png -------------------------------------------------------------------------------- /_book/gitbook/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/_book/gitbook/images/favicon.ico -------------------------------------------------------------------------------- /android_bottom/binder/README.md: -------------------------------------------------------------------------------- 1 | # binder 2 | 3 | -------------------------------------------------------------------------------- /android_bottom/hardware_abstraction_layer/README.md: -------------------------------------------------------------------------------- 1 | # 硬件抽象层 2 | 3 | * @Author: cpu\_code 4 | * @Date: 2020-07-15 11:51:27 5 | * @LastEditTime: 2020-07-15 12:46:44 6 | * @FilePath: \notes\android\_bottom\hardware\_abstraction\_layer\README.md 7 | * @Gitee: [https://gitee.com/cpu\_code](https://gitee.com/cpu_code) 8 | * @Github: [https://github.com/CPU-Code](https://github.com/CPU-Code) 9 | * @CSDN: [https://blog.csdn.net/qq\_44226094](https://blog.csdn.net/qq_44226094) 10 | * @Gitbook: [https://923992029.gitbook.io/cpucode/](https://923992029.gitbook.io/cpucode/) 11 | * [安卓硬件驱动](android_hardware_driver.md) 12 | * [安卓硬件抽象层模块](android_hardware_abstraction_layer_module.md) 13 | * [安卓硬件访问服务](android_hardware_access_service.md) 14 | * [安卓应用](android_application.md) 15 | 16 | -------------------------------------------------------------------------------- /android_bottom/logger_log_system/README.md: -------------------------------------------------------------------------------- 1 | # Logger日志系统 2 | 3 | ![cpucode.png](https://s1.ax1x.com/2020/06/18/Nnpxmj.png) 4 | 5 | ## [Logger日志系统](https://github.com/CPU-Code/notes/tree/3e00b3574737cc9efaf9e1d768d76396ca9416cc/android_bottom/logger_log_system/android_bottom/logger_log_system/README.md) 6 | 7 | * [Logger日志](https://github.com/CPU-Code/notes/tree/3e00b3574737cc9efaf9e1d768d76396ca9416cc/android_bottom/logger_log_system/android_bottom/logger_log_system/Logger_log.md) 8 | * [Logger写接口](https://github.com/CPU-Code/notes/tree/3e00b3574737cc9efaf9e1d768d76396ca9416cc/android_bottom/logger_log_system/android_bottom/logger_log_system/Log_interface.md) 9 | * [Logcat](https://github.com/CPU-Code/notes/tree/3e00b3574737cc9efaf9e1d768d76396ca9416cc/android_bottom/logger_log_system/android_bottom/logger_log_system/logcat.md) 10 | 11 | -------------------------------------------------------------------------------- /gtk/glade.md: -------------------------------------------------------------------------------- 1 | # Glade使用 2 | 3 | ![Nnpxmj.png](https://s1.ax1x.com/2020/06/18/Nnpxmj.png) 4 | 5 | ## Glade 的使用 6 | 7 | Glade 是 GTK+的界面辅助设计工具, 可以通过拖放控件的方式快速设计出用户界面, 这样的优势在于在设计的同时能直观地看到界面上的控件, 并且可以随时调整界面上的设计。 8 | 9 | 由于开发板的库版本为 gtk2.12 之前的版本\(gtk1.0\), 所以只支持 libglade 模式, 而 Linux 环境的版本比较新,只能保存 GtkBuilder 格式的 Glade, 但是能运行 libglade 的代码, 而 window 的 glade 安装包两种格式都支持, 所以我们主要使用 window 的 glade 设计界面, 然后在 Linux 编译运行代码。 10 | 11 | 常用控件选择区: 列举了常用的控件, 常用的有三类: 顶层\(主窗口等\), 容器\(各种布局容器等\), 控制和显示\(按钮、 便签、 图片控件等\) 当鼠标放在控件时, 会自动显示控件的中文文字, 同时, 还能人为设置, 如下图 12 | 13 | 界面编辑区: 把控件拖放在这进行进行相应的布局 14 | 15 | 控件监视区: 能够看到界面上所有的控件, 同时, 选中这个控件, 可以看到这个控件的具体类型 16 | 17 | -------------------------------------------------------------------------------- /linux_driver/character_device_driver.md: -------------------------------------------------------------------------------- 1 | # 字符设备驱动开发 2 | 3 | * @Author: cpu\_code 4 | * @Date: 2020-07-12 14:09:20 5 | * @LastEditTime: 2020-07-12 21:08:35 6 | * @FilePath: \note\android\_bottom\smart\_pointer.md 7 | * @Gitee: [https://gitee.com/cpu\_code](https://gitee.com/cpu_code) 8 | * @Github: [https://github.com/CPU-Code](https://github.com/CPU-Code) 9 | * @CSDN: [https://blog.csdn.net/qq\_44226094](https://blog.csdn.net/qq_44226094) 10 | * @Gitbook: [https://923992029.gitbook.io/cpucode/](https://923992029.gitbook.io/cpucode/) 11 | 12 | ## 字符设备驱动简介 13 | 14 | **字符设备**是 Linux 驱动中最基本的设备驱动,字符设备就是一个一个字节,按照**字节流**进行读写操作的设备,读写数据是分**先后顺序**的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动 15 | 16 | ![Linux 应用程序对驱动程序的调用流程](https://gitee.com/cpu_code/picture_bed/raw/master//20200711190323.png) 17 | 18 | -------------------------------------------------------------------------------- /mu-lu/c.md: -------------------------------------------------------------------------------- 1 | # C 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/gtk.md: -------------------------------------------------------------------------------- 1 | # GTK 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/linux-nei-he-0.12.md: -------------------------------------------------------------------------------- 1 | # Linux内核0.12 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/qi-ta.md: -------------------------------------------------------------------------------- 1 | # 其他 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/qt.md: -------------------------------------------------------------------------------- 1 | # QT 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/shell.md: -------------------------------------------------------------------------------- 1 | # shell 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/sqlite.md: -------------------------------------------------------------------------------- 1 | # sqlite 2 | 3 | -------------------------------------------------------------------------------- /mu-lu/ubuntu.md: -------------------------------------------------------------------------------- 1 | # ubuntu 2 | 3 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-back-to-top-button/README.md: -------------------------------------------------------------------------------- 1 | # Gitbook Back to Top Button Plugin [![npm version](https://badge.fury.io/js/gitbook-plugin-back-to-top-button.svg)](https://badge.fury.io/js/gitbook-plugin-back-to-top-button) 2 | 3 | This plugin adds a back to top button to your GitBook. All three GitBook themes (White, Sepia, Night) are supported. 4 | 5 | ## Usage 6 | 7 | Add the plugin to your `book.json`: 8 | 9 | ``` 10 | { 11 | "plugins" : [ "back-to-top-button" ] 12 | } 13 | ``` 14 | 15 | ## Screenshots 16 | 17 | The back to top button in action: 18 | 19 | ![Screenshots](https://raw.githubusercontent.com/stuebersystems/gitbook-plugin-back-to-top-button/master/screenshots.png) 20 | 21 | ## Changelog 22 | 23 | * 0.1.0 Releases: 24 | * 0.1.0 First working release 25 | * 0.1.1 Minimal Gitbook version changed to 3.1.1 26 | * 0.1.2 Added link to GitHub repository 27 | * 0.1.3 Added support for GitBook themes (White, Sepia, Night) 28 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-back-to-top-button/assets/plugin.js: -------------------------------------------------------------------------------- 1 | var gitbook = window.gitbook; 2 | 3 | gitbook.events.on('page.change', function() { 4 | 5 | var back_to_top_button = ['
'].join(""); 6 | $(".book").append(back_to_top_button) 7 | 8 | $(".back-to-top").hide(); 9 | 10 | $('.book-body,.body-inner').on('scroll', function () { 11 | if ($(this).scrollTop() > 100) { 12 | $('.back-to-top').fadeIn(); 13 | } else { 14 | $('.back-to-top').fadeOut(); 15 | } 16 | }); 17 | 18 | $('.back-to-top').click(function () { 19 | $('.book-body,.body-inner').animate({ 20 | scrollTop: 0 21 | }, 800); 22 | return false; 23 | }); 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-back-to-top-button/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | website: { 3 | assets: './assets', 4 | js: [ 5 | 'plugin.js' 6 | ], 7 | css: [ 8 | 'plugin.css' 9 | ] 10 | } 11 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-back-to-top-button/screenshots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/node_modules/gitbook-plugin-back-to-top-button/screenshots.png -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-chapter-fold/.npmignore: -------------------------------------------------------------------------------- 1 | package.json 2 | README 3 | CHANGELOG 4 | LICENSE / LICENCE -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-chapter-fold/book/chapter-fold.css: -------------------------------------------------------------------------------- 1 | .book .book-summary .chapter > .articles { 2 | overflow: hidden; 3 | max-height: 0px; 4 | } 5 | 6 | .book .book-summary .chapter.expanded > .articles { 7 | max-height: 9999px; 8 | } 9 | 10 | .book .book-summary .exc-trigger { 11 | position: absolute; 12 | left: 12px; 13 | top: 12px; 14 | } 15 | 16 | .book .book-summary ul.summary li a, 17 | .book .book-summary ul.summary li span { 18 | padding-left: 30px; 19 | } 20 | 21 | .book .book-summary .exc-trigger:before { 22 | content: "\f105"; 23 | } 24 | 25 | .book .book-summary .expanded > a .exc-trigger:before, 26 | .book .book-summary .expanded > span .exc-trigger:before { 27 | content: "\f107"; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-chapter-fold/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // Extend website resources and html 3 | website: { 4 | assets: "./book", 5 | js: [ 6 | "chapter-fold.js" 7 | ], 8 | css: [ 9 | "chapter-fold.css" 10 | ] 11 | } 12 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-code/assets/plugin.css: -------------------------------------------------------------------------------- 1 | #code-textarea { 2 | height: 0; 3 | position: fixed; 4 | top: -1000px; 5 | width: 0; 6 | } 7 | 8 | .code-wrapper { 9 | position: relative; 10 | } 11 | 12 | .code-wrapper i { 13 | color: #c1c7cd; 14 | cursor: pointer; 15 | font-size: 12px; 16 | font-weight: bold; 17 | position: absolute; 18 | right: 1em; 19 | top: 1em; 20 | } 21 | 22 | .code-wrapper pre { 23 | background: #f7f8f9; 24 | border-radius: 3px; 25 | counter-reset: line; 26 | font-size: 15px; 27 | } 28 | 29 | .code-wrapper pre > code > span.code-line:before { 30 | counter-increment: line; 31 | color: #c1c7cd; 32 | content: counter(line); 33 | display: inline-block; 34 | font-size: 12px; 35 | margin-right: 1.5em; 36 | width: 1em; 37 | } 38 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-code/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | website: { 4 | assets: './assets', 5 | js: [ 6 | 'plugin.js' 7 | ], 8 | css: [ 9 | 'plugin.css' 10 | ] 11 | } 12 | 13 | }; 14 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-custom-favicon/.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-custom-favicon/README.md: -------------------------------------------------------------------------------- 1 | # gitbook-plugin-custom-favicon 2 | Add your own favicon to gitbook themes. 3 | 4 | Plugin deletes the gitbook favicon located at `"_book/gitbook/images/favicon.ico"` and replaces with your favicon. 5 | 6 | There is probably a better way to do this, but this at least works for _most_ use cases. However, this is a hack :smiley: 7 | 8 | ## Install via gitbook 9 | 10 | ### In book.json 11 | 12 | * Add `custom-favicon` to your `plugins` array 13 | * Add path to your favicon in `favicon` under `pluginsConfig` 14 | 15 | #### book.json 16 | ```json 17 | { 18 | "plugins" : ["custom-favicon"], 19 | "pluginsConfig" : { 20 | "favicon": "path/to/favicon.ico" 21 | } 22 | } 23 | ``` 24 | 25 | ### using gitbook-cli 26 | 27 | ```bash 28 | gitbook install 29 | ``` 30 | 31 | ### Using NPM 32 | ```bash 33 | npm install gitbook-plugin-custom-favicon 34 | ``` 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-custom-favicon/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | 4 | 5 | module.exports = { 6 | // Map of hooks 7 | hooks: { 8 | 9 | "finish" : function () { 10 | var pathFile = this.options.pluginsConfig && this.options.pluginsConfig.favicon; 11 | var favicon = path.join(process.cwd(), pathFile); 12 | var gitbookFaviconPath = path.join(process.cwd(), '_book', 'gitbook', 'images', 'favicon.ico'); 13 | if (pathFile && fs.existsSync(pathFile) && fs.existsSync(gitbookFaviconPath)){ 14 | fs.unlinkSync(gitbookFaviconPath); 15 | fs.createReadStream(favicon).pipe(fs.createWriteStream(gitbookFaviconPath)); 16 | } 17 | } 18 | }, 19 | 20 | // Map of new blocks 21 | blocks: {}, 22 | 23 | // Map of new filters 24 | filters: {} 25 | }; 26 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-insert-logo/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | book: { 3 | assets: './lib', 4 | js: [ 5 | 'plugin.js' 6 | ], 7 | css: [ 8 | 'plugin.css' 9 | ] 10 | } 11 | 12 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-insert-logo/lib/plugin.css: -------------------------------------------------------------------------------- 1 | .book .book-summary .book-logo { 2 | text-align: center; 3 | padding: 20px; 4 | } -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-insert-logo/lib/plugin.js: -------------------------------------------------------------------------------- 1 | require(['gitbook', 'jQuery'], function (gitbook, $) { 2 | var url = '' 3 | var style = '' 4 | var insertLogo = function (url, style) { 5 | $('.book-summary').children().eq(0).before('') 6 | } 7 | gitbook.events.bind('start', function (e, config) { 8 | url = config['insert-logo']['url'] 9 | style = config['insert-logo']['style'] 10 | }) 11 | 12 | gitbook.events.bind("page.change", function() { 13 | insertLogo(url, style) 14 | }) 15 | }) 16 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-pageview-count/README.md: -------------------------------------------------------------------------------- 1 | # GitBook Page View Count 2 | 3 | [![Build Status](https://travis-ci.org/todvora/gitbook-plugin-pageview-count.svg?branch=master)](https://travis-ci.org/todvora/gitbook-plugin-image-captions) 4 | [![Dependencies Status](https://david-dm.org/todvora/gitbook-plugin-pageview-count/status.svg)](https://david-dm.org/todvora/gitbook-plugin-image-captions/) 5 | [![DevDependencies Status](https://david-dm.org/todvora/gitbook-plugin-pageview-count/dev-status.svg)](https://david-dm.org/todvora/gitbook-plugin-image-captions/#info=devDependencies) 6 | [![npm version](https://badge.fury.io/js/gitbook-plugin-pageview-count.svg)](https://badge.fury.io/js/gitbook-plugin-image-captions) 7 | 8 | 9 | 文档页面阅读数插件 10 | 11 | 12 | ## Installation 13 | In your book.json add the plugin: 14 | ```json 15 | { 16 | "plugins": [ 17 | "pageview-count" 18 | ] 19 | } 20 | ``` 21 | 22 | ### Changes 23 | 24 | 25 | #### 1.0.0 26 | - 初始化系统 -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-pageview-count/assets/plugin.css: -------------------------------------------------------------------------------- 1 | .page-view-wrapper .btn{ 2 | display: inline-block; 3 | } 4 | .page-view-counter{ 5 | margin-left: -14px; 6 | font-size: 15px; 7 | display:inline-block; 8 | } -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-pageview-count/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | website: { 3 | assets: './assets', 4 | js: [ 5 | 'plugin.js' 6 | ], 7 | css: [ 8 | 'plugin.css' 9 | ] 10 | } 11 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-popup/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-popup/README.md: -------------------------------------------------------------------------------- 1 | # Gitbook-plugin-popup 2 | 3 | 一个简单的 Gitbook 插件,在新窗口打开图片 4 | 5 | 6 | { 7 | "plugins": [ 8 | "popup" 9 | ] 10 | } -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-popup/index.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | hooks: { 4 | "page": function(page) { 5 | page.content = page.content + '\n'; 6 | return page; 7 | } 8 | } 9 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-search-pro/.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .history 3 | *.swp 4 | /examples -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-search-pro/_layouts/website/page.html: -------------------------------------------------------------------------------- 1 | {% extends template.self %} 2 | 3 | {% block search_input %} 4 | 7 | {% endblock %} 8 | 9 | {% block search_results %} 10 |
11 |
12 | {{ super() }} 13 |
14 |
15 |
16 | {% block search_has_results %} 17 |

{{ 'SEARCH_RESULTS_TITLE'|t|safe }}

18 |
    19 | {% endblock %} 20 |
    21 |
    22 | {% block search_no_results %} 23 |

    {{ 'SEARCH_NO_RESULTS_TITLE'|t|safe }}

    24 | {% endblock %} 25 |
    26 |
    27 |
    28 | {% endblock %} -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-search-pro/previews/search1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/node_modules/gitbook-plugin-search-pro/previews/search1.gif -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-search-pro/previews/search2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/node_modules/gitbook-plugin-search-pro/previews/search2.gif -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-search-pro/previews/search3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/node_modules/gitbook-plugin-search-pro/previews/search3.gif -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-sharing-plus/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "indent": [ 2, 4 ], 4 | "quotes": [ 2, "single" ], 5 | "linebreak-style": [ 2, "unix" ], 6 | "semi": [ 2, "always" ], 7 | "no-unused-vars": [ 2, { 8 | "vars": "all", 9 | "args": "none" 10 | } ], 11 | "spaced-comment": [ 2, "always" ] 12 | }, 13 | "env": { 14 | "node": true, 15 | "mocha": true, 16 | "browser": true 17 | }, 18 | "extends": "eslint:recommended" 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-sharing-plus/.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | .idea -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-sharing-plus/index.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'); 2 | 3 | module.exports = { 4 | book: { 5 | assets: './assets', 6 | js: [ 7 | 'buttons.js' 8 | ] 9 | }, 10 | hooks: { 11 | // Compatibility layer for gitbook < 2.5.0 12 | config: function(cfg) { 13 | var sharingLink = _.get(cfg, 'links.sharing', {}); 14 | cfg.pluginsConfig.sharing = _.defaults(cfg.pluginsConfig.sharing || {}, {}); 15 | 16 | _.each(sharingLink, function(enabled, type) { 17 | if (enabled != false) return; 18 | 19 | if (type == 'all') cfg.pluginsConfig.sharing[type] = []; 20 | else cfg.pluginsConfig.sharing[type] = false; 21 | }); 22 | 23 | return cfg; 24 | } 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-splitter/book/splitter.css: -------------------------------------------------------------------------------- 1 | .divider-content-summary { 2 | position: absolute; 3 | top: 0; 4 | right: 0; 5 | height: 100%; 6 | width: 5px; 7 | display: table; 8 | cursor: col-resize; 9 | color: #ccc; 10 | -webkit-transition: color 350ms ease; 11 | -moz-transition: color 350ms ease; 12 | -o-transition: color 350ms ease; 13 | transition: color 350ms ease 14 | } 15 | .divider-content-summary:hover { 16 | color: #444; 17 | } 18 | .divider-content-summary__icon { 19 | display: table-cell; 20 | vertical-align: middle; 21 | text-align: center; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-splitter/gitbook-splitter-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CPU-Code/notes/f6704eb142ac3a66888a49979a934b23961e152a/node_modules/gitbook-plugin-splitter/gitbook-splitter-demo.gif -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-splitter/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | website: { 3 | assets: './book', 4 | js: [ 5 | 'splitter.js' 6 | ], 7 | css: [ 8 | 'splitter.css' 9 | ] 10 | } 11 | }; -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-tbfed-pagefooter/README.md: -------------------------------------------------------------------------------- 1 | # gitbook-plugin-tbfed-pagefooter 2 | 3 | * 插件配置 4 | 5 | ```javascript 6 | "tbfed-pagefooter": { 7 | "copyright":"© Taobao FED Team", 8 | "modify_label": "该文件修订时间:", 9 | "modify_format": "YYYY-MM-DD HH:mm:ss" 10 | } 11 | ``` 12 | 13 | > copyright 和 modify_label 支持 html 代码 14 | -------------------------------------------------------------------------------- /node_modules/gitbook-plugin-tbfed-pagefooter/assets/footer.css: -------------------------------------------------------------------------------- 1 | .page-footer { 2 | margin-top: 50px; 3 | border-top: 1px solid #ccc; 4 | overflow: hidden; 5 | padding: 10px 0; 6 | font-size: 12px; 7 | color: #808080; 8 | } 9 | .page-footer a { 10 | color: #808080!important; 11 | text-decoration: underline!important; 12 | } 13 | .footer-modification { 14 | float: right; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/html-entities/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | XmlEntities: require('./lib/xml-entities.js'), 3 | Html4Entities: require('./lib/html4-entities.js'), 4 | Html5Entities: require('./lib/html5-entities.js'), 5 | AllHtmlEntities: require('./lib/html5-entities.js') 6 | }; 7 | -------------------------------------------------------------------------------- /node_modules/lodash/array/compact.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creates an array with all falsey values removed. The values `false`, `null`, 3 | * `0`, `""`, `undefined`, and `NaN` are falsey. 4 | * 5 | * @static 6 | * @memberOf _ 7 | * @category Array 8 | * @param {Array} array The array to compact. 9 | * @returns {Array} Returns the new array of filtered values. 10 | * @example 11 | * 12 | * _.compact([0, 1, false, 2, '', 3]); 13 | * // => [1, 2, 3] 14 | */ 15 | function compact(array) { 16 | var index = -1, 17 | length = array ? array.length : 0, 18 | resIndex = -1, 19 | result = []; 20 | 21 | while (++index < length) { 22 | var value = array[index]; 23 | if (value) { 24 | result[++resIndex] = value; 25 | } 26 | } 27 | return result; 28 | } 29 | 30 | module.exports = compact; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/array/first.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the first element of `array`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @alias head 7 | * @category Array 8 | * @param {Array} array The array to query. 9 | * @returns {*} Returns the first element of `array`. 10 | * @example 11 | * 12 | * _.first([1, 2, 3]); 13 | * // => 1 14 | * 15 | * _.first([]); 16 | * // => undefined 17 | */ 18 | function first(array) { 19 | return array ? array[0] : undefined; 20 | } 21 | 22 | module.exports = first; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/array/flattenDeep.js: -------------------------------------------------------------------------------- 1 | var baseFlatten = require('../internal/baseFlatten'); 2 | 3 | /** 4 | * Recursively flattens a nested array. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category Array 9 | * @param {Array} array The array to recursively flatten. 10 | * @returns {Array} Returns the new flattened array. 11 | * @example 12 | * 13 | * _.flattenDeep([1, [2, 3, [4]]]); 14 | * // => [1, 2, 3, 4] 15 | */ 16 | function flattenDeep(array) { 17 | var length = array ? array.length : 0; 18 | return length ? baseFlatten(array, true) : []; 19 | } 20 | 21 | module.exports = flattenDeep; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/array/head.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./first'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/array/initial.js: -------------------------------------------------------------------------------- 1 | var dropRight = require('./dropRight'); 2 | 3 | /** 4 | * Gets all but the last element of `array`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category Array 9 | * @param {Array} array The array to query. 10 | * @returns {Array} Returns the slice of `array`. 11 | * @example 12 | * 13 | * _.initial([1, 2, 3]); 14 | * // => [1, 2] 15 | */ 16 | function initial(array) { 17 | return dropRight(array, 1); 18 | } 19 | 20 | module.exports = initial; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/array/last.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the last element of `array`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Array 7 | * @param {Array} array The array to query. 8 | * @returns {*} Returns the last element of `array`. 9 | * @example 10 | * 11 | * _.last([1, 2, 3]); 12 | * // => 3 13 | */ 14 | function last(array) { 15 | var length = array ? array.length : 0; 16 | return length ? array[length - 1] : undefined; 17 | } 18 | 19 | module.exports = last; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/array/object.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./zipObject'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/array/rest.js: -------------------------------------------------------------------------------- 1 | var drop = require('./drop'); 2 | 3 | /** 4 | * Gets all but the first element of `array`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @alias tail 9 | * @category Array 10 | * @param {Array} array The array to query. 11 | * @returns {Array} Returns the slice of `array`. 12 | * @example 13 | * 14 | * _.rest([1, 2, 3]); 15 | * // => [2, 3] 16 | */ 17 | function rest(array) { 18 | return drop(array, 1); 19 | } 20 | 21 | module.exports = rest; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/array/sortedLastIndex.js: -------------------------------------------------------------------------------- 1 | var createSortedIndex = require('../internal/createSortedIndex'); 2 | 3 | /** 4 | * This method is like `_.sortedIndex` except that it returns the highest 5 | * index at which `value` should be inserted into `array` in order to 6 | * maintain its sort order. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Array 11 | * @param {Array} array The sorted array to inspect. 12 | * @param {*} value The value to evaluate. 13 | * @param {Function|Object|string} [iteratee=_.identity] The function invoked 14 | * per iteration. 15 | * @param {*} [thisArg] The `this` binding of `iteratee`. 16 | * @returns {number} Returns the index at which `value` should be inserted 17 | * into `array`. 18 | * @example 19 | * 20 | * _.sortedLastIndex([4, 4, 5, 5], 5); 21 | * // => 4 22 | */ 23 | var sortedLastIndex = createSortedIndex(true); 24 | 25 | module.exports = sortedLastIndex; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/array/tail.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./rest'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/array/union.js: -------------------------------------------------------------------------------- 1 | var baseFlatten = require('../internal/baseFlatten'), 2 | baseUniq = require('../internal/baseUniq'), 3 | restParam = require('../function/restParam'); 4 | 5 | /** 6 | * Creates an array of unique values, in order, from all of the provided arrays 7 | * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) 8 | * for equality comparisons. 9 | * 10 | * @static 11 | * @memberOf _ 12 | * @category Array 13 | * @param {...Array} [arrays] The arrays to inspect. 14 | * @returns {Array} Returns the new array of combined values. 15 | * @example 16 | * 17 | * _.union([1, 2], [4, 2], [2, 1]); 18 | * // => [1, 2, 4] 19 | */ 20 | var union = restParam(function(arrays) { 21 | return baseUniq(baseFlatten(arrays, false, true)); 22 | }); 23 | 24 | module.exports = union; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/array/unique.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./uniq'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/array/without.js: -------------------------------------------------------------------------------- 1 | var baseDifference = require('../internal/baseDifference'), 2 | isArrayLike = require('../internal/isArrayLike'), 3 | restParam = require('../function/restParam'); 4 | 5 | /** 6 | * Creates an array excluding all provided values using 7 | * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) 8 | * for equality comparisons. 9 | * 10 | * @static 11 | * @memberOf _ 12 | * @category Array 13 | * @param {Array} array The array to filter. 14 | * @param {...*} [values] The values to exclude. 15 | * @returns {Array} Returns the new array of filtered values. 16 | * @example 17 | * 18 | * _.without([1, 2, 1, 3], 1, 2); 19 | * // => [3] 20 | */ 21 | var without = restParam(function(array, values) { 22 | return isArrayLike(array) 23 | ? baseDifference(array, values) 24 | : []; 25 | }); 26 | 27 | module.exports = without; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/array/zip.js: -------------------------------------------------------------------------------- 1 | var restParam = require('../function/restParam'), 2 | unzip = require('./unzip'); 3 | 4 | /** 5 | * Creates an array of grouped elements, the first of which contains the first 6 | * elements of the given arrays, the second of which contains the second elements 7 | * of the given arrays, and so on. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Array 12 | * @param {...Array} [arrays] The arrays to process. 13 | * @returns {Array} Returns the new array of grouped elements. 14 | * @example 15 | * 16 | * _.zip(['fred', 'barney'], [30, 40], [true, false]); 17 | * // => [['fred', 30, true], ['barney', 40, false]] 18 | */ 19 | var zip = restParam(unzip); 20 | 21 | module.exports = zip; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/chain.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'chain': require('./chain/chain'), 3 | 'commit': require('./chain/commit'), 4 | 'concat': require('./chain/concat'), 5 | 'lodash': require('./chain/lodash'), 6 | 'plant': require('./chain/plant'), 7 | 'reverse': require('./chain/reverse'), 8 | 'run': require('./chain/run'), 9 | 'tap': require('./chain/tap'), 10 | 'thru': require('./chain/thru'), 11 | 'toJSON': require('./chain/toJSON'), 12 | 'toString': require('./chain/toString'), 13 | 'value': require('./chain/value'), 14 | 'valueOf': require('./chain/valueOf'), 15 | 'wrapperChain': require('./chain/wrapperChain') 16 | }; 17 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/chain.js: -------------------------------------------------------------------------------- 1 | var lodash = require('./lodash'); 2 | 3 | /** 4 | * Creates a `lodash` object that wraps `value` with explicit method 5 | * chaining enabled. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category Chain 10 | * @param {*} value The value to wrap. 11 | * @returns {Object} Returns the new `lodash` wrapper instance. 12 | * @example 13 | * 14 | * var users = [ 15 | * { 'user': 'barney', 'age': 36 }, 16 | * { 'user': 'fred', 'age': 40 }, 17 | * { 'user': 'pebbles', 'age': 1 } 18 | * ]; 19 | * 20 | * var youngest = _.chain(users) 21 | * .sortBy('age') 22 | * .map(function(chr) { 23 | * return chr.user + ' is ' + chr.age; 24 | * }) 25 | * .first() 26 | * .value(); 27 | * // => 'pebbles is 1' 28 | */ 29 | function chain(value) { 30 | var result = lodash(value); 31 | result.__chain__ = true; 32 | return result; 33 | } 34 | 35 | module.exports = chain; 36 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/commit.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperCommit'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/concat.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperConcat'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/plant.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperPlant'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/reverse.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperReverse'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/run.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperValue'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/tap.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This method invokes `interceptor` and returns `value`. The interceptor is 3 | * bound to `thisArg` and invoked with one argument; (value). The purpose of 4 | * this method is to "tap into" a method chain in order to perform operations 5 | * on intermediate results within the chain. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category Chain 10 | * @param {*} value The value to provide to `interceptor`. 11 | * @param {Function} interceptor The function to invoke. 12 | * @param {*} [thisArg] The `this` binding of `interceptor`. 13 | * @returns {*} Returns `value`. 14 | * @example 15 | * 16 | * _([1, 2, 3]) 17 | * .tap(function(array) { 18 | * array.pop(); 19 | * }) 20 | * .reverse() 21 | * .value(); 22 | * // => [2, 1] 23 | */ 24 | function tap(value, interceptor, thisArg) { 25 | interceptor.call(thisArg, value); 26 | return value; 27 | } 28 | 29 | module.exports = tap; 30 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/thru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This method is like `_.tap` except that it returns the result of `interceptor`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Chain 7 | * @param {*} value The value to provide to `interceptor`. 8 | * @param {Function} interceptor The function to invoke. 9 | * @param {*} [thisArg] The `this` binding of `interceptor`. 10 | * @returns {*} Returns the result of `interceptor`. 11 | * @example 12 | * 13 | * _(' abc ') 14 | * .chain() 15 | * .trim() 16 | * .thru(function(value) { 17 | * return [value]; 18 | * }) 19 | * .value(); 20 | * // => ['abc'] 21 | */ 22 | function thru(value, interceptor, thisArg) { 23 | return interceptor.call(thisArg, value); 24 | } 25 | 26 | module.exports = thru; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/toJSON.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperValue'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/toString.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperToString'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/value.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperValue'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/valueOf.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./wrapperValue'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/wrapperChain.js: -------------------------------------------------------------------------------- 1 | var chain = require('./chain'); 2 | 3 | /** 4 | * Enables explicit method chaining on the wrapper object. 5 | * 6 | * @name chain 7 | * @memberOf _ 8 | * @category Chain 9 | * @returns {Object} Returns the new `lodash` wrapper instance. 10 | * @example 11 | * 12 | * var users = [ 13 | * { 'user': 'barney', 'age': 36 }, 14 | * { 'user': 'fred', 'age': 40 } 15 | * ]; 16 | * 17 | * // without explicit chaining 18 | * _(users).first(); 19 | * // => { 'user': 'barney', 'age': 36 } 20 | * 21 | * // with explicit chaining 22 | * _(users).chain() 23 | * .first() 24 | * .pick('user') 25 | * .value(); 26 | * // => { 'user': 'barney' } 27 | */ 28 | function wrapperChain() { 29 | return chain(this); 30 | } 31 | 32 | module.exports = wrapperChain; 33 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/wrapperCommit.js: -------------------------------------------------------------------------------- 1 | var LodashWrapper = require('../internal/LodashWrapper'); 2 | 3 | /** 4 | * Executes the chained sequence and returns the wrapped result. 5 | * 6 | * @name commit 7 | * @memberOf _ 8 | * @category Chain 9 | * @returns {Object} Returns the new `lodash` wrapper instance. 10 | * @example 11 | * 12 | * var array = [1, 2]; 13 | * var wrapped = _(array).push(3); 14 | * 15 | * console.log(array); 16 | * // => [1, 2] 17 | * 18 | * wrapped = wrapped.commit(); 19 | * console.log(array); 20 | * // => [1, 2, 3] 21 | * 22 | * wrapped.last(); 23 | * // => 3 24 | * 25 | * console.log(array); 26 | * // => [1, 2, 3] 27 | */ 28 | function wrapperCommit() { 29 | return new LodashWrapper(this.value(), this.__chain__); 30 | } 31 | 32 | module.exports = wrapperCommit; 33 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/wrapperToString.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Produces the result of coercing the unwrapped value to a string. 3 | * 4 | * @name toString 5 | * @memberOf _ 6 | * @category Chain 7 | * @returns {string} Returns the coerced string value. 8 | * @example 9 | * 10 | * _([1, 2, 3]).toString(); 11 | * // => '1,2,3' 12 | */ 13 | function wrapperToString() { 14 | return (this.value() + ''); 15 | } 16 | 17 | module.exports = wrapperToString; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/chain/wrapperValue.js: -------------------------------------------------------------------------------- 1 | var baseWrapperValue = require('../internal/baseWrapperValue'); 2 | 3 | /** 4 | * Executes the chained sequence to extract the unwrapped value. 5 | * 6 | * @name value 7 | * @memberOf _ 8 | * @alias run, toJSON, valueOf 9 | * @category Chain 10 | * @returns {*} Returns the resolved unwrapped value. 11 | * @example 12 | * 13 | * _([1, 2, 3]).value(); 14 | * // => [1, 2, 3] 15 | */ 16 | function wrapperValue() { 17 | return baseWrapperValue(this.__wrapped__, this.__actions__); 18 | } 19 | 20 | module.exports = wrapperValue; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/all.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./every'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/any.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./some'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/collect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./map'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/contains.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./includes'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/detect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./find'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/each.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./forEach'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/eachRight.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./forEachRight'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/findLast.js: -------------------------------------------------------------------------------- 1 | var baseEachRight = require('../internal/baseEachRight'), 2 | createFind = require('../internal/createFind'); 3 | 4 | /** 5 | * This method is like `_.find` except that it iterates over elements of 6 | * `collection` from right to left. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Collection 11 | * @param {Array|Object|string} collection The collection to search. 12 | * @param {Function|Object|string} [predicate=_.identity] The function invoked 13 | * per iteration. 14 | * @param {*} [thisArg] The `this` binding of `predicate`. 15 | * @returns {*} Returns the matched element, else `undefined`. 16 | * @example 17 | * 18 | * _.findLast([1, 2, 3, 4], function(n) { 19 | * return n % 2 == 1; 20 | * }); 21 | * // => 3 22 | */ 23 | var findLast = createFind(baseEachRight, true); 24 | 25 | module.exports = findLast; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/foldl.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./reduce'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/foldr.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./reduceRight'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/include.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./includes'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/inject.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./reduce'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/max.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../math/max'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/min.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../math/min'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/pluck.js: -------------------------------------------------------------------------------- 1 | var map = require('./map'), 2 | property = require('../utility/property'); 3 | 4 | /** 5 | * Gets the property value of `path` from all elements in `collection`. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category Collection 10 | * @param {Array|Object|string} collection The collection to iterate over. 11 | * @param {Array|string} path The path of the property to pluck. 12 | * @returns {Array} Returns the property values. 13 | * @example 14 | * 15 | * var users = [ 16 | * { 'user': 'barney', 'age': 36 }, 17 | * { 'user': 'fred', 'age': 40 } 18 | * ]; 19 | * 20 | * _.pluck(users, 'user'); 21 | * // => ['barney', 'fred'] 22 | * 23 | * var userIndex = _.indexBy(users, 'user'); 24 | * _.pluck(userIndex, 'age'); 25 | * // => [36, 40] (iteration order is not guaranteed) 26 | */ 27 | function pluck(collection, path) { 28 | return map(collection, property(path)); 29 | } 30 | 31 | module.exports = pluck; 32 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/select.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./filter'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/shuffle.js: -------------------------------------------------------------------------------- 1 | var sample = require('./sample'); 2 | 3 | /** Used as references for `-Infinity` and `Infinity`. */ 4 | var POSITIVE_INFINITY = Number.POSITIVE_INFINITY; 5 | 6 | /** 7 | * Creates an array of shuffled values, using a version of the 8 | * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). 9 | * 10 | * @static 11 | * @memberOf _ 12 | * @category Collection 13 | * @param {Array|Object|string} collection The collection to shuffle. 14 | * @returns {Array} Returns the new shuffled array. 15 | * @example 16 | * 17 | * _.shuffle([1, 2, 3, 4]); 18 | * // => [4, 1, 3, 2] 19 | */ 20 | function shuffle(collection) { 21 | return sample(collection, POSITIVE_INFINITY); 22 | } 23 | 24 | module.exports = shuffle; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/size.js: -------------------------------------------------------------------------------- 1 | var getLength = require('../internal/getLength'), 2 | isLength = require('../internal/isLength'), 3 | keys = require('../object/keys'); 4 | 5 | /** 6 | * Gets the size of `collection` by returning its length for array-like 7 | * values or the number of own enumerable properties for objects. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Collection 12 | * @param {Array|Object|string} collection The collection to inspect. 13 | * @returns {number} Returns the size of `collection`. 14 | * @example 15 | * 16 | * _.size([1, 2, 3]); 17 | * // => 3 18 | * 19 | * _.size({ 'a': 1, 'b': 2 }); 20 | * // => 2 21 | * 22 | * _.size('pebbles'); 23 | * // => 7 24 | */ 25 | function size(collection) { 26 | var length = collection ? getLength(collection) : 0; 27 | return isLength(length) ? length : keys(collection).length; 28 | } 29 | 30 | module.exports = size; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/collection/sum.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../math/sum'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/date.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'now': require('./date/now') 3 | }; 4 | -------------------------------------------------------------------------------- /node_modules/lodash/date/now.js: -------------------------------------------------------------------------------- 1 | var getNative = require('../internal/getNative'); 2 | 3 | /* Native method references for those with the same name as other `lodash` methods. */ 4 | var nativeNow = getNative(Date, 'now'); 5 | 6 | /** 7 | * Gets the number of milliseconds that have elapsed since the Unix epoch 8 | * (1 January 1970 00:00:00 UTC). 9 | * 10 | * @static 11 | * @memberOf _ 12 | * @category Date 13 | * @example 14 | * 15 | * _.defer(function(stamp) { 16 | * console.log(_.now() - stamp); 17 | * }, _.now()); 18 | * // => logs the number of milliseconds it took for the deferred function to be invoked 19 | */ 20 | var now = nativeNow || function() { 21 | return new Date().getTime(); 22 | }; 23 | 24 | module.exports = now; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/function/backflow.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./flowRight'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/function/compose.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./flowRight'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/function/defer.js: -------------------------------------------------------------------------------- 1 | var baseDelay = require('../internal/baseDelay'), 2 | restParam = require('./restParam'); 3 | 4 | /** 5 | * Defers invoking the `func` until the current call stack has cleared. Any 6 | * additional arguments are provided to `func` when it's invoked. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Function 11 | * @param {Function} func The function to defer. 12 | * @param {...*} [args] The arguments to invoke the function with. 13 | * @returns {number} Returns the timer id. 14 | * @example 15 | * 16 | * _.defer(function(text) { 17 | * console.log(text); 18 | * }, 'deferred'); 19 | * // logs 'deferred' after one or more milliseconds 20 | */ 21 | var defer = restParam(function(func, args) { 22 | return baseDelay(func, 1, args); 23 | }); 24 | 25 | module.exports = defer; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/function/delay.js: -------------------------------------------------------------------------------- 1 | var baseDelay = require('../internal/baseDelay'), 2 | restParam = require('./restParam'); 3 | 4 | /** 5 | * Invokes `func` after `wait` milliseconds. Any additional arguments are 6 | * provided to `func` when it's invoked. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Function 11 | * @param {Function} func The function to delay. 12 | * @param {number} wait The number of milliseconds to delay invocation. 13 | * @param {...*} [args] The arguments to invoke the function with. 14 | * @returns {number} Returns the timer id. 15 | * @example 16 | * 17 | * _.delay(function(text) { 18 | * console.log(text); 19 | * }, 1000, 'later'); 20 | * // => logs 'later' after one second 21 | */ 22 | var delay = restParam(function(func, wait, args) { 23 | return baseDelay(func, wait, args); 24 | }); 25 | 26 | module.exports = delay; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/function/flow.js: -------------------------------------------------------------------------------- 1 | var createFlow = require('../internal/createFlow'); 2 | 3 | /** 4 | * Creates a function that returns the result of invoking the provided 5 | * functions with the `this` binding of the created function, where each 6 | * successive invocation is supplied the return value of the previous. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Function 11 | * @param {...Function} [funcs] Functions to invoke. 12 | * @returns {Function} Returns the new function. 13 | * @example 14 | * 15 | * function square(n) { 16 | * return n * n; 17 | * } 18 | * 19 | * var addSquare = _.flow(_.add, square); 20 | * addSquare(1, 2); 21 | * // => 9 22 | */ 23 | var flow = createFlow(); 24 | 25 | module.exports = flow; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/function/flowRight.js: -------------------------------------------------------------------------------- 1 | var createFlow = require('../internal/createFlow'); 2 | 3 | /** 4 | * This method is like `_.flow` except that it creates a function that 5 | * invokes the provided functions from right to left. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @alias backflow, compose 10 | * @category Function 11 | * @param {...Function} [funcs] Functions to invoke. 12 | * @returns {Function} Returns the new function. 13 | * @example 14 | * 15 | * function square(n) { 16 | * return n * n; 17 | * } 18 | * 19 | * var addSquare = _.flowRight(square, _.add); 20 | * addSquare(1, 2); 21 | * // => 9 22 | */ 23 | var flowRight = createFlow(true); 24 | 25 | module.exports = flowRight; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/function/negate.js: -------------------------------------------------------------------------------- 1 | /** Used as the `TypeError` message for "Functions" methods. */ 2 | var FUNC_ERROR_TEXT = 'Expected a function'; 3 | 4 | /** 5 | * Creates a function that negates the result of the predicate `func`. The 6 | * `func` predicate is invoked with the `this` binding and arguments of the 7 | * created function. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Function 12 | * @param {Function} predicate The predicate to negate. 13 | * @returns {Function} Returns the new function. 14 | * @example 15 | * 16 | * function isEven(n) { 17 | * return n % 2 == 0; 18 | * } 19 | * 20 | * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 21 | * // => [1, 3, 5] 22 | */ 23 | function negate(predicate) { 24 | if (typeof predicate != 'function') { 25 | throw new TypeError(FUNC_ERROR_TEXT); 26 | } 27 | return function() { 28 | return !predicate.apply(this, arguments); 29 | }; 30 | } 31 | 32 | module.exports = negate; 33 | -------------------------------------------------------------------------------- /node_modules/lodash/function/once.js: -------------------------------------------------------------------------------- 1 | var before = require('./before'); 2 | 3 | /** 4 | * Creates a function that is restricted to invoking `func` once. Repeat calls 5 | * to the function return the value of the first call. The `func` is invoked 6 | * with the `this` binding and arguments of the created function. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Function 11 | * @param {Function} func The function to restrict. 12 | * @returns {Function} Returns the new restricted function. 13 | * @example 14 | * 15 | * var initialize = _.once(createApplication); 16 | * initialize(); 17 | * initialize(); 18 | * // `initialize` invokes `createApplication` once 19 | */ 20 | function once(func) { 21 | return before(2, func); 22 | } 23 | 24 | module.exports = once; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/LazyWrapper.js: -------------------------------------------------------------------------------- 1 | var baseCreate = require('./baseCreate'), 2 | baseLodash = require('./baseLodash'); 3 | 4 | /** Used as references for `-Infinity` and `Infinity`. */ 5 | var POSITIVE_INFINITY = Number.POSITIVE_INFINITY; 6 | 7 | /** 8 | * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 9 | * 10 | * @private 11 | * @param {*} value The value to wrap. 12 | */ 13 | function LazyWrapper(value) { 14 | this.__wrapped__ = value; 15 | this.__actions__ = []; 16 | this.__dir__ = 1; 17 | this.__filtered__ = false; 18 | this.__iteratees__ = []; 19 | this.__takeCount__ = POSITIVE_INFINITY; 20 | this.__views__ = []; 21 | } 22 | 23 | LazyWrapper.prototype = baseCreate(baseLodash.prototype); 24 | LazyWrapper.prototype.constructor = LazyWrapper; 25 | 26 | module.exports = LazyWrapper; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/LodashWrapper.js: -------------------------------------------------------------------------------- 1 | var baseCreate = require('./baseCreate'), 2 | baseLodash = require('./baseLodash'); 3 | 4 | /** 5 | * The base constructor for creating `lodash` wrapper objects. 6 | * 7 | * @private 8 | * @param {*} value The value to wrap. 9 | * @param {boolean} [chainAll] Enable chaining for all wrapper methods. 10 | * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. 11 | */ 12 | function LodashWrapper(value, chainAll, actions) { 13 | this.__wrapped__ = value; 14 | this.__actions__ = actions || []; 15 | this.__chain__ = !!chainAll; 16 | } 17 | 18 | LodashWrapper.prototype = baseCreate(baseLodash.prototype); 19 | LodashWrapper.prototype.constructor = LodashWrapper; 20 | 21 | module.exports = LodashWrapper; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/MapCache.js: -------------------------------------------------------------------------------- 1 | var mapDelete = require('./mapDelete'), 2 | mapGet = require('./mapGet'), 3 | mapHas = require('./mapHas'), 4 | mapSet = require('./mapSet'); 5 | 6 | /** 7 | * Creates a cache object to store key/value pairs. 8 | * 9 | * @private 10 | * @static 11 | * @name Cache 12 | * @memberOf _.memoize 13 | */ 14 | function MapCache() { 15 | this.__data__ = {}; 16 | } 17 | 18 | // Add functions to the `Map` cache. 19 | MapCache.prototype['delete'] = mapDelete; 20 | MapCache.prototype.get = mapGet; 21 | MapCache.prototype.has = mapHas; 22 | MapCache.prototype.set = mapSet; 23 | 24 | module.exports = MapCache; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/SetCache.js: -------------------------------------------------------------------------------- 1 | var cachePush = require('./cachePush'), 2 | getNative = require('./getNative'); 3 | 4 | /** Native method references. */ 5 | var Set = getNative(global, 'Set'); 6 | 7 | /* Native method references for those with the same name as other `lodash` methods. */ 8 | var nativeCreate = getNative(Object, 'create'); 9 | 10 | /** 11 | * 12 | * Creates a cache object to store unique values. 13 | * 14 | * @private 15 | * @param {Array} [values] The values to cache. 16 | */ 17 | function SetCache(values) { 18 | var length = values ? values.length : 0; 19 | 20 | this.data = { 'hash': nativeCreate(null), 'set': new Set }; 21 | while (length--) { 22 | this.push(values[length]); 23 | } 24 | } 25 | 26 | // Add functions to the `Set` cache. 27 | SetCache.prototype.push = cachePush; 28 | 29 | module.exports = SetCache; 30 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayConcat.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creates a new array joining `array` with `other`. 3 | * 4 | * @private 5 | * @param {Array} array The array to join. 6 | * @param {Array} other The other array to join. 7 | * @returns {Array} Returns the new concatenated array. 8 | */ 9 | function arrayConcat(array, other) { 10 | var index = -1, 11 | length = array.length, 12 | othIndex = -1, 13 | othLength = other.length, 14 | result = Array(length + othLength); 15 | 16 | while (++index < length) { 17 | result[index] = array[index]; 18 | } 19 | while (++othIndex < othLength) { 20 | result[index++] = other[othIndex]; 21 | } 22 | return result; 23 | } 24 | 25 | module.exports = arrayConcat; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayCopy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copies the values of `source` to `array`. 3 | * 4 | * @private 5 | * @param {Array} source The array to copy values from. 6 | * @param {Array} [array=[]] The array to copy values to. 7 | * @returns {Array} Returns `array`. 8 | */ 9 | function arrayCopy(source, array) { 10 | var index = -1, 11 | length = source.length; 12 | 13 | array || (array = Array(length)); 14 | while (++index < length) { 15 | array[index] = source[index]; 16 | } 17 | return array; 18 | } 19 | 20 | module.exports = arrayCopy; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayEach.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.forEach` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @returns {Array} Returns `array`. 9 | */ 10 | function arrayEach(array, iteratee) { 11 | var index = -1, 12 | length = array.length; 13 | 14 | while (++index < length) { 15 | if (iteratee(array[index], index, array) === false) { 16 | break; 17 | } 18 | } 19 | return array; 20 | } 21 | 22 | module.exports = arrayEach; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayEachRight.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.forEachRight` for arrays without support for 3 | * callback shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @returns {Array} Returns `array`. 9 | */ 10 | function arrayEachRight(array, iteratee) { 11 | var length = array.length; 12 | 13 | while (length--) { 14 | if (iteratee(array[length], length, array) === false) { 15 | break; 16 | } 17 | } 18 | return array; 19 | } 20 | 21 | module.exports = arrayEachRight; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayEvery.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.every` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} predicate The function invoked per iteration. 8 | * @returns {boolean} Returns `true` if all elements pass the predicate check, 9 | * else `false`. 10 | */ 11 | function arrayEvery(array, predicate) { 12 | var index = -1, 13 | length = array.length; 14 | 15 | while (++index < length) { 16 | if (!predicate(array[index], index, array)) { 17 | return false; 18 | } 19 | } 20 | return true; 21 | } 22 | 23 | module.exports = arrayEvery; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayExtremum.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `baseExtremum` for arrays which invokes `iteratee` 3 | * with one argument: (value). 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @param {Function} comparator The function used to compare values. 9 | * @param {*} exValue The initial extremum value. 10 | * @returns {*} Returns the extremum value. 11 | */ 12 | function arrayExtremum(array, iteratee, comparator, exValue) { 13 | var index = -1, 14 | length = array.length, 15 | computed = exValue, 16 | result = computed; 17 | 18 | while (++index < length) { 19 | var value = array[index], 20 | current = +iteratee(value); 21 | 22 | if (comparator(current, computed)) { 23 | computed = current; 24 | result = value; 25 | } 26 | } 27 | return result; 28 | } 29 | 30 | module.exports = arrayExtremum; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayFilter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.filter` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} predicate The function invoked per iteration. 8 | * @returns {Array} Returns the new filtered array. 9 | */ 10 | function arrayFilter(array, predicate) { 11 | var index = -1, 12 | length = array.length, 13 | resIndex = -1, 14 | result = []; 15 | 16 | while (++index < length) { 17 | var value = array[index]; 18 | if (predicate(value, index, array)) { 19 | result[++resIndex] = value; 20 | } 21 | } 22 | return result; 23 | } 24 | 25 | module.exports = arrayFilter; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayMap.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.map` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @returns {Array} Returns the new mapped array. 9 | */ 10 | function arrayMap(array, iteratee) { 11 | var index = -1, 12 | length = array.length, 13 | result = Array(length); 14 | 15 | while (++index < length) { 16 | result[index] = iteratee(array[index], index, array); 17 | } 18 | return result; 19 | } 20 | 21 | module.exports = arrayMap; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayPush.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Appends the elements of `values` to `array`. 3 | * 4 | * @private 5 | * @param {Array} array The array to modify. 6 | * @param {Array} values The values to append. 7 | * @returns {Array} Returns `array`. 8 | */ 9 | function arrayPush(array, values) { 10 | var index = -1, 11 | length = values.length, 12 | offset = array.length; 13 | 14 | while (++index < length) { 15 | array[offset + index] = values[index]; 16 | } 17 | return array; 18 | } 19 | 20 | module.exports = arrayPush; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayReduce.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.reduce` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @param {*} [accumulator] The initial value. 9 | * @param {boolean} [initFromArray] Specify using the first element of `array` 10 | * as the initial value. 11 | * @returns {*} Returns the accumulated value. 12 | */ 13 | function arrayReduce(array, iteratee, accumulator, initFromArray) { 14 | var index = -1, 15 | length = array.length; 16 | 17 | if (initFromArray && length) { 18 | accumulator = array[++index]; 19 | } 20 | while (++index < length) { 21 | accumulator = iteratee(accumulator, array[index], index, array); 22 | } 23 | return accumulator; 24 | } 25 | 26 | module.exports = arrayReduce; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arrayReduceRight.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.reduceRight` for arrays without support for 3 | * callback shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @param {*} [accumulator] The initial value. 9 | * @param {boolean} [initFromArray] Specify using the last element of `array` 10 | * as the initial value. 11 | * @returns {*} Returns the accumulated value. 12 | */ 13 | function arrayReduceRight(array, iteratee, accumulator, initFromArray) { 14 | var length = array.length; 15 | if (initFromArray && length) { 16 | accumulator = array[--length]; 17 | } 18 | while (length--) { 19 | accumulator = iteratee(accumulator, array[length], length, array); 20 | } 21 | return accumulator; 22 | } 23 | 24 | module.exports = arrayReduceRight; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arraySome.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.some` for arrays without support for callback 3 | * shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} predicate The function invoked per iteration. 8 | * @returns {boolean} Returns `true` if any element passes the predicate check, 9 | * else `false`. 10 | */ 11 | function arraySome(array, predicate) { 12 | var index = -1, 13 | length = array.length; 14 | 15 | while (++index < length) { 16 | if (predicate(array[index], index, array)) { 17 | return true; 18 | } 19 | } 20 | return false; 21 | } 22 | 23 | module.exports = arraySome; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/arraySum.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A specialized version of `_.sum` for arrays without support for callback 3 | * shorthands and `this` binding.. 4 | * 5 | * @private 6 | * @param {Array} array The array to iterate over. 7 | * @param {Function} iteratee The function invoked per iteration. 8 | * @returns {number} Returns the sum. 9 | */ 10 | function arraySum(array, iteratee) { 11 | var length = array.length, 12 | result = 0; 13 | 14 | while (length--) { 15 | result += +iteratee(array[length]) || 0; 16 | } 17 | return result; 18 | } 19 | 20 | module.exports = arraySum; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/assignDefaults.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Used by `_.defaults` to customize its `_.assign` use. 3 | * 4 | * @private 5 | * @param {*} objectValue The destination object property value. 6 | * @param {*} sourceValue The source object property value. 7 | * @returns {*} Returns the value to assign to the destination object. 8 | */ 9 | function assignDefaults(objectValue, sourceValue) { 10 | return objectValue === undefined ? sourceValue : objectValue; 11 | } 12 | 13 | module.exports = assignDefaults; 14 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseAssign.js: -------------------------------------------------------------------------------- 1 | var baseCopy = require('./baseCopy'), 2 | keys = require('../object/keys'); 3 | 4 | /** 5 | * The base implementation of `_.assign` without support for argument juggling, 6 | * multiple sources, and `customizer` functions. 7 | * 8 | * @private 9 | * @param {Object} object The destination object. 10 | * @param {Object} source The source object. 11 | * @returns {Object} Returns `object`. 12 | */ 13 | function baseAssign(object, source) { 14 | return source == null 15 | ? object 16 | : baseCopy(source, keys(source), object); 17 | } 18 | 19 | module.exports = baseAssign; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseCopy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copies properties of `source` to `object`. 3 | * 4 | * @private 5 | * @param {Object} source The object to copy properties from. 6 | * @param {Array} props The property names to copy. 7 | * @param {Object} [object={}] The object to copy properties to. 8 | * @returns {Object} Returns `object`. 9 | */ 10 | function baseCopy(source, props, object) { 11 | object || (object = {}); 12 | 13 | var index = -1, 14 | length = props.length; 15 | 16 | while (++index < length) { 17 | var key = props[index]; 18 | object[key] = source[key]; 19 | } 20 | return object; 21 | } 22 | 23 | module.exports = baseCopy; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseCreate.js: -------------------------------------------------------------------------------- 1 | var isObject = require('../lang/isObject'); 2 | 3 | /** 4 | * The base implementation of `_.create` without support for assigning 5 | * properties to the created object. 6 | * 7 | * @private 8 | * @param {Object} prototype The object to inherit from. 9 | * @returns {Object} Returns the new object. 10 | */ 11 | var baseCreate = (function() { 12 | function object() {} 13 | return function(prototype) { 14 | if (isObject(prototype)) { 15 | object.prototype = prototype; 16 | var result = new object; 17 | object.prototype = undefined; 18 | } 19 | return result || {}; 20 | }; 21 | }()); 22 | 23 | module.exports = baseCreate; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseDelay.js: -------------------------------------------------------------------------------- 1 | /** Used as the `TypeError` message for "Functions" methods. */ 2 | var FUNC_ERROR_TEXT = 'Expected a function'; 3 | 4 | /** 5 | * The base implementation of `_.delay` and `_.defer` which accepts an index 6 | * of where to slice the arguments to provide to `func`. 7 | * 8 | * @private 9 | * @param {Function} func The function to delay. 10 | * @param {number} wait The number of milliseconds to delay invocation. 11 | * @param {Object} args The arguments provide to `func`. 12 | * @returns {number} Returns the timer id. 13 | */ 14 | function baseDelay(func, wait, args) { 15 | if (typeof func != 'function') { 16 | throw new TypeError(FUNC_ERROR_TEXT); 17 | } 18 | return setTimeout(function() { func.apply(undefined, args); }, wait); 19 | } 20 | 21 | module.exports = baseDelay; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseEach.js: -------------------------------------------------------------------------------- 1 | var baseForOwn = require('./baseForOwn'), 2 | createBaseEach = require('./createBaseEach'); 3 | 4 | /** 5 | * The base implementation of `_.forEach` without support for callback 6 | * shorthands and `this` binding. 7 | * 8 | * @private 9 | * @param {Array|Object|string} collection The collection to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Array|Object|string} Returns `collection`. 12 | */ 13 | var baseEach = createBaseEach(baseForOwn); 14 | 15 | module.exports = baseEach; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseEachRight.js: -------------------------------------------------------------------------------- 1 | var baseForOwnRight = require('./baseForOwnRight'), 2 | createBaseEach = require('./createBaseEach'); 3 | 4 | /** 5 | * The base implementation of `_.forEachRight` without support for callback 6 | * shorthands and `this` binding. 7 | * 8 | * @private 9 | * @param {Array|Object|string} collection The collection to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Array|Object|string} Returns `collection`. 12 | */ 13 | var baseEachRight = createBaseEach(baseForOwnRight, true); 14 | 15 | module.exports = baseEachRight; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseEvery.js: -------------------------------------------------------------------------------- 1 | var baseEach = require('./baseEach'); 2 | 3 | /** 4 | * The base implementation of `_.every` without support for callback 5 | * shorthands and `this` binding. 6 | * 7 | * @private 8 | * @param {Array|Object|string} collection The collection to iterate over. 9 | * @param {Function} predicate The function invoked per iteration. 10 | * @returns {boolean} Returns `true` if all elements pass the predicate check, 11 | * else `false` 12 | */ 13 | function baseEvery(collection, predicate) { 14 | var result = true; 15 | baseEach(collection, function(value, index, collection) { 16 | result = !!predicate(value, index, collection); 17 | return result; 18 | }); 19 | return result; 20 | } 21 | 22 | module.exports = baseEvery; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseFill.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.fill` without an iteratee call guard. 3 | * 4 | * @private 5 | * @param {Array} array The array to fill. 6 | * @param {*} value The value to fill `array` with. 7 | * @param {number} [start=0] The start position. 8 | * @param {number} [end=array.length] The end position. 9 | * @returns {Array} Returns `array`. 10 | */ 11 | function baseFill(array, value, start, end) { 12 | var length = array.length; 13 | 14 | start = start == null ? 0 : (+start || 0); 15 | if (start < 0) { 16 | start = -start > length ? 0 : (length + start); 17 | } 18 | end = (end === undefined || end > length) ? length : (+end || 0); 19 | if (end < 0) { 20 | end += length; 21 | } 22 | length = start > end ? 0 : (end >>> 0); 23 | start >>>= 0; 24 | 25 | while (start < length) { 26 | array[start++] = value; 27 | } 28 | return array; 29 | } 30 | 31 | module.exports = baseFill; 32 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseFilter.js: -------------------------------------------------------------------------------- 1 | var baseEach = require('./baseEach'); 2 | 3 | /** 4 | * The base implementation of `_.filter` without support for callback 5 | * shorthands and `this` binding. 6 | * 7 | * @private 8 | * @param {Array|Object|string} collection The collection to iterate over. 9 | * @param {Function} predicate The function invoked per iteration. 10 | * @returns {Array} Returns the new filtered array. 11 | */ 12 | function baseFilter(collection, predicate) { 13 | var result = []; 14 | baseEach(collection, function(value, index, collection) { 15 | if (predicate(value, index, collection)) { 16 | result.push(value); 17 | } 18 | }); 19 | return result; 20 | } 21 | 22 | module.exports = baseFilter; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseFindIndex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.findIndex` and `_.findLastIndex` without 3 | * support for callback shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to search. 7 | * @param {Function} predicate The function invoked per iteration. 8 | * @param {boolean} [fromRight] Specify iterating from right to left. 9 | * @returns {number} Returns the index of the matched value, else `-1`. 10 | */ 11 | function baseFindIndex(array, predicate, fromRight) { 12 | var length = array.length, 13 | index = fromRight ? length : -1; 14 | 15 | while ((fromRight ? index-- : ++index < length)) { 16 | if (predicate(array[index], index, array)) { 17 | return index; 18 | } 19 | } 20 | return -1; 21 | } 22 | 23 | module.exports = baseFindIndex; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseFor.js: -------------------------------------------------------------------------------- 1 | var createBaseFor = require('./createBaseFor'); 2 | 3 | /** 4 | * The base implementation of `baseForIn` and `baseForOwn` which iterates 5 | * over `object` properties returned by `keysFunc` invoking `iteratee` for 6 | * each property. Iteratee functions may exit iteration early by explicitly 7 | * returning `false`. 8 | * 9 | * @private 10 | * @param {Object} object The object to iterate over. 11 | * @param {Function} iteratee The function invoked per iteration. 12 | * @param {Function} keysFunc The function to get the keys of `object`. 13 | * @returns {Object} Returns `object`. 14 | */ 15 | var baseFor = createBaseFor(); 16 | 17 | module.exports = baseFor; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseForIn.js: -------------------------------------------------------------------------------- 1 | var baseFor = require('./baseFor'), 2 | keysIn = require('../object/keysIn'); 3 | 4 | /** 5 | * The base implementation of `_.forIn` without support for callback 6 | * shorthands and `this` binding. 7 | * 8 | * @private 9 | * @param {Object} object The object to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Object} Returns `object`. 12 | */ 13 | function baseForIn(object, iteratee) { 14 | return baseFor(object, iteratee, keysIn); 15 | } 16 | 17 | module.exports = baseForIn; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseForOwn.js: -------------------------------------------------------------------------------- 1 | var baseFor = require('./baseFor'), 2 | keys = require('../object/keys'); 3 | 4 | /** 5 | * The base implementation of `_.forOwn` without support for callback 6 | * shorthands and `this` binding. 7 | * 8 | * @private 9 | * @param {Object} object The object to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Object} Returns `object`. 12 | */ 13 | function baseForOwn(object, iteratee) { 14 | return baseFor(object, iteratee, keys); 15 | } 16 | 17 | module.exports = baseForOwn; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseForOwnRight.js: -------------------------------------------------------------------------------- 1 | var baseForRight = require('./baseForRight'), 2 | keys = require('../object/keys'); 3 | 4 | /** 5 | * The base implementation of `_.forOwnRight` without support for callback 6 | * shorthands and `this` binding. 7 | * 8 | * @private 9 | * @param {Object} object The object to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Object} Returns `object`. 12 | */ 13 | function baseForOwnRight(object, iteratee) { 14 | return baseForRight(object, iteratee, keys); 15 | } 16 | 17 | module.exports = baseForOwnRight; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseForRight.js: -------------------------------------------------------------------------------- 1 | var createBaseFor = require('./createBaseFor'); 2 | 3 | /** 4 | * This function is like `baseFor` except that it iterates over properties 5 | * in the opposite order. 6 | * 7 | * @private 8 | * @param {Object} object The object to iterate over. 9 | * @param {Function} iteratee The function invoked per iteration. 10 | * @param {Function} keysFunc The function to get the keys of `object`. 11 | * @returns {Object} Returns `object`. 12 | */ 13 | var baseForRight = createBaseFor(true); 14 | 15 | module.exports = baseForRight; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseFunctions.js: -------------------------------------------------------------------------------- 1 | var isFunction = require('../lang/isFunction'); 2 | 3 | /** 4 | * The base implementation of `_.functions` which creates an array of 5 | * `object` function property names filtered from those provided. 6 | * 7 | * @private 8 | * @param {Object} object The object to inspect. 9 | * @param {Array} props The property names to filter. 10 | * @returns {Array} Returns the new array of filtered property names. 11 | */ 12 | function baseFunctions(object, props) { 13 | var index = -1, 14 | length = props.length, 15 | resIndex = -1, 16 | result = []; 17 | 18 | while (++index < length) { 19 | var key = props[index]; 20 | if (isFunction(object[key])) { 21 | result[++resIndex] = key; 22 | } 23 | } 24 | return result; 25 | } 26 | 27 | module.exports = baseFunctions; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseGet.js: -------------------------------------------------------------------------------- 1 | var toObject = require('./toObject'); 2 | 3 | /** 4 | * The base implementation of `get` without support for string paths 5 | * and default values. 6 | * 7 | * @private 8 | * @param {Object} object The object to query. 9 | * @param {Array} path The path of the property to get. 10 | * @param {string} [pathKey] The key representation of path. 11 | * @returns {*} Returns the resolved value. 12 | */ 13 | function baseGet(object, path, pathKey) { 14 | if (object == null) { 15 | return; 16 | } 17 | if (pathKey !== undefined && pathKey in toObject(object)) { 18 | path = [pathKey]; 19 | } 20 | var index = 0, 21 | length = path.length; 22 | 23 | while (object != null && index < length) { 24 | object = object[path[index++]]; 25 | } 26 | return (index && index == length) ? object : undefined; 27 | } 28 | 29 | module.exports = baseGet; 30 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseIndexOf.js: -------------------------------------------------------------------------------- 1 | var indexOfNaN = require('./indexOfNaN'); 2 | 3 | /** 4 | * The base implementation of `_.indexOf` without support for binary searches. 5 | * 6 | * @private 7 | * @param {Array} array The array to search. 8 | * @param {*} value The value to search for. 9 | * @param {number} fromIndex The index to search from. 10 | * @returns {number} Returns the index of the matched value, else `-1`. 11 | */ 12 | function baseIndexOf(array, value, fromIndex) { 13 | if (value !== value) { 14 | return indexOfNaN(array, fromIndex); 15 | } 16 | var index = fromIndex - 1, 17 | length = array.length; 18 | 19 | while (++index < length) { 20 | if (array[index] === value) { 21 | return index; 22 | } 23 | } 24 | return -1; 25 | } 26 | 27 | module.exports = baseIndexOf; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseIsFunction.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.isFunction` without support for environments 3 | * with incorrect `typeof` results. 4 | * 5 | * @private 6 | * @param {*} value The value to check. 7 | * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. 8 | */ 9 | function baseIsFunction(value) { 10 | // Avoid a Chakra JIT bug in compatibility modes of IE 11. 11 | // See https://github.com/jashkenas/underscore/issues/1621 for more details. 12 | return typeof value == 'function' || false; 13 | } 14 | 15 | module.exports = baseIsFunction; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseLodash.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The function whose prototype all chaining wrappers inherit from. 3 | * 4 | * @private 5 | */ 6 | function baseLodash() { 7 | // No operation performed. 8 | } 9 | 10 | module.exports = baseLodash; 11 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseMap.js: -------------------------------------------------------------------------------- 1 | var baseEach = require('./baseEach'), 2 | isArrayLike = require('./isArrayLike'); 3 | 4 | /** 5 | * The base implementation of `_.map` without support for callback shorthands 6 | * and `this` binding. 7 | * 8 | * @private 9 | * @param {Array|Object|string} collection The collection to iterate over. 10 | * @param {Function} iteratee The function invoked per iteration. 11 | * @returns {Array} Returns the new mapped array. 12 | */ 13 | function baseMap(collection, iteratee) { 14 | var index = -1, 15 | result = isArrayLike(collection) ? Array(collection.length) : []; 16 | 17 | baseEach(collection, function(value, key, collection) { 18 | result[++index] = iteratee(value, key, collection); 19 | }); 20 | return result; 21 | } 22 | 23 | module.exports = baseMap; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseMatches.js: -------------------------------------------------------------------------------- 1 | var baseIsMatch = require('./baseIsMatch'), 2 | getMatchData = require('./getMatchData'), 3 | toObject = require('./toObject'); 4 | 5 | /** 6 | * The base implementation of `_.matches` which does not clone `source`. 7 | * 8 | * @private 9 | * @param {Object} source The object of property values to match. 10 | * @returns {Function} Returns the new function. 11 | */ 12 | function baseMatches(source) { 13 | var matchData = getMatchData(source); 14 | if (matchData.length == 1 && matchData[0][2]) { 15 | var key = matchData[0][0], 16 | value = matchData[0][1]; 17 | 18 | return function(object) { 19 | if (object == null) { 20 | return false; 21 | } 22 | return object[key] === value && (value !== undefined || (key in toObject(object))); 23 | }; 24 | } 25 | return function(object) { 26 | return baseIsMatch(object, matchData); 27 | }; 28 | } 29 | 30 | module.exports = baseMatches; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseProperty.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.property` without support for deep paths. 3 | * 4 | * @private 5 | * @param {string} key The key of the property to get. 6 | * @returns {Function} Returns the new function. 7 | */ 8 | function baseProperty(key) { 9 | return function(object) { 10 | return object == null ? undefined : object[key]; 11 | }; 12 | } 13 | 14 | module.exports = baseProperty; 15 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/basePropertyDeep.js: -------------------------------------------------------------------------------- 1 | var baseGet = require('./baseGet'), 2 | toPath = require('./toPath'); 3 | 4 | /** 5 | * A specialized version of `baseProperty` which supports deep paths. 6 | * 7 | * @private 8 | * @param {Array|string} path The path of the property to get. 9 | * @returns {Function} Returns the new function. 10 | */ 11 | function basePropertyDeep(path) { 12 | var pathKey = (path + ''); 13 | path = toPath(path); 14 | return function(object) { 15 | return baseGet(object, path, pathKey); 16 | }; 17 | } 18 | 19 | module.exports = basePropertyDeep; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/basePullAt.js: -------------------------------------------------------------------------------- 1 | var isIndex = require('./isIndex'); 2 | 3 | /** Used for native method references. */ 4 | var arrayProto = Array.prototype; 5 | 6 | /** Native method references. */ 7 | var splice = arrayProto.splice; 8 | 9 | /** 10 | * The base implementation of `_.pullAt` without support for individual 11 | * index arguments and capturing the removed elements. 12 | * 13 | * @private 14 | * @param {Array} array The array to modify. 15 | * @param {number[]} indexes The indexes of elements to remove. 16 | * @returns {Array} Returns `array`. 17 | */ 18 | function basePullAt(array, indexes) { 19 | var length = array ? indexes.length : 0; 20 | while (length--) { 21 | var index = indexes[length]; 22 | if (index != previous && isIndex(index)) { 23 | var previous = index; 24 | splice.call(array, index, 1); 25 | } 26 | } 27 | return array; 28 | } 29 | 30 | module.exports = basePullAt; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseRandom.js: -------------------------------------------------------------------------------- 1 | /* Native method references for those with the same name as other `lodash` methods. */ 2 | var nativeFloor = Math.floor, 3 | nativeRandom = Math.random; 4 | 5 | /** 6 | * The base implementation of `_.random` without support for argument juggling 7 | * and returning floating-point numbers. 8 | * 9 | * @private 10 | * @param {number} min The minimum possible value. 11 | * @param {number} max The maximum possible value. 12 | * @returns {number} Returns the random number. 13 | */ 14 | function baseRandom(min, max) { 15 | return min + nativeFloor(nativeRandom() * (max - min + 1)); 16 | } 17 | 18 | module.exports = baseRandom; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseSetData.js: -------------------------------------------------------------------------------- 1 | var identity = require('../utility/identity'), 2 | metaMap = require('./metaMap'); 3 | 4 | /** 5 | * The base implementation of `setData` without support for hot loop detection. 6 | * 7 | * @private 8 | * @param {Function} func The function to associate metadata with. 9 | * @param {*} data The metadata. 10 | * @returns {Function} Returns `func`. 11 | */ 12 | var baseSetData = !metaMap ? identity : function(func, data) { 13 | metaMap.set(func, data); 14 | return func; 15 | }; 16 | 17 | module.exports = baseSetData; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseSome.js: -------------------------------------------------------------------------------- 1 | var baseEach = require('./baseEach'); 2 | 3 | /** 4 | * The base implementation of `_.some` without support for callback shorthands 5 | * and `this` binding. 6 | * 7 | * @private 8 | * @param {Array|Object|string} collection The collection to iterate over. 9 | * @param {Function} predicate The function invoked per iteration. 10 | * @returns {boolean} Returns `true` if any element passes the predicate check, 11 | * else `false`. 12 | */ 13 | function baseSome(collection, predicate) { 14 | var result; 15 | 16 | baseEach(collection, function(value, index, collection) { 17 | result = predicate(value, index, collection); 18 | return !result; 19 | }); 20 | return !!result; 21 | } 22 | 23 | module.exports = baseSome; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseSortBy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.sortBy` which uses `comparer` to define 3 | * the sort order of `array` and replaces criteria objects with their 4 | * corresponding values. 5 | * 6 | * @private 7 | * @param {Array} array The array to sort. 8 | * @param {Function} comparer The function to define sort order. 9 | * @returns {Array} Returns `array`. 10 | */ 11 | function baseSortBy(array, comparer) { 12 | var length = array.length; 13 | 14 | array.sort(comparer); 15 | while (length--) { 16 | array[length] = array[length].value; 17 | } 18 | return array; 19 | } 20 | 21 | module.exports = baseSortBy; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseSum.js: -------------------------------------------------------------------------------- 1 | var baseEach = require('./baseEach'); 2 | 3 | /** 4 | * The base implementation of `_.sum` without support for callback shorthands 5 | * and `this` binding. 6 | * 7 | * @private 8 | * @param {Array|Object|string} collection The collection to iterate over. 9 | * @param {Function} iteratee The function invoked per iteration. 10 | * @returns {number} Returns the sum. 11 | */ 12 | function baseSum(collection, iteratee) { 13 | var result = 0; 14 | baseEach(collection, function(value, index, collection) { 15 | result += +iteratee(value, index, collection) || 0; 16 | }); 17 | return result; 18 | } 19 | 20 | module.exports = baseSum; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseToString.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Converts `value` to a string if it's not one. An empty string is returned 3 | * for `null` or `undefined` values. 4 | * 5 | * @private 6 | * @param {*} value The value to process. 7 | * @returns {string} Returns the string. 8 | */ 9 | function baseToString(value) { 10 | return value == null ? '' : (value + ''); 11 | } 12 | 13 | module.exports = baseToString; 14 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/baseValues.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The base implementation of `_.values` and `_.valuesIn` which creates an 3 | * array of `object` property values corresponding to the property names 4 | * of `props`. 5 | * 6 | * @private 7 | * @param {Object} object The object to query. 8 | * @param {Array} props The property names to get values for. 9 | * @returns {Object} Returns the array of property values. 10 | */ 11 | function baseValues(object, props) { 12 | var index = -1, 13 | length = props.length, 14 | result = Array(length); 15 | 16 | while (++index < length) { 17 | result[index] = object[props[index]]; 18 | } 19 | return result; 20 | } 21 | 22 | module.exports = baseValues; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/bufferClone.js: -------------------------------------------------------------------------------- 1 | /** Native method references. */ 2 | var ArrayBuffer = global.ArrayBuffer, 3 | Uint8Array = global.Uint8Array; 4 | 5 | /** 6 | * Creates a clone of the given array buffer. 7 | * 8 | * @private 9 | * @param {ArrayBuffer} buffer The array buffer to clone. 10 | * @returns {ArrayBuffer} Returns the cloned array buffer. 11 | */ 12 | function bufferClone(buffer) { 13 | var result = new ArrayBuffer(buffer.byteLength), 14 | view = new Uint8Array(result); 15 | 16 | view.set(new Uint8Array(buffer)); 17 | return result; 18 | } 19 | 20 | module.exports = bufferClone; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/cacheIndexOf.js: -------------------------------------------------------------------------------- 1 | var isObject = require('../lang/isObject'); 2 | 3 | /** 4 | * Checks if `value` is in `cache` mimicking the return signature of 5 | * `_.indexOf` by returning `0` if the value is found, else `-1`. 6 | * 7 | * @private 8 | * @param {Object} cache The cache to search. 9 | * @param {*} value The value to search for. 10 | * @returns {number} Returns `0` if `value` is found, else `-1`. 11 | */ 12 | function cacheIndexOf(cache, value) { 13 | var data = cache.data, 14 | result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; 15 | 16 | return result ? 0 : -1; 17 | } 18 | 19 | module.exports = cacheIndexOf; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/cachePush.js: -------------------------------------------------------------------------------- 1 | var isObject = require('../lang/isObject'); 2 | 3 | /** 4 | * Adds `value` to the cache. 5 | * 6 | * @private 7 | * @name push 8 | * @memberOf SetCache 9 | * @param {*} value The value to cache. 10 | */ 11 | function cachePush(value) { 12 | var data = this.data; 13 | if (typeof value == 'string' || isObject(value)) { 14 | data.set.add(value); 15 | } else { 16 | data.hash[value] = true; 17 | } 18 | } 19 | 20 | module.exports = cachePush; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/charsLeftIndex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Used by `_.trim` and `_.trimLeft` to get the index of the first character 3 | * of `string` that is not found in `chars`. 4 | * 5 | * @private 6 | * @param {string} string The string to inspect. 7 | * @param {string} chars The characters to find. 8 | * @returns {number} Returns the index of the first character not found in `chars`. 9 | */ 10 | function charsLeftIndex(string, chars) { 11 | var index = -1, 12 | length = string.length; 13 | 14 | while (++index < length && chars.indexOf(string.charAt(index)) > -1) {} 15 | return index; 16 | } 17 | 18 | module.exports = charsLeftIndex; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/charsRightIndex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Used by `_.trim` and `_.trimRight` to get the index of the last character 3 | * of `string` that is not found in `chars`. 4 | * 5 | * @private 6 | * @param {string} string The string to inspect. 7 | * @param {string} chars The characters to find. 8 | * @returns {number} Returns the index of the last character not found in `chars`. 9 | */ 10 | function charsRightIndex(string, chars) { 11 | var index = string.length; 12 | 13 | while (index-- && chars.indexOf(string.charAt(index)) > -1) {} 14 | return index; 15 | } 16 | 17 | module.exports = charsRightIndex; 18 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/compareAscending.js: -------------------------------------------------------------------------------- 1 | var baseCompareAscending = require('./baseCompareAscending'); 2 | 3 | /** 4 | * Used by `_.sortBy` to compare transformed elements of a collection and stable 5 | * sort them in ascending order. 6 | * 7 | * @private 8 | * @param {Object} object The object to compare. 9 | * @param {Object} other The other object to compare. 10 | * @returns {number} Returns the sort order indicator for `object`. 11 | */ 12 | function compareAscending(object, other) { 13 | return baseCompareAscending(object.criteria, other.criteria) || (object.index - other.index); 14 | } 15 | 16 | module.exports = compareAscending; 17 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createBaseFor.js: -------------------------------------------------------------------------------- 1 | var toObject = require('./toObject'); 2 | 3 | /** 4 | * Creates a base function for `_.forIn` or `_.forInRight`. 5 | * 6 | * @private 7 | * @param {boolean} [fromRight] Specify iterating from right to left. 8 | * @returns {Function} Returns the new base function. 9 | */ 10 | function createBaseFor(fromRight) { 11 | return function(object, iteratee, keysFunc) { 12 | var iterable = toObject(object), 13 | props = keysFunc(object), 14 | length = props.length, 15 | index = fromRight ? length : -1; 16 | 17 | while ((fromRight ? index-- : ++index < length)) { 18 | var key = props[index]; 19 | if (iteratee(iterable[key], key, iterable) === false) { 20 | break; 21 | } 22 | } 23 | return object; 24 | }; 25 | } 26 | 27 | module.exports = createBaseFor; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createBindWrapper.js: -------------------------------------------------------------------------------- 1 | var createCtorWrapper = require('./createCtorWrapper'); 2 | 3 | /** 4 | * Creates a function that wraps `func` and invokes it with the `this` 5 | * binding of `thisArg`. 6 | * 7 | * @private 8 | * @param {Function} func The function to bind. 9 | * @param {*} [thisArg] The `this` binding of `func`. 10 | * @returns {Function} Returns the new bound function. 11 | */ 12 | function createBindWrapper(func, thisArg) { 13 | var Ctor = createCtorWrapper(func); 14 | 15 | function wrapper() { 16 | var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func; 17 | return fn.apply(thisArg, arguments); 18 | } 19 | return wrapper; 20 | } 21 | 22 | module.exports = createBindWrapper; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createCache.js: -------------------------------------------------------------------------------- 1 | var SetCache = require('./SetCache'), 2 | getNative = require('./getNative'); 3 | 4 | /** Native method references. */ 5 | var Set = getNative(global, 'Set'); 6 | 7 | /* Native method references for those with the same name as other `lodash` methods. */ 8 | var nativeCreate = getNative(Object, 'create'); 9 | 10 | /** 11 | * Creates a `Set` cache object to optimize linear searches of large arrays. 12 | * 13 | * @private 14 | * @param {Array} [values] The values to cache. 15 | * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. 16 | */ 17 | function createCache(values) { 18 | return (nativeCreate && Set) ? new SetCache(values) : null; 19 | } 20 | 21 | module.exports = createCache; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createCompounder.js: -------------------------------------------------------------------------------- 1 | var deburr = require('../string/deburr'), 2 | words = require('../string/words'); 3 | 4 | /** 5 | * Creates a function that produces compound words out of the words in a 6 | * given string. 7 | * 8 | * @private 9 | * @param {Function} callback The function to combine each word. 10 | * @returns {Function} Returns the new compounder function. 11 | */ 12 | function createCompounder(callback) { 13 | return function(string) { 14 | var index = -1, 15 | array = words(deburr(string)), 16 | length = array.length, 17 | result = ''; 18 | 19 | while (++index < length) { 20 | result = callback(result, array[index], index); 21 | } 22 | return result; 23 | }; 24 | } 25 | 26 | module.exports = createCompounder; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createCurry.js: -------------------------------------------------------------------------------- 1 | var createWrapper = require('./createWrapper'), 2 | isIterateeCall = require('./isIterateeCall'); 3 | 4 | /** 5 | * Creates a `_.curry` or `_.curryRight` function. 6 | * 7 | * @private 8 | * @param {boolean} flag The curry bit flag. 9 | * @returns {Function} Returns the new curry function. 10 | */ 11 | function createCurry(flag) { 12 | function curryFunc(func, arity, guard) { 13 | if (guard && isIterateeCall(func, arity, guard)) { 14 | arity = undefined; 15 | } 16 | var result = createWrapper(func, flag, undefined, undefined, undefined, undefined, undefined, arity); 17 | result.placeholder = curryFunc.placeholder; 18 | return result; 19 | } 20 | return curryFunc; 21 | } 22 | 23 | module.exports = createCurry; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createDefaults.js: -------------------------------------------------------------------------------- 1 | var restParam = require('../function/restParam'); 2 | 3 | /** 4 | * Creates a `_.defaults` or `_.defaultsDeep` function. 5 | * 6 | * @private 7 | * @param {Function} assigner The function to assign values. 8 | * @param {Function} customizer The function to customize assigned values. 9 | * @returns {Function} Returns the new defaults function. 10 | */ 11 | function createDefaults(assigner, customizer) { 12 | return restParam(function(args) { 13 | var object = args[0]; 14 | if (object == null) { 15 | return object; 16 | } 17 | args.push(customizer); 18 | return assigner.apply(undefined, args); 19 | }); 20 | } 21 | 22 | module.exports = createDefaults; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createFind.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | baseFind = require('./baseFind'), 3 | baseFindIndex = require('./baseFindIndex'), 4 | isArray = require('../lang/isArray'); 5 | 6 | /** 7 | * Creates a `_.find` or `_.findLast` function. 8 | * 9 | * @private 10 | * @param {Function} eachFunc The function to iterate over a collection. 11 | * @param {boolean} [fromRight] Specify iterating from right to left. 12 | * @returns {Function} Returns the new find function. 13 | */ 14 | function createFind(eachFunc, fromRight) { 15 | return function(collection, predicate, thisArg) { 16 | predicate = baseCallback(predicate, thisArg, 3); 17 | if (isArray(collection)) { 18 | var index = baseFindIndex(collection, predicate, fromRight); 19 | return index > -1 ? collection[index] : undefined; 20 | } 21 | return baseFind(collection, predicate, eachFunc); 22 | }; 23 | } 24 | 25 | module.exports = createFind; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createFindIndex.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | baseFindIndex = require('./baseFindIndex'); 3 | 4 | /** 5 | * Creates a `_.findIndex` or `_.findLastIndex` function. 6 | * 7 | * @private 8 | * @param {boolean} [fromRight] Specify iterating from right to left. 9 | * @returns {Function} Returns the new find function. 10 | */ 11 | function createFindIndex(fromRight) { 12 | return function(array, predicate, thisArg) { 13 | if (!(array && array.length)) { 14 | return -1; 15 | } 16 | predicate = baseCallback(predicate, thisArg, 3); 17 | return baseFindIndex(array, predicate, fromRight); 18 | }; 19 | } 20 | 21 | module.exports = createFindIndex; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createFindKey.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | baseFind = require('./baseFind'); 3 | 4 | /** 5 | * Creates a `_.findKey` or `_.findLastKey` function. 6 | * 7 | * @private 8 | * @param {Function} objectFunc The function to iterate over an object. 9 | * @returns {Function} Returns the new find function. 10 | */ 11 | function createFindKey(objectFunc) { 12 | return function(object, predicate, thisArg) { 13 | predicate = baseCallback(predicate, thisArg, 3); 14 | return baseFind(object, predicate, objectFunc, true); 15 | }; 16 | } 17 | 18 | module.exports = createFindKey; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createForEach.js: -------------------------------------------------------------------------------- 1 | var bindCallback = require('./bindCallback'), 2 | isArray = require('../lang/isArray'); 3 | 4 | /** 5 | * Creates a function for `_.forEach` or `_.forEachRight`. 6 | * 7 | * @private 8 | * @param {Function} arrayFunc The function to iterate over an array. 9 | * @param {Function} eachFunc The function to iterate over a collection. 10 | * @returns {Function} Returns the new each function. 11 | */ 12 | function createForEach(arrayFunc, eachFunc) { 13 | return function(collection, iteratee, thisArg) { 14 | return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) 15 | ? arrayFunc(collection, iteratee) 16 | : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); 17 | }; 18 | } 19 | 20 | module.exports = createForEach; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createForIn.js: -------------------------------------------------------------------------------- 1 | var bindCallback = require('./bindCallback'), 2 | keysIn = require('../object/keysIn'); 3 | 4 | /** 5 | * Creates a function for `_.forIn` or `_.forInRight`. 6 | * 7 | * @private 8 | * @param {Function} objectFunc The function to iterate over an object. 9 | * @returns {Function} Returns the new each function. 10 | */ 11 | function createForIn(objectFunc) { 12 | return function(object, iteratee, thisArg) { 13 | if (typeof iteratee != 'function' || thisArg !== undefined) { 14 | iteratee = bindCallback(iteratee, thisArg, 3); 15 | } 16 | return objectFunc(object, iteratee, keysIn); 17 | }; 18 | } 19 | 20 | module.exports = createForIn; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createForOwn.js: -------------------------------------------------------------------------------- 1 | var bindCallback = require('./bindCallback'); 2 | 3 | /** 4 | * Creates a function for `_.forOwn` or `_.forOwnRight`. 5 | * 6 | * @private 7 | * @param {Function} objectFunc The function to iterate over an object. 8 | * @returns {Function} Returns the new each function. 9 | */ 10 | function createForOwn(objectFunc) { 11 | return function(object, iteratee, thisArg) { 12 | if (typeof iteratee != 'function' || thisArg !== undefined) { 13 | iteratee = bindCallback(iteratee, thisArg, 3); 14 | } 15 | return objectFunc(object, iteratee); 16 | }; 17 | } 18 | 19 | module.exports = createForOwn; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createObjectMapper.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | baseForOwn = require('./baseForOwn'); 3 | 4 | /** 5 | * Creates a function for `_.mapKeys` or `_.mapValues`. 6 | * 7 | * @private 8 | * @param {boolean} [isMapKeys] Specify mapping keys instead of values. 9 | * @returns {Function} Returns the new map function. 10 | */ 11 | function createObjectMapper(isMapKeys) { 12 | return function(object, iteratee, thisArg) { 13 | var result = {}; 14 | iteratee = baseCallback(iteratee, thisArg, 3); 15 | 16 | baseForOwn(object, function(value, key, object) { 17 | var mapped = iteratee(value, key, object); 18 | key = isMapKeys ? mapped : key; 19 | value = isMapKeys ? value : mapped; 20 | result[key] = value; 21 | }); 22 | return result; 23 | }; 24 | } 25 | 26 | module.exports = createObjectMapper; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createPadDir.js: -------------------------------------------------------------------------------- 1 | var baseToString = require('./baseToString'), 2 | createPadding = require('./createPadding'); 3 | 4 | /** 5 | * Creates a function for `_.padLeft` or `_.padRight`. 6 | * 7 | * @private 8 | * @param {boolean} [fromRight] Specify padding from the right. 9 | * @returns {Function} Returns the new pad function. 10 | */ 11 | function createPadDir(fromRight) { 12 | return function(string, length, chars) { 13 | string = baseToString(string); 14 | return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string); 15 | }; 16 | } 17 | 18 | module.exports = createPadDir; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createPartial.js: -------------------------------------------------------------------------------- 1 | var createWrapper = require('./createWrapper'), 2 | replaceHolders = require('./replaceHolders'), 3 | restParam = require('../function/restParam'); 4 | 5 | /** 6 | * Creates a `_.partial` or `_.partialRight` function. 7 | * 8 | * @private 9 | * @param {boolean} flag The partial bit flag. 10 | * @returns {Function} Returns the new partial function. 11 | */ 12 | function createPartial(flag) { 13 | var partialFunc = restParam(function(func, partials) { 14 | var holders = replaceHolders(partials, partialFunc.placeholder); 15 | return createWrapper(func, flag, undefined, partials, holders); 16 | }); 17 | return partialFunc; 18 | } 19 | 20 | module.exports = createPartial; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createReduce.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | baseReduce = require('./baseReduce'), 3 | isArray = require('../lang/isArray'); 4 | 5 | /** 6 | * Creates a function for `_.reduce` or `_.reduceRight`. 7 | * 8 | * @private 9 | * @param {Function} arrayFunc The function to iterate over an array. 10 | * @param {Function} eachFunc The function to iterate over a collection. 11 | * @returns {Function} Returns the new each function. 12 | */ 13 | function createReduce(arrayFunc, eachFunc) { 14 | return function(collection, iteratee, accumulator, thisArg) { 15 | var initFromArray = arguments.length < 3; 16 | return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) 17 | ? arrayFunc(collection, iteratee, accumulator, initFromArray) 18 | : baseReduce(collection, baseCallback(iteratee, thisArg, 4), accumulator, initFromArray, eachFunc); 19 | }; 20 | } 21 | 22 | module.exports = createReduce; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createRound.js: -------------------------------------------------------------------------------- 1 | /** Native method references. */ 2 | var pow = Math.pow; 3 | 4 | /** 5 | * Creates a `_.ceil`, `_.floor`, or `_.round` function. 6 | * 7 | * @private 8 | * @param {string} methodName The name of the `Math` method to use when rounding. 9 | * @returns {Function} Returns the new round function. 10 | */ 11 | function createRound(methodName) { 12 | var func = Math[methodName]; 13 | return function(number, precision) { 14 | precision = precision === undefined ? 0 : (+precision || 0); 15 | if (precision) { 16 | precision = pow(10, precision); 17 | return func(number * precision) / precision; 18 | } 19 | return func(number); 20 | }; 21 | } 22 | 23 | module.exports = createRound; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/createSortedIndex.js: -------------------------------------------------------------------------------- 1 | var baseCallback = require('./baseCallback'), 2 | binaryIndex = require('./binaryIndex'), 3 | binaryIndexBy = require('./binaryIndexBy'); 4 | 5 | /** 6 | * Creates a `_.sortedIndex` or `_.sortedLastIndex` function. 7 | * 8 | * @private 9 | * @param {boolean} [retHighest] Specify returning the highest qualified index. 10 | * @returns {Function} Returns the new index function. 11 | */ 12 | function createSortedIndex(retHighest) { 13 | return function(array, value, iteratee, thisArg) { 14 | return iteratee == null 15 | ? binaryIndex(array, value, retHighest) 16 | : binaryIndexBy(array, value, baseCallback(iteratee, thisArg, 1), retHighest); 17 | }; 18 | } 19 | 20 | module.exports = createSortedIndex; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/escapeHtmlChar.js: -------------------------------------------------------------------------------- 1 | /** Used to map characters to HTML entities. */ 2 | var htmlEscapes = { 3 | '&': '&', 4 | '<': '<', 5 | '>': '>', 6 | '"': '"', 7 | "'": ''', 8 | '`': '`' 9 | }; 10 | 11 | /** 12 | * Used by `_.escape` to convert characters to HTML entities. 13 | * 14 | * @private 15 | * @param {string} chr The matched character to escape. 16 | * @returns {string} Returns the escaped character. 17 | */ 18 | function escapeHtmlChar(chr) { 19 | return htmlEscapes[chr]; 20 | } 21 | 22 | module.exports = escapeHtmlChar; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/escapeStringChar.js: -------------------------------------------------------------------------------- 1 | /** Used to escape characters for inclusion in compiled string literals. */ 2 | var stringEscapes = { 3 | '\\': '\\', 4 | "'": "'", 5 | '\n': 'n', 6 | '\r': 'r', 7 | '\u2028': 'u2028', 8 | '\u2029': 'u2029' 9 | }; 10 | 11 | /** 12 | * Used by `_.template` to escape characters for inclusion in compiled string literals. 13 | * 14 | * @private 15 | * @param {string} chr The matched character to escape. 16 | * @returns {string} Returns the escaped character. 17 | */ 18 | function escapeStringChar(chr) { 19 | return '\\' + stringEscapes[chr]; 20 | } 21 | 22 | module.exports = escapeStringChar; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/getData.js: -------------------------------------------------------------------------------- 1 | var metaMap = require('./metaMap'), 2 | noop = require('../utility/noop'); 3 | 4 | /** 5 | * Gets metadata for `func`. 6 | * 7 | * @private 8 | * @param {Function} func The function to query. 9 | * @returns {*} Returns the metadata for `func`. 10 | */ 11 | var getData = !metaMap ? noop : function(func) { 12 | return metaMap.get(func); 13 | }; 14 | 15 | module.exports = getData; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/getFuncName.js: -------------------------------------------------------------------------------- 1 | var realNames = require('./realNames'); 2 | 3 | /** 4 | * Gets the name of `func`. 5 | * 6 | * @private 7 | * @param {Function} func The function to query. 8 | * @returns {string} Returns the function name. 9 | */ 10 | function getFuncName(func) { 11 | var result = (func.name + ''), 12 | array = realNames[result], 13 | length = array ? array.length : 0; 14 | 15 | while (length--) { 16 | var data = array[length], 17 | otherFunc = data.func; 18 | if (otherFunc == null || otherFunc == func) { 19 | return data.name; 20 | } 21 | } 22 | return result; 23 | } 24 | 25 | module.exports = getFuncName; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/getLength.js: -------------------------------------------------------------------------------- 1 | var baseProperty = require('./baseProperty'); 2 | 3 | /** 4 | * Gets the "length" property value of `object`. 5 | * 6 | * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) 7 | * that affects Safari on at least iOS 8.1-8.3 ARM64. 8 | * 9 | * @private 10 | * @param {Object} object The object to query. 11 | * @returns {*} Returns the "length" value. 12 | */ 13 | var getLength = baseProperty('length'); 14 | 15 | module.exports = getLength; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/getMatchData.js: -------------------------------------------------------------------------------- 1 | var isStrictComparable = require('./isStrictComparable'), 2 | pairs = require('../object/pairs'); 3 | 4 | /** 5 | * Gets the propery names, values, and compare flags of `object`. 6 | * 7 | * @private 8 | * @param {Object} object The object to query. 9 | * @returns {Array} Returns the match data of `object`. 10 | */ 11 | function getMatchData(object) { 12 | var result = pairs(object), 13 | length = result.length; 14 | 15 | while (length--) { 16 | result[length][2] = isStrictComparable(result[length][1]); 17 | } 18 | return result; 19 | } 20 | 21 | module.exports = getMatchData; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/getNative.js: -------------------------------------------------------------------------------- 1 | var isNative = require('../lang/isNative'); 2 | 3 | /** 4 | * Gets the native function at `key` of `object`. 5 | * 6 | * @private 7 | * @param {Object} object The object to query. 8 | * @param {string} key The key of the method to get. 9 | * @returns {*} Returns the function if it's native, else `undefined`. 10 | */ 11 | function getNative(object, key) { 12 | var value = object == null ? undefined : object[key]; 13 | return isNative(value) ? value : undefined; 14 | } 15 | 16 | module.exports = getNative; 17 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/indexOfNaN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the index at which the first occurrence of `NaN` is found in `array`. 3 | * 4 | * @private 5 | * @param {Array} array The array to search. 6 | * @param {number} fromIndex The index to search from. 7 | * @param {boolean} [fromRight] Specify iterating from right to left. 8 | * @returns {number} Returns the index of the matched `NaN`, else `-1`. 9 | */ 10 | function indexOfNaN(array, fromIndex, fromRight) { 11 | var length = array.length, 12 | index = fromIndex + (fromRight ? 0 : -1); 13 | 14 | while ((fromRight ? index-- : ++index < length)) { 15 | var other = array[index]; 16 | if (other !== other) { 17 | return index; 18 | } 19 | } 20 | return -1; 21 | } 22 | 23 | module.exports = indexOfNaN; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/initCloneArray.js: -------------------------------------------------------------------------------- 1 | /** Used for native method references. */ 2 | var objectProto = Object.prototype; 3 | 4 | /** Used to check objects for own properties. */ 5 | var hasOwnProperty = objectProto.hasOwnProperty; 6 | 7 | /** 8 | * Initializes an array clone. 9 | * 10 | * @private 11 | * @param {Array} array The array to clone. 12 | * @returns {Array} Returns the initialized clone. 13 | */ 14 | function initCloneArray(array) { 15 | var length = array.length, 16 | result = new array.constructor(length); 17 | 18 | // Add array properties assigned by `RegExp#exec`. 19 | if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { 20 | result.index = array.index; 21 | result.input = array.input; 22 | } 23 | return result; 24 | } 25 | 26 | module.exports = initCloneArray; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/initCloneObject.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Initializes an object clone. 3 | * 4 | * @private 5 | * @param {Object} object The object to clone. 6 | * @returns {Object} Returns the initialized clone. 7 | */ 8 | function initCloneObject(object) { 9 | var Ctor = object.constructor; 10 | if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { 11 | Ctor = Object; 12 | } 13 | return new Ctor; 14 | } 15 | 16 | module.exports = initCloneObject; 17 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/invokePath.js: -------------------------------------------------------------------------------- 1 | var baseGet = require('./baseGet'), 2 | baseSlice = require('./baseSlice'), 3 | isKey = require('./isKey'), 4 | last = require('../array/last'), 5 | toPath = require('./toPath'); 6 | 7 | /** 8 | * Invokes the method at `path` on `object`. 9 | * 10 | * @private 11 | * @param {Object} object The object to query. 12 | * @param {Array|string} path The path of the method to invoke. 13 | * @param {Array} args The arguments to invoke the method with. 14 | * @returns {*} Returns the result of the invoked method. 15 | */ 16 | function invokePath(object, path, args) { 17 | if (object != null && !isKey(path, object)) { 18 | path = toPath(path); 19 | object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); 20 | path = last(path); 21 | } 22 | var func = object == null ? object : object[path]; 23 | return func == null ? undefined : func.apply(object, args); 24 | } 25 | 26 | module.exports = invokePath; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isArrayLike.js: -------------------------------------------------------------------------------- 1 | var getLength = require('./getLength'), 2 | isLength = require('./isLength'); 3 | 4 | /** 5 | * Checks if `value` is array-like. 6 | * 7 | * @private 8 | * @param {*} value The value to check. 9 | * @returns {boolean} Returns `true` if `value` is array-like, else `false`. 10 | */ 11 | function isArrayLike(value) { 12 | return value != null && isLength(getLength(value)); 13 | } 14 | 15 | module.exports = isArrayLike; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isIndex.js: -------------------------------------------------------------------------------- 1 | /** Used to detect unsigned integer values. */ 2 | var reIsUint = /^\d+$/; 3 | 4 | /** 5 | * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) 6 | * of an array-like value. 7 | */ 8 | var MAX_SAFE_INTEGER = 9007199254740991; 9 | 10 | /** 11 | * Checks if `value` is a valid array-like index. 12 | * 13 | * @private 14 | * @param {*} value The value to check. 15 | * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 16 | * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 17 | */ 18 | function isIndex(value, length) { 19 | value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; 20 | length = length == null ? MAX_SAFE_INTEGER : length; 21 | return value > -1 && value % 1 == 0 && value < length; 22 | } 23 | 24 | module.exports = isIndex; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isKey.js: -------------------------------------------------------------------------------- 1 | var isArray = require('../lang/isArray'), 2 | toObject = require('./toObject'); 3 | 4 | /** Used to match property names within property paths. */ 5 | var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, 6 | reIsPlainProp = /^\w*$/; 7 | 8 | /** 9 | * Checks if `value` is a property name and not a property path. 10 | * 11 | * @private 12 | * @param {*} value The value to check. 13 | * @param {Object} [object] The object to query keys on. 14 | * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 15 | */ 16 | function isKey(value, object) { 17 | var type = typeof value; 18 | if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { 19 | return true; 20 | } 21 | if (isArray(value)) { 22 | return false; 23 | } 24 | var result = !reIsDeepProp.test(value); 25 | return result || (object != null && value in toObject(object)); 26 | } 27 | 28 | module.exports = isKey; 29 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isLaziable.js: -------------------------------------------------------------------------------- 1 | var LazyWrapper = require('./LazyWrapper'), 2 | getData = require('./getData'), 3 | getFuncName = require('./getFuncName'), 4 | lodash = require('../chain/lodash'); 5 | 6 | /** 7 | * Checks if `func` has a lazy counterpart. 8 | * 9 | * @private 10 | * @param {Function} func The function to check. 11 | * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. 12 | */ 13 | function isLaziable(func) { 14 | var funcName = getFuncName(func), 15 | other = lodash[funcName]; 16 | 17 | if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 18 | return false; 19 | } 20 | if (func === other) { 21 | return true; 22 | } 23 | var data = getData(other); 24 | return !!data && func === data[0]; 25 | } 26 | 27 | module.exports = isLaziable; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isLength.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) 3 | * of an array-like value. 4 | */ 5 | var MAX_SAFE_INTEGER = 9007199254740991; 6 | 7 | /** 8 | * Checks if `value` is a valid array-like length. 9 | * 10 | * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). 11 | * 12 | * @private 13 | * @param {*} value The value to check. 14 | * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 15 | */ 16 | function isLength(value) { 17 | return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 18 | } 19 | 20 | module.exports = isLength; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isObjectLike.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is object-like. 3 | * 4 | * @private 5 | * @param {*} value The value to check. 6 | * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 7 | */ 8 | function isObjectLike(value) { 9 | return !!value && typeof value == 'object'; 10 | } 11 | 12 | module.exports = isObjectLike; 13 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isSpace.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Used by `trimmedLeftIndex` and `trimmedRightIndex` to determine if a 3 | * character code is whitespace. 4 | * 5 | * @private 6 | * @param {number} charCode The character code to inspect. 7 | * @returns {boolean} Returns `true` if `charCode` is whitespace, else `false`. 8 | */ 9 | function isSpace(charCode) { 10 | return ((charCode <= 160 && (charCode >= 9 && charCode <= 13) || charCode == 32 || charCode == 160) || charCode == 5760 || charCode == 6158 || 11 | (charCode >= 8192 && (charCode <= 8202 || charCode == 8232 || charCode == 8233 || charCode == 8239 || charCode == 8287 || charCode == 12288 || charCode == 65279))); 12 | } 13 | 14 | module.exports = isSpace; 15 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/isStrictComparable.js: -------------------------------------------------------------------------------- 1 | var isObject = require('../lang/isObject'); 2 | 3 | /** 4 | * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 5 | * 6 | * @private 7 | * @param {*} value The value to check. 8 | * @returns {boolean} Returns `true` if `value` if suitable for strict 9 | * equality comparisons, else `false`. 10 | */ 11 | function isStrictComparable(value) { 12 | return value === value && !isObject(value); 13 | } 14 | 15 | module.exports = isStrictComparable; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/lazyClone.js: -------------------------------------------------------------------------------- 1 | var LazyWrapper = require('./LazyWrapper'), 2 | arrayCopy = require('./arrayCopy'); 3 | 4 | /** 5 | * Creates a clone of the lazy wrapper object. 6 | * 7 | * @private 8 | * @name clone 9 | * @memberOf LazyWrapper 10 | * @returns {Object} Returns the cloned `LazyWrapper` object. 11 | */ 12 | function lazyClone() { 13 | var result = new LazyWrapper(this.__wrapped__); 14 | result.__actions__ = arrayCopy(this.__actions__); 15 | result.__dir__ = this.__dir__; 16 | result.__filtered__ = this.__filtered__; 17 | result.__iteratees__ = arrayCopy(this.__iteratees__); 18 | result.__takeCount__ = this.__takeCount__; 19 | result.__views__ = arrayCopy(this.__views__); 20 | return result; 21 | } 22 | 23 | module.exports = lazyClone; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/lazyReverse.js: -------------------------------------------------------------------------------- 1 | var LazyWrapper = require('./LazyWrapper'); 2 | 3 | /** 4 | * Reverses the direction of lazy iteration. 5 | * 6 | * @private 7 | * @name reverse 8 | * @memberOf LazyWrapper 9 | * @returns {Object} Returns the new reversed `LazyWrapper` object. 10 | */ 11 | function lazyReverse() { 12 | if (this.__filtered__) { 13 | var result = new LazyWrapper(this); 14 | result.__dir__ = -1; 15 | result.__filtered__ = true; 16 | } else { 17 | result = this.clone(); 18 | result.__dir__ *= -1; 19 | } 20 | return result; 21 | } 22 | 23 | module.exports = lazyReverse; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/mapDelete.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Removes `key` and its value from the cache. 3 | * 4 | * @private 5 | * @name delete 6 | * @memberOf _.memoize.Cache 7 | * @param {string} key The key of the value to remove. 8 | * @returns {boolean} Returns `true` if the entry was removed successfully, else `false`. 9 | */ 10 | function mapDelete(key) { 11 | return this.has(key) && delete this.__data__[key]; 12 | } 13 | 14 | module.exports = mapDelete; 15 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/mapGet.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the cached value for `key`. 3 | * 4 | * @private 5 | * @name get 6 | * @memberOf _.memoize.Cache 7 | * @param {string} key The key of the value to get. 8 | * @returns {*} Returns the cached value. 9 | */ 10 | function mapGet(key) { 11 | return key == '__proto__' ? undefined : this.__data__[key]; 12 | } 13 | 14 | module.exports = mapGet; 15 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/mapHas.js: -------------------------------------------------------------------------------- 1 | /** Used for native method references. */ 2 | var objectProto = Object.prototype; 3 | 4 | /** Used to check objects for own properties. */ 5 | var hasOwnProperty = objectProto.hasOwnProperty; 6 | 7 | /** 8 | * Checks if a cached value for `key` exists. 9 | * 10 | * @private 11 | * @name has 12 | * @memberOf _.memoize.Cache 13 | * @param {string} key The key of the entry to check. 14 | * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 15 | */ 16 | function mapHas(key) { 17 | return key != '__proto__' && hasOwnProperty.call(this.__data__, key); 18 | } 19 | 20 | module.exports = mapHas; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/mapSet.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sets `value` to `key` of the cache. 3 | * 4 | * @private 5 | * @name set 6 | * @memberOf _.memoize.Cache 7 | * @param {string} key The key of the value to cache. 8 | * @param {*} value The value to cache. 9 | * @returns {Object} Returns the cache object. 10 | */ 11 | function mapSet(key, value) { 12 | if (key != '__proto__') { 13 | this.__data__[key] = value; 14 | } 15 | return this; 16 | } 17 | 18 | module.exports = mapSet; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/mergeDefaults.js: -------------------------------------------------------------------------------- 1 | var merge = require('../object/merge'); 2 | 3 | /** 4 | * Used by `_.defaultsDeep` to customize its `_.merge` use. 5 | * 6 | * @private 7 | * @param {*} objectValue The destination object property value. 8 | * @param {*} sourceValue The source object property value. 9 | * @returns {*} Returns the value to assign to the destination object. 10 | */ 11 | function mergeDefaults(objectValue, sourceValue) { 12 | return objectValue === undefined ? sourceValue : merge(objectValue, sourceValue, mergeDefaults); 13 | } 14 | 15 | module.exports = mergeDefaults; 16 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/metaMap.js: -------------------------------------------------------------------------------- 1 | var getNative = require('./getNative'); 2 | 3 | /** Native method references. */ 4 | var WeakMap = getNative(global, 'WeakMap'); 5 | 6 | /** Used to store function metadata. */ 7 | var metaMap = WeakMap && new WeakMap; 8 | 9 | module.exports = metaMap; 10 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/pickByArray.js: -------------------------------------------------------------------------------- 1 | var toObject = require('./toObject'); 2 | 3 | /** 4 | * A specialized version of `_.pick` which picks `object` properties specified 5 | * by `props`. 6 | * 7 | * @private 8 | * @param {Object} object The source object. 9 | * @param {string[]} props The property names to pick. 10 | * @returns {Object} Returns the new object. 11 | */ 12 | function pickByArray(object, props) { 13 | object = toObject(object); 14 | 15 | var index = -1, 16 | length = props.length, 17 | result = {}; 18 | 19 | while (++index < length) { 20 | var key = props[index]; 21 | if (key in object) { 22 | result[key] = object[key]; 23 | } 24 | } 25 | return result; 26 | } 27 | 28 | module.exports = pickByArray; 29 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/pickByCallback.js: -------------------------------------------------------------------------------- 1 | var baseForIn = require('./baseForIn'); 2 | 3 | /** 4 | * A specialized version of `_.pick` which picks `object` properties `predicate` 5 | * returns truthy for. 6 | * 7 | * @private 8 | * @param {Object} object The source object. 9 | * @param {Function} predicate The function invoked per iteration. 10 | * @returns {Object} Returns the new object. 11 | */ 12 | function pickByCallback(object, predicate) { 13 | var result = {}; 14 | baseForIn(object, function(value, key, object) { 15 | if (predicate(value, key, object)) { 16 | result[key] = value; 17 | } 18 | }); 19 | return result; 20 | } 21 | 22 | module.exports = pickByCallback; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/reEscape.js: -------------------------------------------------------------------------------- 1 | /** Used to match template delimiters. */ 2 | var reEscape = /<%-([\s\S]+?)%>/g; 3 | 4 | module.exports = reEscape; 5 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/reEvaluate.js: -------------------------------------------------------------------------------- 1 | /** Used to match template delimiters. */ 2 | var reEvaluate = /<%([\s\S]+?)%>/g; 3 | 4 | module.exports = reEvaluate; 5 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/reInterpolate.js: -------------------------------------------------------------------------------- 1 | /** Used to match template delimiters. */ 2 | var reInterpolate = /<%=([\s\S]+?)%>/g; 3 | 4 | module.exports = reInterpolate; 5 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/realNames.js: -------------------------------------------------------------------------------- 1 | /** Used to lookup unminified function names. */ 2 | var realNames = {}; 3 | 4 | module.exports = realNames; 5 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/replaceHolders.js: -------------------------------------------------------------------------------- 1 | /** Used as the internal argument placeholder. */ 2 | var PLACEHOLDER = '__lodash_placeholder__'; 3 | 4 | /** 5 | * Replaces all `placeholder` elements in `array` with an internal placeholder 6 | * and returns an array of their indexes. 7 | * 8 | * @private 9 | * @param {Array} array The array to modify. 10 | * @param {*} placeholder The placeholder to replace. 11 | * @returns {Array} Returns the new array of placeholder indexes. 12 | */ 13 | function replaceHolders(array, placeholder) { 14 | var index = -1, 15 | length = array.length, 16 | resIndex = -1, 17 | result = []; 18 | 19 | while (++index < length) { 20 | if (array[index] === placeholder) { 21 | array[index] = PLACEHOLDER; 22 | result[++resIndex] = index; 23 | } 24 | } 25 | return result; 26 | } 27 | 28 | module.exports = replaceHolders; 29 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/sortedUniq.js: -------------------------------------------------------------------------------- 1 | /** 2 | * An implementation of `_.uniq` optimized for sorted arrays without support 3 | * for callback shorthands and `this` binding. 4 | * 5 | * @private 6 | * @param {Array} array The array to inspect. 7 | * @param {Function} [iteratee] The function invoked per iteration. 8 | * @returns {Array} Returns the new duplicate free array. 9 | */ 10 | function sortedUniq(array, iteratee) { 11 | var seen, 12 | index = -1, 13 | length = array.length, 14 | resIndex = -1, 15 | result = []; 16 | 17 | while (++index < length) { 18 | var value = array[index], 19 | computed = iteratee ? iteratee(value, index, array) : value; 20 | 21 | if (!index || seen !== computed) { 22 | seen = computed; 23 | result[++resIndex] = value; 24 | } 25 | } 26 | return result; 27 | } 28 | 29 | module.exports = sortedUniq; 30 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/toIterable.js: -------------------------------------------------------------------------------- 1 | var isArrayLike = require('./isArrayLike'), 2 | isObject = require('../lang/isObject'), 3 | values = require('../object/values'); 4 | 5 | /** 6 | * Converts `value` to an array-like object if it's not one. 7 | * 8 | * @private 9 | * @param {*} value The value to process. 10 | * @returns {Array|Object} Returns the array-like object. 11 | */ 12 | function toIterable(value) { 13 | if (value == null) { 14 | return []; 15 | } 16 | if (!isArrayLike(value)) { 17 | return values(value); 18 | } 19 | return isObject(value) ? value : Object(value); 20 | } 21 | 22 | module.exports = toIterable; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/toObject.js: -------------------------------------------------------------------------------- 1 | var isObject = require('../lang/isObject'); 2 | 3 | /** 4 | * Converts `value` to an object if it's not one. 5 | * 6 | * @private 7 | * @param {*} value The value to process. 8 | * @returns {Object} Returns the object. 9 | */ 10 | function toObject(value) { 11 | return isObject(value) ? value : Object(value); 12 | } 13 | 14 | module.exports = toObject; 15 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/toPath.js: -------------------------------------------------------------------------------- 1 | var baseToString = require('./baseToString'), 2 | isArray = require('../lang/isArray'); 3 | 4 | /** Used to match property names within property paths. */ 5 | var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; 6 | 7 | /** Used to match backslashes in property paths. */ 8 | var reEscapeChar = /\\(\\)?/g; 9 | 10 | /** 11 | * Converts `value` to property path array if it's not one. 12 | * 13 | * @private 14 | * @param {*} value The value to process. 15 | * @returns {Array} Returns the property path array. 16 | */ 17 | function toPath(value) { 18 | if (isArray(value)) { 19 | return value; 20 | } 21 | var result = []; 22 | baseToString(value).replace(rePropName, function(match, number, quote, string) { 23 | result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); 24 | }); 25 | return result; 26 | } 27 | 28 | module.exports = toPath; 29 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/trimmedLeftIndex.js: -------------------------------------------------------------------------------- 1 | var isSpace = require('./isSpace'); 2 | 3 | /** 4 | * Used by `_.trim` and `_.trimLeft` to get the index of the first non-whitespace 5 | * character of `string`. 6 | * 7 | * @private 8 | * @param {string} string The string to inspect. 9 | * @returns {number} Returns the index of the first non-whitespace character. 10 | */ 11 | function trimmedLeftIndex(string) { 12 | var index = -1, 13 | length = string.length; 14 | 15 | while (++index < length && isSpace(string.charCodeAt(index))) {} 16 | return index; 17 | } 18 | 19 | module.exports = trimmedLeftIndex; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/trimmedRightIndex.js: -------------------------------------------------------------------------------- 1 | var isSpace = require('./isSpace'); 2 | 3 | /** 4 | * Used by `_.trim` and `_.trimRight` to get the index of the last non-whitespace 5 | * character of `string`. 6 | * 7 | * @private 8 | * @param {string} string The string to inspect. 9 | * @returns {number} Returns the index of the last non-whitespace character. 10 | */ 11 | function trimmedRightIndex(string) { 12 | var index = string.length; 13 | 14 | while (index-- && isSpace(string.charCodeAt(index))) {} 15 | return index; 16 | } 17 | 18 | module.exports = trimmedRightIndex; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/unescapeHtmlChar.js: -------------------------------------------------------------------------------- 1 | /** Used to map HTML entities to characters. */ 2 | var htmlUnescapes = { 3 | '&': '&', 4 | '<': '<', 5 | '>': '>', 6 | '"': '"', 7 | ''': "'", 8 | '`': '`' 9 | }; 10 | 11 | /** 12 | * Used by `_.unescape` to convert HTML entities to characters. 13 | * 14 | * @private 15 | * @param {string} chr The matched character to unescape. 16 | * @returns {string} Returns the unescaped character. 17 | */ 18 | function unescapeHtmlChar(chr) { 19 | return htmlUnescapes[chr]; 20 | } 21 | 22 | module.exports = unescapeHtmlChar; 23 | -------------------------------------------------------------------------------- /node_modules/lodash/internal/wrapperClone.js: -------------------------------------------------------------------------------- 1 | var LazyWrapper = require('./LazyWrapper'), 2 | LodashWrapper = require('./LodashWrapper'), 3 | arrayCopy = require('./arrayCopy'); 4 | 5 | /** 6 | * Creates a clone of `wrapper`. 7 | * 8 | * @private 9 | * @param {Object} wrapper The wrapper to clone. 10 | * @returns {Object} Returns the cloned wrapper. 11 | */ 12 | function wrapperClone(wrapper) { 13 | return wrapper instanceof LazyWrapper 14 | ? wrapper.clone() 15 | : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, arrayCopy(wrapper.__actions__)); 16 | } 17 | 18 | module.exports = wrapperClone; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/eq.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./isEqual'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/gt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is greater than `other`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to compare. 8 | * @param {*} other The other value to compare. 9 | * @returns {boolean} Returns `true` if `value` is greater than `other`, else `false`. 10 | * @example 11 | * 12 | * _.gt(3, 1); 13 | * // => true 14 | * 15 | * _.gt(3, 3); 16 | * // => false 17 | * 18 | * _.gt(1, 3); 19 | * // => false 20 | */ 21 | function gt(value, other) { 22 | return value > other; 23 | } 24 | 25 | module.exports = gt; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/gte.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is greater than or equal to `other`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to compare. 8 | * @param {*} other The other value to compare. 9 | * @returns {boolean} Returns `true` if `value` is greater than or equal to `other`, else `false`. 10 | * @example 11 | * 12 | * _.gte(3, 1); 13 | * // => true 14 | * 15 | * _.gte(3, 3); 16 | * // => true 17 | * 18 | * _.gte(1, 3); 19 | * // => false 20 | */ 21 | function gte(value, other) { 22 | return value >= other; 23 | } 24 | 25 | module.exports = gte; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isElement.js: -------------------------------------------------------------------------------- 1 | var isObjectLike = require('../internal/isObjectLike'), 2 | isPlainObject = require('./isPlainObject'); 3 | 4 | /** 5 | * Checks if `value` is a DOM element. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category Lang 10 | * @param {*} value The value to check. 11 | * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. 12 | * @example 13 | * 14 | * _.isElement(document.body); 15 | * // => true 16 | * 17 | * _.isElement(''); 18 | * // => false 19 | */ 20 | function isElement(value) { 21 | return !!value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value); 22 | } 23 | 24 | module.exports = isElement; 25 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isFinite.js: -------------------------------------------------------------------------------- 1 | /* Native method references for those with the same name as other `lodash` methods. */ 2 | var nativeIsFinite = global.isFinite; 3 | 4 | /** 5 | * Checks if `value` is a finite primitive number. 6 | * 7 | * **Note:** This method is based on [`Number.isFinite`](http://ecma-international.org/ecma-262/6.0/#sec-number.isfinite). 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Lang 12 | * @param {*} value The value to check. 13 | * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. 14 | * @example 15 | * 16 | * _.isFinite(10); 17 | * // => true 18 | * 19 | * _.isFinite('10'); 20 | * // => false 21 | * 22 | * _.isFinite(true); 23 | * // => false 24 | * 25 | * _.isFinite(Object(10)); 26 | * // => false 27 | * 28 | * _.isFinite(Infinity); 29 | * // => false 30 | */ 31 | function isFinite(value) { 32 | return typeof value == 'number' && nativeIsFinite(value); 33 | } 34 | 35 | module.exports = isFinite; 36 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isNaN.js: -------------------------------------------------------------------------------- 1 | var isNumber = require('./isNumber'); 2 | 3 | /** 4 | * Checks if `value` is `NaN`. 5 | * 6 | * **Note:** This method is not the same as [`isNaN`](https://es5.github.io/#x15.1.2.4) 7 | * which returns `true` for `undefined` and other non-numeric values. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Lang 12 | * @param {*} value The value to check. 13 | * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. 14 | * @example 15 | * 16 | * _.isNaN(NaN); 17 | * // => true 18 | * 19 | * _.isNaN(new Number(NaN)); 20 | * // => true 21 | * 22 | * isNaN(undefined); 23 | * // => true 24 | * 25 | * _.isNaN(undefined); 26 | * // => false 27 | */ 28 | function isNaN(value) { 29 | // An `NaN` primitive is the only value that is not equal to itself. 30 | // Perform the `toStringTag` check first to avoid errors with some host objects in IE. 31 | return isNumber(value) && value != +value; 32 | } 33 | 34 | module.exports = isNaN; 35 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isNull.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is `null`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to check. 8 | * @returns {boolean} Returns `true` if `value` is `null`, else `false`. 9 | * @example 10 | * 11 | * _.isNull(null); 12 | * // => true 13 | * 14 | * _.isNull(void 0); 15 | * // => false 16 | */ 17 | function isNull(value) { 18 | return value === null; 19 | } 20 | 21 | module.exports = isNull; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isObject.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. 3 | * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 4 | * 5 | * @static 6 | * @memberOf _ 7 | * @category Lang 8 | * @param {*} value The value to check. 9 | * @returns {boolean} Returns `true` if `value` is an object, else `false`. 10 | * @example 11 | * 12 | * _.isObject({}); 13 | * // => true 14 | * 15 | * _.isObject([1, 2, 3]); 16 | * // => true 17 | * 18 | * _.isObject(1); 19 | * // => false 20 | */ 21 | function isObject(value) { 22 | // Avoid a V8 JIT bug in Chrome 19-20. 23 | // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. 24 | var type = typeof value; 25 | return !!value && (type == 'object' || type == 'function'); 26 | } 27 | 28 | module.exports = isObject; 29 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/isUndefined.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is `undefined`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to check. 8 | * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. 9 | * @example 10 | * 11 | * _.isUndefined(void 0); 12 | * // => true 13 | * 14 | * _.isUndefined(null); 15 | * // => false 16 | */ 17 | function isUndefined(value) { 18 | return value === undefined; 19 | } 20 | 21 | module.exports = isUndefined; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is less than `other`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to compare. 8 | * @param {*} other The other value to compare. 9 | * @returns {boolean} Returns `true` if `value` is less than `other`, else `false`. 10 | * @example 11 | * 12 | * _.lt(1, 3); 13 | * // => true 14 | * 15 | * _.lt(3, 3); 16 | * // => false 17 | * 18 | * _.lt(3, 1); 19 | * // => false 20 | */ 21 | function lt(value, other) { 22 | return value < other; 23 | } 24 | 25 | module.exports = lt; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/lte.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Checks if `value` is less than or equal to `other`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Lang 7 | * @param {*} value The value to compare. 8 | * @param {*} other The other value to compare. 9 | * @returns {boolean} Returns `true` if `value` is less than or equal to `other`, else `false`. 10 | * @example 11 | * 12 | * _.lte(1, 3); 13 | * // => true 14 | * 15 | * _.lte(3, 3); 16 | * // => true 17 | * 18 | * _.lte(3, 1); 19 | * // => false 20 | */ 21 | function lte(value, other) { 22 | return value <= other; 23 | } 24 | 25 | module.exports = lte; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/toArray.js: -------------------------------------------------------------------------------- 1 | var arrayCopy = require('../internal/arrayCopy'), 2 | getLength = require('../internal/getLength'), 3 | isLength = require('../internal/isLength'), 4 | values = require('../object/values'); 5 | 6 | /** 7 | * Converts `value` to an array. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Lang 12 | * @param {*} value The value to convert. 13 | * @returns {Array} Returns the converted array. 14 | * @example 15 | * 16 | * (function() { 17 | * return _.toArray(arguments).slice(1); 18 | * }(1, 2, 3)); 19 | * // => [2, 3] 20 | */ 21 | function toArray(value) { 22 | var length = value ? getLength(value) : 0; 23 | if (!isLength(length)) { 24 | return values(value); 25 | } 26 | if (!length) { 27 | return []; 28 | } 29 | return arrayCopy(value); 30 | } 31 | 32 | module.exports = toArray; 33 | -------------------------------------------------------------------------------- /node_modules/lodash/lang/toPlainObject.js: -------------------------------------------------------------------------------- 1 | var baseCopy = require('../internal/baseCopy'), 2 | keysIn = require('../object/keysIn'); 3 | 4 | /** 5 | * Converts `value` to a plain object flattening inherited enumerable 6 | * properties of `value` to own properties of the plain object. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Lang 11 | * @param {*} value The value to convert. 12 | * @returns {Object} Returns the converted plain object. 13 | * @example 14 | * 15 | * function Foo() { 16 | * this.b = 2; 17 | * } 18 | * 19 | * Foo.prototype.c = 3; 20 | * 21 | * _.assign({ 'a': 1 }, new Foo); 22 | * // => { 'a': 1, 'b': 2 } 23 | * 24 | * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); 25 | * // => { 'a': 1, 'b': 2, 'c': 3 } 26 | */ 27 | function toPlainObject(value) { 28 | return baseCopy(value, keysIn(value)); 29 | } 30 | 31 | module.exports = toPlainObject; 32 | -------------------------------------------------------------------------------- /node_modules/lodash/math.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'add': require('./math/add'), 3 | 'ceil': require('./math/ceil'), 4 | 'floor': require('./math/floor'), 5 | 'max': require('./math/max'), 6 | 'min': require('./math/min'), 7 | 'round': require('./math/round'), 8 | 'sum': require('./math/sum') 9 | }; 10 | -------------------------------------------------------------------------------- /node_modules/lodash/math/add.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Adds two numbers. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Math 7 | * @param {number} augend The first number to add. 8 | * @param {number} addend The second number to add. 9 | * @returns {number} Returns the sum. 10 | * @example 11 | * 12 | * _.add(6, 4); 13 | * // => 10 14 | */ 15 | function add(augend, addend) { 16 | return (+augend || 0) + (+addend || 0); 17 | } 18 | 19 | module.exports = add; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/math/ceil.js: -------------------------------------------------------------------------------- 1 | var createRound = require('../internal/createRound'); 2 | 3 | /** 4 | * Calculates `n` rounded up to `precision`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category Math 9 | * @param {number} n The number to round up. 10 | * @param {number} [precision=0] The precision to round up to. 11 | * @returns {number} Returns the rounded up number. 12 | * @example 13 | * 14 | * _.ceil(4.006); 15 | * // => 5 16 | * 17 | * _.ceil(6.004, 2); 18 | * // => 6.01 19 | * 20 | * _.ceil(6040, -2); 21 | * // => 6100 22 | */ 23 | var ceil = createRound('ceil'); 24 | 25 | module.exports = ceil; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/math/floor.js: -------------------------------------------------------------------------------- 1 | var createRound = require('../internal/createRound'); 2 | 3 | /** 4 | * Calculates `n` rounded down to `precision`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category Math 9 | * @param {number} n The number to round down. 10 | * @param {number} [precision=0] The precision to round down to. 11 | * @returns {number} Returns the rounded down number. 12 | * @example 13 | * 14 | * _.floor(4.006); 15 | * // => 4 16 | * 17 | * _.floor(0.046, 2); 18 | * // => 0.04 19 | * 20 | * _.floor(4060, -2); 21 | * // => 4000 22 | */ 23 | var floor = createRound('floor'); 24 | 25 | module.exports = floor; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/math/round.js: -------------------------------------------------------------------------------- 1 | var createRound = require('../internal/createRound'); 2 | 3 | /** 4 | * Calculates `n` rounded to `precision`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category Math 9 | * @param {number} n The number to round. 10 | * @param {number} [precision=0] The precision to round to. 11 | * @returns {number} Returns the rounded number. 12 | * @example 13 | * 14 | * _.round(4.006); 15 | * // => 4 16 | * 17 | * _.round(4.006, 2); 18 | * // => 4.01 19 | * 20 | * _.round(4060, -2); 21 | * // => 4100 22 | */ 23 | var round = createRound('round'); 24 | 25 | module.exports = round; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/number.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'inRange': require('./number/inRange'), 3 | 'random': require('./number/random') 4 | }; 5 | -------------------------------------------------------------------------------- /node_modules/lodash/object/defaults.js: -------------------------------------------------------------------------------- 1 | var assign = require('./assign'), 2 | assignDefaults = require('../internal/assignDefaults'), 3 | createDefaults = require('../internal/createDefaults'); 4 | 5 | /** 6 | * Assigns own enumerable properties of source object(s) to the destination 7 | * object for all destination properties that resolve to `undefined`. Once a 8 | * property is set, additional values of the same property are ignored. 9 | * 10 | * **Note:** This method mutates `object`. 11 | * 12 | * @static 13 | * @memberOf _ 14 | * @category Object 15 | * @param {Object} object The destination object. 16 | * @param {...Object} [sources] The source objects. 17 | * @returns {Object} Returns `object`. 18 | * @example 19 | * 20 | * _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); 21 | * // => { 'user': 'barney', 'age': 36 } 22 | */ 23 | var defaults = createDefaults(assign, assignDefaults); 24 | 25 | module.exports = defaults; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/object/defaultsDeep.js: -------------------------------------------------------------------------------- 1 | var createDefaults = require('../internal/createDefaults'), 2 | merge = require('./merge'), 3 | mergeDefaults = require('../internal/mergeDefaults'); 4 | 5 | /** 6 | * This method is like `_.defaults` except that it recursively assigns 7 | * default properties. 8 | * 9 | * **Note:** This method mutates `object`. 10 | * 11 | * @static 12 | * @memberOf _ 13 | * @category Object 14 | * @param {Object} object The destination object. 15 | * @param {...Object} [sources] The source objects. 16 | * @returns {Object} Returns `object`. 17 | * @example 18 | * 19 | * _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } }); 20 | * // => { 'user': { 'name': 'barney', 'age': 36 } } 21 | * 22 | */ 23 | var defaultsDeep = createDefaults(merge, mergeDefaults); 24 | 25 | module.exports = defaultsDeep; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/object/extend.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./assign'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/object/functions.js: -------------------------------------------------------------------------------- 1 | var baseFunctions = require('../internal/baseFunctions'), 2 | keysIn = require('./keysIn'); 3 | 4 | /** 5 | * Creates an array of function property names from all enumerable properties, 6 | * own and inherited, of `object`. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @alias methods 11 | * @category Object 12 | * @param {Object} object The object to inspect. 13 | * @returns {Array} Returns the new array of property names. 14 | * @example 15 | * 16 | * _.functions(_); 17 | * // => ['after', 'ary', 'assign', ...] 18 | */ 19 | function functions(object) { 20 | return baseFunctions(object, keysIn(object)); 21 | } 22 | 23 | module.exports = functions; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/object/mapKeys.js: -------------------------------------------------------------------------------- 1 | var createObjectMapper = require('../internal/createObjectMapper'); 2 | 3 | /** 4 | * The opposite of `_.mapValues`; this method creates an object with the 5 | * same values as `object` and keys generated by running each own enumerable 6 | * property of `object` through `iteratee`. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Object 11 | * @param {Object} object The object to iterate over. 12 | * @param {Function|Object|string} [iteratee=_.identity] The function invoked 13 | * per iteration. 14 | * @param {*} [thisArg] The `this` binding of `iteratee`. 15 | * @returns {Object} Returns the new mapped object. 16 | * @example 17 | * 18 | * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { 19 | * return key + value; 20 | * }); 21 | * // => { 'a1': 1, 'b2': 2 } 22 | */ 23 | var mapKeys = createObjectMapper(true); 24 | 25 | module.exports = mapKeys; 26 | -------------------------------------------------------------------------------- /node_modules/lodash/object/methods.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./functions'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/object/pairs.js: -------------------------------------------------------------------------------- 1 | var keys = require('./keys'), 2 | toObject = require('../internal/toObject'); 3 | 4 | /** 5 | * Creates a two dimensional array of the key-value pairs for `object`, 6 | * e.g. `[[key1, value1], [key2, value2]]`. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Object 11 | * @param {Object} object The object to query. 12 | * @returns {Array} Returns the new array of key-value pairs. 13 | * @example 14 | * 15 | * _.pairs({ 'barney': 36, 'fred': 40 }); 16 | * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) 17 | */ 18 | function pairs(object) { 19 | object = toObject(object); 20 | 21 | var index = -1, 22 | props = keys(object), 23 | length = props.length, 24 | result = Array(length); 25 | 26 | while (++index < length) { 27 | var key = props[index]; 28 | result[index] = [key, object[key]]; 29 | } 30 | return result; 31 | } 32 | 33 | module.exports = pairs; 34 | -------------------------------------------------------------------------------- /node_modules/lodash/object/values.js: -------------------------------------------------------------------------------- 1 | var baseValues = require('../internal/baseValues'), 2 | keys = require('./keys'); 3 | 4 | /** 5 | * Creates an array of the own enumerable property values of `object`. 6 | * 7 | * **Note:** Non-object values are coerced to objects. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Object 12 | * @param {Object} object The object to query. 13 | * @returns {Array} Returns the array of property values. 14 | * @example 15 | * 16 | * function Foo() { 17 | * this.a = 1; 18 | * this.b = 2; 19 | * } 20 | * 21 | * Foo.prototype.c = 3; 22 | * 23 | * _.values(new Foo); 24 | * // => [1, 2] (iteration order is not guaranteed) 25 | * 26 | * _.values('hi'); 27 | * // => ['h', 'i'] 28 | */ 29 | function values(object) { 30 | return baseValues(object, keys(object)); 31 | } 32 | 33 | module.exports = values; 34 | -------------------------------------------------------------------------------- /node_modules/lodash/object/valuesIn.js: -------------------------------------------------------------------------------- 1 | var baseValues = require('../internal/baseValues'), 2 | keysIn = require('./keysIn'); 3 | 4 | /** 5 | * Creates an array of the own and inherited enumerable property values 6 | * of `object`. 7 | * 8 | * **Note:** Non-object values are coerced to objects. 9 | * 10 | * @static 11 | * @memberOf _ 12 | * @category Object 13 | * @param {Object} object The object to query. 14 | * @returns {Array} Returns the array of property values. 15 | * @example 16 | * 17 | * function Foo() { 18 | * this.a = 1; 19 | * this.b = 2; 20 | * } 21 | * 22 | * Foo.prototype.c = 3; 23 | * 24 | * _.valuesIn(new Foo); 25 | * // => [1, 2, 3] (iteration order is not guaranteed) 26 | */ 27 | function valuesIn(object) { 28 | return baseValues(object, keysIn(object)); 29 | } 30 | 31 | module.exports = valuesIn; 32 | -------------------------------------------------------------------------------- /node_modules/lodash/string/camelCase.js: -------------------------------------------------------------------------------- 1 | var createCompounder = require('../internal/createCompounder'); 2 | 3 | /** 4 | * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category String 9 | * @param {string} [string=''] The string to convert. 10 | * @returns {string} Returns the camel cased string. 11 | * @example 12 | * 13 | * _.camelCase('Foo Bar'); 14 | * // => 'fooBar' 15 | * 16 | * _.camelCase('--foo-bar'); 17 | * // => 'fooBar' 18 | * 19 | * _.camelCase('__foo_bar__'); 20 | * // => 'fooBar' 21 | */ 22 | var camelCase = createCompounder(function(result, word, index) { 23 | word = word.toLowerCase(); 24 | return result + (index ? (word.charAt(0).toUpperCase() + word.slice(1)) : word); 25 | }); 26 | 27 | module.exports = camelCase; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/string/capitalize.js: -------------------------------------------------------------------------------- 1 | var baseToString = require('../internal/baseToString'); 2 | 3 | /** 4 | * Capitalizes the first character of `string`. 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category String 9 | * @param {string} [string=''] The string to capitalize. 10 | * @returns {string} Returns the capitalized string. 11 | * @example 12 | * 13 | * _.capitalize('fred'); 14 | * // => 'Fred' 15 | */ 16 | function capitalize(string) { 17 | string = baseToString(string); 18 | return string && (string.charAt(0).toUpperCase() + string.slice(1)); 19 | } 20 | 21 | module.exports = capitalize; 22 | -------------------------------------------------------------------------------- /node_modules/lodash/string/kebabCase.js: -------------------------------------------------------------------------------- 1 | var createCompounder = require('../internal/createCompounder'); 2 | 3 | /** 4 | * Converts `string` to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category String 9 | * @param {string} [string=''] The string to convert. 10 | * @returns {string} Returns the kebab cased string. 11 | * @example 12 | * 13 | * _.kebabCase('Foo Bar'); 14 | * // => 'foo-bar' 15 | * 16 | * _.kebabCase('fooBar'); 17 | * // => 'foo-bar' 18 | * 19 | * _.kebabCase('__foo_bar__'); 20 | * // => 'foo-bar' 21 | */ 22 | var kebabCase = createCompounder(function(result, word, index) { 23 | return result + (index ? '-' : '') + word.toLowerCase(); 24 | }); 25 | 26 | module.exports = kebabCase; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/string/padLeft.js: -------------------------------------------------------------------------------- 1 | var createPadDir = require('../internal/createPadDir'); 2 | 3 | /** 4 | * Pads `string` on the left side if it's shorter than `length`. Padding 5 | * characters are truncated if they exceed `length`. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category String 10 | * @param {string} [string=''] The string to pad. 11 | * @param {number} [length=0] The padding length. 12 | * @param {string} [chars=' '] The string used as padding. 13 | * @returns {string} Returns the padded string. 14 | * @example 15 | * 16 | * _.padLeft('abc', 6); 17 | * // => ' abc' 18 | * 19 | * _.padLeft('abc', 6, '_-'); 20 | * // => '_-_abc' 21 | * 22 | * _.padLeft('abc', 3); 23 | * // => 'abc' 24 | */ 25 | var padLeft = createPadDir(); 26 | 27 | module.exports = padLeft; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/string/padRight.js: -------------------------------------------------------------------------------- 1 | var createPadDir = require('../internal/createPadDir'); 2 | 3 | /** 4 | * Pads `string` on the right side if it's shorter than `length`. Padding 5 | * characters are truncated if they exceed `length`. 6 | * 7 | * @static 8 | * @memberOf _ 9 | * @category String 10 | * @param {string} [string=''] The string to pad. 11 | * @param {number} [length=0] The padding length. 12 | * @param {string} [chars=' '] The string used as padding. 13 | * @returns {string} Returns the padded string. 14 | * @example 15 | * 16 | * _.padRight('abc', 6); 17 | * // => 'abc ' 18 | * 19 | * _.padRight('abc', 6, '_-'); 20 | * // => 'abc_-_' 21 | * 22 | * _.padRight('abc', 3); 23 | * // => 'abc' 24 | */ 25 | var padRight = createPadDir(true); 26 | 27 | module.exports = padRight; 28 | -------------------------------------------------------------------------------- /node_modules/lodash/string/snakeCase.js: -------------------------------------------------------------------------------- 1 | var createCompounder = require('../internal/createCompounder'); 2 | 3 | /** 4 | * Converts `string` to [snake case](https://en.wikipedia.org/wiki/Snake_case). 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category String 9 | * @param {string} [string=''] The string to convert. 10 | * @returns {string} Returns the snake cased string. 11 | * @example 12 | * 13 | * _.snakeCase('Foo Bar'); 14 | * // => 'foo_bar' 15 | * 16 | * _.snakeCase('fooBar'); 17 | * // => 'foo_bar' 18 | * 19 | * _.snakeCase('--foo-bar'); 20 | * // => 'foo_bar' 21 | */ 22 | var snakeCase = createCompounder(function(result, word, index) { 23 | return result + (index ? '_' : '') + word.toLowerCase(); 24 | }); 25 | 26 | module.exports = snakeCase; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/string/startCase.js: -------------------------------------------------------------------------------- 1 | var createCompounder = require('../internal/createCompounder'); 2 | 3 | /** 4 | * Converts `string` to [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). 5 | * 6 | * @static 7 | * @memberOf _ 8 | * @category String 9 | * @param {string} [string=''] The string to convert. 10 | * @returns {string} Returns the start cased string. 11 | * @example 12 | * 13 | * _.startCase('--foo-bar'); 14 | * // => 'Foo Bar' 15 | * 16 | * _.startCase('fooBar'); 17 | * // => 'Foo Bar' 18 | * 19 | * _.startCase('__foo_bar__'); 20 | * // => 'Foo Bar' 21 | */ 22 | var startCase = createCompounder(function(result, word, index) { 23 | return result + (index ? ' ' : '') + (word.charAt(0).toUpperCase() + word.slice(1)); 24 | }); 25 | 26 | module.exports = startCase; 27 | -------------------------------------------------------------------------------- /node_modules/lodash/support.js: -------------------------------------------------------------------------------- 1 | /** 2 | * An object environment feature flags. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @type Object 7 | */ 8 | var support = {}; 9 | 10 | module.exports = support; 11 | -------------------------------------------------------------------------------- /node_modules/lodash/utility.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'attempt': require('./utility/attempt'), 3 | 'callback': require('./utility/callback'), 4 | 'constant': require('./utility/constant'), 5 | 'identity': require('./utility/identity'), 6 | 'iteratee': require('./utility/iteratee'), 7 | 'matches': require('./utility/matches'), 8 | 'matchesProperty': require('./utility/matchesProperty'), 9 | 'method': require('./utility/method'), 10 | 'methodOf': require('./utility/methodOf'), 11 | 'mixin': require('./utility/mixin'), 12 | 'noop': require('./utility/noop'), 13 | 'property': require('./utility/property'), 14 | 'propertyOf': require('./utility/propertyOf'), 15 | 'range': require('./utility/range'), 16 | 'times': require('./utility/times'), 17 | 'uniqueId': require('./utility/uniqueId') 18 | }; 19 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/constant.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creates a function that returns `value`. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Utility 7 | * @param {*} value The value to return from the new function. 8 | * @returns {Function} Returns the new function. 9 | * @example 10 | * 11 | * var object = { 'user': 'fred' }; 12 | * var getter = _.constant(object); 13 | * 14 | * getter() === object; 15 | * // => true 16 | */ 17 | function constant(value) { 18 | return function() { 19 | return value; 20 | }; 21 | } 22 | 23 | module.exports = constant; 24 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/identity.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This method returns the first argument provided to it. 3 | * 4 | * @static 5 | * @memberOf _ 6 | * @category Utility 7 | * @param {*} value Any value. 8 | * @returns {*} Returns `value`. 9 | * @example 10 | * 11 | * var object = { 'user': 'fred' }; 12 | * 13 | * _.identity(object) === object; 14 | * // => true 15 | */ 16 | function identity(value) { 17 | return value; 18 | } 19 | 20 | module.exports = identity; 21 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/iteratee.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./callback'); 2 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/noop.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A no-operation function that returns `undefined` regardless of the 3 | * arguments it receives. 4 | * 5 | * @static 6 | * @memberOf _ 7 | * @category Utility 8 | * @example 9 | * 10 | * var object = { 'user': 'fred' }; 11 | * 12 | * _.noop(object) === undefined; 13 | * // => true 14 | */ 15 | function noop() { 16 | // No operation performed. 17 | } 18 | 19 | module.exports = noop; 20 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/property.js: -------------------------------------------------------------------------------- 1 | var baseProperty = require('../internal/baseProperty'), 2 | basePropertyDeep = require('../internal/basePropertyDeep'), 3 | isKey = require('../internal/isKey'); 4 | 5 | /** 6 | * Creates a function that returns the property value at `path` on a 7 | * given object. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Utility 12 | * @param {Array|string} path The path of the property to get. 13 | * @returns {Function} Returns the new function. 14 | * @example 15 | * 16 | * var objects = [ 17 | * { 'a': { 'b': { 'c': 2 } } }, 18 | * { 'a': { 'b': { 'c': 1 } } } 19 | * ]; 20 | * 21 | * _.map(objects, _.property('a.b.c')); 22 | * // => [2, 1] 23 | * 24 | * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); 25 | * // => [1, 2] 26 | */ 27 | function property(path) { 28 | return isKey(path) ? baseProperty(path) : basePropertyDeep(path); 29 | } 30 | 31 | module.exports = property; 32 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/propertyOf.js: -------------------------------------------------------------------------------- 1 | var baseGet = require('../internal/baseGet'), 2 | toPath = require('../internal/toPath'); 3 | 4 | /** 5 | * The opposite of `_.property`; this method creates a function that returns 6 | * the property value at a given path on `object`. 7 | * 8 | * @static 9 | * @memberOf _ 10 | * @category Utility 11 | * @param {Object} object The object to query. 12 | * @returns {Function} Returns the new function. 13 | * @example 14 | * 15 | * var array = [0, 1, 2], 16 | * object = { 'a': array, 'b': array, 'c': array }; 17 | * 18 | * _.map(['a[2]', 'c[0]'], _.propertyOf(object)); 19 | * // => [2, 0] 20 | * 21 | * _.map([['a', '2'], ['c', '0']], _.propertyOf(object)); 22 | * // => [2, 0] 23 | */ 24 | function propertyOf(object) { 25 | return function(path) { 26 | return baseGet(object, toPath(path), (path + '')); 27 | }; 28 | } 29 | 30 | module.exports = propertyOf; 31 | -------------------------------------------------------------------------------- /node_modules/lodash/utility/uniqueId.js: -------------------------------------------------------------------------------- 1 | var baseToString = require('../internal/baseToString'); 2 | 3 | /** Used to generate unique IDs. */ 4 | var idCounter = 0; 5 | 6 | /** 7 | * Generates a unique ID. If `prefix` is provided the ID is appended to it. 8 | * 9 | * @static 10 | * @memberOf _ 11 | * @category Utility 12 | * @param {string} [prefix] The value to prefix the ID with. 13 | * @returns {string} Returns the unique ID. 14 | * @example 15 | * 16 | * _.uniqueId('contact_'); 17 | * // => 'contact_104' 18 | * 19 | * _.uniqueId(); 20 | * // => '105' 21 | */ 22 | function uniqueId(prefix) { 23 | var id = ++idCounter; 24 | return baseToString(prefix) + id; 25 | } 26 | 27 | module.exports = uniqueId; 28 | -------------------------------------------------------------------------------- /node_modules/moment/ender.js: -------------------------------------------------------------------------------- 1 | $.ender({ moment: require('moment') }) 2 | -------------------------------------------------------------------------------- /node_modules/moment/package.js: -------------------------------------------------------------------------------- 1 | var profile = { 2 | resourceTags: { 3 | ignore: function(filename, mid){ 4 | // only include moment/moment 5 | return mid != "moment/moment"; 6 | }, 7 | amd: function(filename, mid){ 8 | return /\.js$/.test(filename); 9 | } 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/create/from-object.js: -------------------------------------------------------------------------------- 1 | import { normalizeObjectUnits } from '../units/aliases'; 2 | import { configFromArray } from './from-array'; 3 | import map from '../utils/map'; 4 | 5 | export function configFromObject(config) { 6 | if (config._d) { 7 | return; 8 | } 9 | 10 | var i = normalizeObjectUnits(config._i), 11 | dayOrDate = i.day === undefined ? i.date : i.day; 12 | config._a = map( 13 | [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], 14 | function (obj) { 15 | return obj && parseInt(obj, 10); 16 | } 17 | ); 18 | 19 | configFromArray(config); 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/create/local.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createLocal(input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, false); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/create/parsing-flags.js: -------------------------------------------------------------------------------- 1 | function defaultParsingFlags() { 2 | // We need to deep clone this object. 3 | return { 4 | empty: false, 5 | unusedTokens: [], 6 | unusedInput: [], 7 | overflow: -2, 8 | charsLeftOver: 0, 9 | nullInput: false, 10 | invalidEra: null, 11 | invalidMonth: null, 12 | invalidFormat: false, 13 | userInvalidated: false, 14 | iso: false, 15 | parsedDateParts: [], 16 | era: null, 17 | meridiem: null, 18 | rfc2822: false, 19 | weekdayMismatch: false, 20 | }; 21 | } 22 | 23 | export default function getParsingFlags(m) { 24 | if (m._pf == null) { 25 | m._pf = defaultParsingFlags(); 26 | } 27 | return m._pf; 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/create/utc.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createUTC(input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, true).utc(); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/duration/abs.js: -------------------------------------------------------------------------------- 1 | var mathAbs = Math.abs; 2 | 3 | export function abs() { 4 | var data = this._data; 5 | 6 | this._milliseconds = mathAbs(this._milliseconds); 7 | this._days = mathAbs(this._days); 8 | this._months = mathAbs(this._months); 9 | 10 | data.milliseconds = mathAbs(data.milliseconds); 11 | data.seconds = mathAbs(data.seconds); 12 | data.minutes = mathAbs(data.minutes); 13 | data.hours = mathAbs(data.hours); 14 | data.months = mathAbs(data.months); 15 | data.years = mathAbs(data.years); 16 | 17 | return this; 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/duration/add-subtract.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from './create'; 2 | 3 | function addSubtract(duration, input, value, direction) { 4 | var other = createDuration(input, value); 5 | 6 | duration._milliseconds += direction * other._milliseconds; 7 | duration._days += direction * other._days; 8 | duration._months += direction * other._months; 9 | 10 | return duration._bubble(); 11 | } 12 | 13 | // supports only 2.0-style add(1, 's') or add(duration) 14 | export function add(input, value) { 15 | return addSubtract(this, input, value, 1); 16 | } 17 | 18 | // supports only 2.0-style subtract(1, 's') or subtract(duration) 19 | export function subtract(input, value) { 20 | return addSubtract(this, input, value, -1); 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/duration/clone.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from './create'; 2 | 3 | export function clone() { 4 | return createDuration(this); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/duration/duration.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './prototype'; 3 | 4 | import { createDuration } from './create'; 5 | import { isDuration } from './constructor'; 6 | import { 7 | getSetRelativeTimeRounding, 8 | getSetRelativeTimeThreshold, 9 | } from './humanize'; 10 | 11 | export { 12 | createDuration, 13 | isDuration, 14 | getSetRelativeTimeRounding, 15 | getSetRelativeTimeThreshold, 16 | }; 17 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/duration/get.js: -------------------------------------------------------------------------------- 1 | import { normalizeUnits } from '../units/aliases'; 2 | import absFloor from '../utils/abs-floor'; 3 | 4 | export function get(units) { 5 | units = normalizeUnits(units); 6 | return this.isValid() ? this[units + 's']() : NaN; 7 | } 8 | 9 | function makeGetter(name) { 10 | return function () { 11 | return this.isValid() ? this._data[name] : NaN; 12 | }; 13 | } 14 | 15 | var milliseconds = makeGetter('milliseconds'), 16 | seconds = makeGetter('seconds'), 17 | minutes = makeGetter('minutes'), 18 | hours = makeGetter('hours'), 19 | days = makeGetter('days'), 20 | months = makeGetter('months'), 21 | years = makeGetter('years'); 22 | 23 | export { milliseconds, seconds, minutes, hours, days, months, years }; 24 | 25 | export function weeks() { 26 | return absFloor(this.days() / 7); 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/locale/calendar.js: -------------------------------------------------------------------------------- 1 | export var defaultCalendar = { 2 | sameDay: '[Today at] LT', 3 | nextDay: '[Tomorrow at] LT', 4 | nextWeek: 'dddd [at] LT', 5 | lastDay: '[Yesterday at] LT', 6 | lastWeek: '[Last] dddd [at] LT', 7 | sameElse: 'L', 8 | }; 9 | 10 | import isFunction from '../utils/is-function'; 11 | 12 | export function calendar(key, mom, now) { 13 | var output = this._calendar[key] || this._calendar['sameElse']; 14 | return isFunction(output) ? output.call(mom, now) : output; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/locale/constructor.js: -------------------------------------------------------------------------------- 1 | export function Locale(config) { 2 | if (config != null) { 3 | this.set(config); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/locale/invalid.js: -------------------------------------------------------------------------------- 1 | export var defaultInvalidDate = 'Invalid date'; 2 | 3 | export function invalidDate() { 4 | return this._invalidDate; 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/locale/ordinal.js: -------------------------------------------------------------------------------- 1 | var defaultOrdinal = '%d', 2 | defaultDayOfMonthOrdinalParse = /\d{1,2}/; 3 | 4 | export { defaultOrdinal, defaultDayOfMonthOrdinalParse }; 5 | 6 | export function ordinal(number) { 7 | return this._ordinal.replace('%d', number); 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/locale/pre-post-format.js: -------------------------------------------------------------------------------- 1 | export function preParsePostFormat(string) { 2 | return string; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/clone.js: -------------------------------------------------------------------------------- 1 | import { Moment } from './constructor'; 2 | 3 | export function clone() { 4 | return new Moment(this); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/creation-data.js: -------------------------------------------------------------------------------- 1 | export function creationData() { 2 | return { 3 | input: this._i, 4 | format: this._f, 5 | locale: this._locale, 6 | isUTC: this._isUTC, 7 | strict: this._strict, 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/from.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | import { isMoment } from '../moment/constructor'; 4 | 5 | export function from(time, withoutSuffix) { 6 | if ( 7 | this.isValid() && 8 | ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 9 | ) { 10 | return createDuration({ to: this, from: time }) 11 | .locale(this.locale()) 12 | .humanize(!withoutSuffix); 13 | } else { 14 | return this.localeData().invalidDate(); 15 | } 16 | } 17 | 18 | export function fromNow(withoutSuffix) { 19 | return this.from(createLocal(), withoutSuffix); 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/moment.js: -------------------------------------------------------------------------------- 1 | import { createLocal } from '../create/local'; 2 | import { createUTC } from '../create/utc'; 3 | import { createInvalid } from '../create/valid'; 4 | import { isMoment } from './constructor'; 5 | import { min, max } from './min-max'; 6 | import { now } from './now'; 7 | import momentPrototype from './prototype'; 8 | 9 | function createUnix(input) { 10 | return createLocal(input * 1000); 11 | } 12 | 13 | function createInZone() { 14 | return createLocal.apply(null, arguments).parseZone(); 15 | } 16 | 17 | export { 18 | now, 19 | min, 20 | max, 21 | isMoment, 22 | createUTC, 23 | createUnix, 24 | createLocal, 25 | createInZone, 26 | createInvalid, 27 | momentPrototype, 28 | }; 29 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/now.js: -------------------------------------------------------------------------------- 1 | export var now = function () { 2 | return Date.now ? Date.now() : +new Date(); 3 | }; 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/to.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | import { isMoment } from '../moment/constructor'; 4 | 5 | export function to(time, withoutSuffix) { 6 | if ( 7 | this.isValid() && 8 | ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 9 | ) { 10 | return createDuration({ from: this, to: time }) 11 | .locale(this.locale()) 12 | .humanize(!withoutSuffix); 13 | } else { 14 | return this.localeData().invalidDate(); 15 | } 16 | } 17 | 18 | export function toNow(withoutSuffix) { 19 | return this.to(createLocal(), withoutSuffix); 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/moment/valid.js: -------------------------------------------------------------------------------- 1 | import { isValid as _isValid } from '../create/valid'; 2 | import extend from '../utils/extend'; 3 | import getParsingFlags from '../create/parsing-flags'; 4 | 5 | export function isValid() { 6 | return _isValid(this); 7 | } 8 | 9 | export function parsingFlags() { 10 | return extend({}, getParsingFlags(this)); 11 | } 12 | 13 | export function invalidAt() { 14 | return getParsingFlags(this).overflow; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/aliases.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from '../utils/has-own-prop'; 2 | 3 | var aliases = {}; 4 | 5 | export function addUnitAlias(unit, shorthand) { 6 | var lowerCase = unit.toLowerCase(); 7 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 8 | } 9 | 10 | export function normalizeUnits(units) { 11 | return typeof units === 'string' 12 | ? aliases[units] || aliases[units.toLowerCase()] 13 | : undefined; 14 | } 15 | 16 | export function normalizeObjectUnits(inputObject) { 17 | var normalizedInput = {}, 18 | normalizedProp, 19 | prop; 20 | 21 | for (prop in inputObject) { 22 | if (hasOwnProp(inputObject, prop)) { 23 | normalizedProp = normalizeUnits(prop); 24 | if (normalizedProp) { 25 | normalizedInput[normalizedProp] = inputObject[prop]; 26 | } 27 | } 28 | } 29 | 30 | return normalizedInput; 31 | } 32 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/constants.js: -------------------------------------------------------------------------------- 1 | export var YEAR = 0, 2 | MONTH = 1, 3 | DATE = 2, 4 | HOUR = 3, 5 | MINUTE = 4, 6 | SECOND = 5, 7 | MILLISECOND = 6, 8 | WEEK = 7, 9 | WEEKDAY = 8; 10 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/minute.js: -------------------------------------------------------------------------------- 1 | import { makeGetSet } from '../moment/get-set'; 2 | import { addFormatToken } from '../format/format'; 3 | import { addUnitAlias } from './aliases'; 4 | import { addUnitPriority } from './priorities'; 5 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 6 | import { addParseToken } from '../parse/token'; 7 | import { MINUTE } from './constants'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('m', ['mm', 2], 0, 'minute'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('minute', 'm'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('minute', 14); 20 | 21 | // PARSING 22 | 23 | addRegexToken('m', match1to2); 24 | addRegexToken('mm', match1to2, match2); 25 | addParseToken(['m', 'mm'], MINUTE); 26 | 27 | // MOMENTS 28 | 29 | export var getSetMinute = makeGetSet('Minutes', false); 30 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/priorities.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from '../utils/has-own-prop'; 2 | 3 | var priorities = {}; 4 | 5 | export function addUnitPriority(unit, priority) { 6 | priorities[unit] = priority; 7 | } 8 | 9 | export function getPrioritizedUnits(unitsObj) { 10 | var units = [], 11 | u; 12 | for (u in unitsObj) { 13 | if (hasOwnProp(unitsObj, u)) { 14 | units.push({ unit: u, priority: priorities[u] }); 15 | } 16 | } 17 | units.sort(function (a, b) { 18 | return a.priority - b.priority; 19 | }); 20 | return units; 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/quarter.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addUnitAlias } from './aliases'; 3 | import { addUnitPriority } from './priorities'; 4 | import { addRegexToken, match1 } from '../parse/regex'; 5 | import { addParseToken } from '../parse/token'; 6 | import { MONTH } from './constants'; 7 | import toInt from '../utils/to-int'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('Q', 0, 'Qo', 'quarter'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('quarter', 'Q'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('quarter', 7); 20 | 21 | // PARSING 22 | 23 | addRegexToken('Q', match1); 24 | addParseToken('Q', function (input, array) { 25 | array[MONTH] = (toInt(input) - 1) * 3; 26 | }); 27 | 28 | // MOMENTS 29 | 30 | export function getSetQuarter(input) { 31 | return input == null 32 | ? Math.ceil((this.month() + 1) / 3) 33 | : this.month((input - 1) * 3 + (this.month() % 3)); 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/second.js: -------------------------------------------------------------------------------- 1 | import { makeGetSet } from '../moment/get-set'; 2 | import { addFormatToken } from '../format/format'; 3 | import { addUnitAlias } from './aliases'; 4 | import { addUnitPriority } from './priorities'; 5 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 6 | import { addParseToken } from '../parse/token'; 7 | import { SECOND } from './constants'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('s', ['ss', 2], 0, 'second'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('second', 's'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('second', 15); 20 | 21 | // PARSING 22 | 23 | addRegexToken('s', match1to2); 24 | addRegexToken('ss', match1to2, match2); 25 | addParseToken(['s', 'ss'], SECOND); 26 | 27 | // MOMENTS 28 | 29 | export var getSetSecond = makeGetSet('Seconds', false); 30 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/timestamp.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; 3 | import { addParseToken } from '../parse/token'; 4 | import toInt from '../utils/to-int'; 5 | 6 | // FORMATTING 7 | 8 | addFormatToken('X', 0, 0, 'unix'); 9 | addFormatToken('x', 0, 0, 'valueOf'); 10 | 11 | // PARSING 12 | 13 | addRegexToken('x', matchSigned); 14 | addRegexToken('X', matchTimestamp); 15 | addParseToken('X', function (input, array, config) { 16 | config._d = new Date(parseFloat(input) * 1000); 17 | }); 18 | addParseToken('x', function (input, array, config) { 19 | config._d = new Date(toInt(input)); 20 | }); 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/timezone.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | 3 | // FORMATTING 4 | 5 | addFormatToken('z', 0, 0, 'zoneAbbr'); 6 | addFormatToken('zz', 0, 0, 'zoneName'); 7 | 8 | // MOMENTS 9 | 10 | export function getZoneAbbr() { 11 | return this._isUTC ? 'UTC' : ''; 12 | } 13 | 14 | export function getZoneName() { 15 | return this._isUTC ? 'Coordinated Universal Time' : ''; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/units/units.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './day-of-month'; 3 | import './day-of-week'; 4 | import './day-of-year'; 5 | import './hour'; 6 | import './millisecond'; 7 | import './minute'; 8 | import './month'; 9 | import './offset'; 10 | import './quarter'; 11 | import './second'; 12 | import './timestamp'; 13 | import './timezone'; 14 | import './week-year'; 15 | import './week'; 16 | import './year'; 17 | 18 | import { normalizeUnits } from './aliases'; 19 | 20 | export { normalizeUnits }; 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/abs-ceil.js: -------------------------------------------------------------------------------- 1 | export default function absCeil(number) { 2 | if (number < 0) { 3 | return Math.floor(number); 4 | } else { 5 | return Math.ceil(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/abs-floor.js: -------------------------------------------------------------------------------- 1 | export default function absFloor(number) { 2 | if (number < 0) { 3 | // -0 -> 0 4 | return Math.ceil(number) || 0; 5 | } else { 6 | return Math.floor(number); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/abs-round.js: -------------------------------------------------------------------------------- 1 | export default function absRound(number) { 2 | if (number < 0) { 3 | return Math.round(-1 * number) * -1; 4 | } else { 5 | return Math.round(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/compare-arrays.js: -------------------------------------------------------------------------------- 1 | import toInt from './to-int'; 2 | 3 | // compare two arrays, return the number of differences 4 | export default function compareArrays(array1, array2, dontConvert) { 5 | var len = Math.min(array1.length, array2.length), 6 | lengthDiff = Math.abs(array1.length - array2.length), 7 | diffs = 0, 8 | i; 9 | for (i = 0; i < len; i++) { 10 | if ( 11 | (dontConvert && array1[i] !== array2[i]) || 12 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) 13 | ) { 14 | diffs++; 15 | } 16 | } 17 | return diffs + lengthDiff; 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/defaults.js: -------------------------------------------------------------------------------- 1 | // Pick the first defined of two or three arguments. 2 | export default function defaults(a, b, c) { 3 | if (a != null) { 4 | return a; 5 | } 6 | if (b != null) { 7 | return b; 8 | } 9 | return c; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/extend.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | export default function extend(a, b) { 4 | for (var i in b) { 5 | if (hasOwnProp(b, i)) { 6 | a[i] = b[i]; 7 | } 8 | } 9 | 10 | if (hasOwnProp(b, 'toString')) { 11 | a.toString = b.toString; 12 | } 13 | 14 | if (hasOwnProp(b, 'valueOf')) { 15 | a.valueOf = b.valueOf; 16 | } 17 | 18 | return a; 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/has-own-prop.js: -------------------------------------------------------------------------------- 1 | export default function hasOwnProp(a, b) { 2 | return Object.prototype.hasOwnProperty.call(a, b); 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/hooks.js: -------------------------------------------------------------------------------- 1 | export { hooks, setHookCallback }; 2 | 3 | var hookCallback; 4 | 5 | function hooks() { 6 | return hookCallback.apply(null, arguments); 7 | } 8 | 9 | // This is done to register the method called with moment() 10 | // without creating circular dependencies. 11 | function setHookCallback(callback) { 12 | hookCallback = callback; 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/index-of.js: -------------------------------------------------------------------------------- 1 | var indexOf; 2 | 3 | if (Array.prototype.indexOf) { 4 | indexOf = Array.prototype.indexOf; 5 | } else { 6 | indexOf = function (o) { 7 | // I know 8 | var i; 9 | for (i = 0; i < this.length; ++i) { 10 | if (this[i] === o) { 11 | return i; 12 | } 13 | } 14 | return -1; 15 | }; 16 | } 17 | 18 | export { indexOf as default }; 19 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-array.js: -------------------------------------------------------------------------------- 1 | export default function isArray(input) { 2 | return ( 3 | input instanceof Array || 4 | Object.prototype.toString.call(input) === '[object Array]' 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-calendar-spec.js: -------------------------------------------------------------------------------- 1 | import isObjectEmpty from './is-object-empty'; 2 | import hasOwnProp from './has-own-prop'; 3 | import isObject from './is-object'; 4 | 5 | export default function isCalendarSpec(input) { 6 | var objectTest = isObject(input) && !isObjectEmpty(input), 7 | propertyTest = false, 8 | properties = [ 9 | 'sameDay', 10 | 'nextDay', 11 | 'lastDay', 12 | 'nextWeek', 13 | 'lastWeek', 14 | 'sameElse', 15 | ], 16 | i, 17 | property; 18 | 19 | for (i = 0; i < properties.length; i += 1) { 20 | property = properties[i]; 21 | propertyTest = propertyTest || hasOwnProp(input, property); 22 | } 23 | 24 | return objectTest && propertyTest; 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-date.js: -------------------------------------------------------------------------------- 1 | export default function isDate(input) { 2 | return ( 3 | input instanceof Date || 4 | Object.prototype.toString.call(input) === '[object Date]' 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-function.js: -------------------------------------------------------------------------------- 1 | export default function isFunction(input) { 2 | return ( 3 | (typeof Function !== 'undefined' && input instanceof Function) || 4 | Object.prototype.toString.call(input) === '[object Function]' 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-leap-year.js: -------------------------------------------------------------------------------- 1 | export function isLeapYear(year) { 2 | return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-number.js: -------------------------------------------------------------------------------- 1 | export default function isNumber(input) { 2 | return ( 3 | typeof input === 'number' || 4 | Object.prototype.toString.call(input) === '[object Number]' 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-object-empty.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | export default function isObjectEmpty(obj) { 4 | if (Object.getOwnPropertyNames) { 5 | return Object.getOwnPropertyNames(obj).length === 0; 6 | } else { 7 | var k; 8 | for (k in obj) { 9 | if (hasOwnProp(obj, k)) { 10 | return false; 11 | } 12 | } 13 | return true; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-object.js: -------------------------------------------------------------------------------- 1 | export default function isObject(input) { 2 | // IE8 will treat undefined and null as object if it wasn't for 3 | // input != null 4 | return ( 5 | input != null && 6 | Object.prototype.toString.call(input) === '[object Object]' 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-string.js: -------------------------------------------------------------------------------- 1 | export default function isString(input) { 2 | return typeof input === 'string' || input instanceof String; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/is-undefined.js: -------------------------------------------------------------------------------- 1 | export default function isUndefined(input) { 2 | return input === void 0; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/keys.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | var keys; 4 | 5 | if (Object.keys) { 6 | keys = Object.keys; 7 | } else { 8 | keys = function (obj) { 9 | var i, 10 | res = []; 11 | for (i in obj) { 12 | if (hasOwnProp(obj, i)) { 13 | res.push(i); 14 | } 15 | } 16 | return res; 17 | }; 18 | } 19 | 20 | export { keys as default }; 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/map.js: -------------------------------------------------------------------------------- 1 | export default function map(arr, fn) { 2 | var res = [], 3 | i; 4 | for (i = 0; i < arr.length; ++i) { 5 | res.push(fn(arr[i], i)); 6 | } 7 | return res; 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/mod.js: -------------------------------------------------------------------------------- 1 | export default function mod(n, x) { 2 | return ((n % x) + x) % x; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/some.js: -------------------------------------------------------------------------------- 1 | var some; 2 | if (Array.prototype.some) { 3 | some = Array.prototype.some; 4 | } else { 5 | some = function (fun) { 6 | var t = Object(this), 7 | len = t.length >>> 0, 8 | i; 9 | 10 | for (i = 0; i < len; i++) { 11 | if (i in t && fun.call(this, t[i], i, t)) { 12 | return true; 13 | } 14 | } 15 | 16 | return false; 17 | }; 18 | } 19 | 20 | export { some as default }; 21 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/to-int.js: -------------------------------------------------------------------------------- 1 | import absFloor from './abs-floor'; 2 | 3 | export default function toInt(argumentForCoercion) { 4 | var coercedNumber = +argumentForCoercion, 5 | value = 0; 6 | 7 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { 8 | value = absFloor(coercedNumber); 9 | } 10 | 11 | return value; 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/moment/src/lib/utils/zero-fill.js: -------------------------------------------------------------------------------- 1 | export default function zeroFill(number, targetLength, forceSign) { 2 | var absNumber = '' + Math.abs(number), 3 | zerosToFill = targetLength - absNumber.length, 4 | sign = number >= 0; 5 | return ( 6 | (sign ? (forceSign ? '+' : '') : '-') + 7 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + 8 | absNumber 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /other/typora-tu-chuang.md: -------------------------------------------------------------------------------- 1 | # Typora图床 2 | 3 | -------------------------------------------------------------------------------- /sqlite/shu-ju-ku-gai-shu.md: -------------------------------------------------------------------------------- 1 | # 数据库概述 2 | 3 | -------------------------------------------------------------------------------- /ubuntu/use_notebook.md: -------------------------------------------------------------------------------- 1 | # 使用notebook 2 | 3 | --------------------------------------------------------------------------------