nextcloud/core/js/dist/files_fileinfo.js.map

1 line
92 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./core/src/files/fileinfo.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/underscore/modules/index.js","webpack:///./node_modules/underscore/modules/index-default.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","OC","FileInfo","data","self","this","_","each","isFunction","isUndefined","id","parseInt","path","type","mimetype","icon","permissions","mtime","etag","mountType","hasPreview","sharePermissions","Files","g","Function","e","window","root","global","ArrayProto","Array","ObjProto","SymbolProto","push","slice","toString","nativeIsArray","isArray","nativeKeys","keys","nativeCreate","_isNaN","isNaN","_isFinite","isFinite","Ctor","obj","_wrapped","VERSION","optimizeCb","func","context","argCount","index","collection","accumulator","apply","arguments","baseIteratee","identity","isObject","matcher","iteratee","Infinity","cb","restArguments","startIndex","length","Math","max","rest","args","baseCreate","result","shallowProperty","_has","deepGet","MAX_ARRAY_INDEX","pow","getLength","isArrayLike","_keys","map","results","currentKey","createReduce","dir","reducer","memo","initial","reduce","reduceRight","find","predicate","findIndex","findKey","filter","list","reject","negate","every","some","contains","item","fromIndex","guard","values","indexOf","invoke","contextPath","method","pluck","where","attrs","findWhere","computed","lastComputed","v","min","shuffle","sample","random","clone","last","rand","temp","sortBy","criteria","sort","left","right","a","b","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","toArray","isString","match","size","pass","first","array","compact","Boolean","_flatten","input","shallow","strict","output","idx","isArguments","j","len","flatten","without","otherArrays","difference","uniq","isSorted","isBoolean","seen","union","arrays","intersection","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","high","mid","floor","createIndexFinder","predicateFind","lastIndexOf","range","start","stop","step","ceil","chunk","count","executeBound","sourceFunc","boundFunc","callingContext","TypeError","bound","callArgs","concat","partial","boundArgs","placeholder","position","bindAll","Error","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","throttled","_now","remaining","clearTimeout","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","compose","after","times","before","once","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","constructor","proto","prop","allKeys","mapObject","pairs","invert","functions","names","createAssigner","keysFunc","defaults","source","extend","extendOwn","keyInObj","pick","omit","String","props","tap","interceptor","isMatch","eq","aStack","bStack","className","valueOf","areArrays","aCtor","bCtor","pop","deepEq","isEqual","isEmpty","isElement","nodeType","tagTester","isNumber","isDate","isRegExp","isError","isSymbol","isMap","isWeakMap","isSet","isWeakSet","nodelist","document","childNodes","parseFloat","isNull","has","constant","noop","propertyOf","accum","Int8Array","Date","getTime","escapeMap","unescapeMap","createEscaper","escaper","join","testRegexp","RegExp","replaceRegexp","string","test","replace","escape","unescape","fallback","idCounter","uniqueId","prefix","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","template","text","settings","oldSettings","render","offset","variable","argument","chain","instance","_chain","chainResult","mixin","toJSON"],"mappings":"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","file":"files_fileinfo.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1071);\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC) {\n\n\t/**\n\t * @class OC.Files.FileInfo\n\t * @classdesc File information\n\t *\n\t * @param {Object} data file data, see attributes for details\n\t *\n\t * @since 8.2\n\t */\n\tconst FileInfo = function(data) {\n\t\tconst self = this\n\t\t_.each(data, function(value, key) {\n\t\t\tif (!_.isFunction(value)) {\n\t\t\t\tself[key] = value\n\t\t\t}\n\t\t})\n\n\t\tif (!_.isUndefined(this.id)) {\n\t\t\tthis.id = parseInt(data.id, 10)\n\t\t}\n\n\t\t// TODO: normalize path\n\t\tthis.path = data.path || ''\n\n\t\tif (this.type === 'dir') {\n\t\t\tthis.mimetype = 'httpd/unix-directory'\n\t\t} else {\n\t\t\tthis.mimetype = this.mimetype || 'application/octet-stream'\n\t\t}\n\n\t\tif (!this.type) {\n\t\t\tif (this.mimetype === 'httpd/unix-directory') {\n\t\t\t\tthis.type = 'dir'\n\t\t\t} else {\n\t\t\t\tthis.type = 'file'\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @memberof OC.Files\n\t */\n\tFileInfo.prototype = {\n\t\t/**\n\t\t * File id\n\t\t *\n\t\t * @type int\n\t\t */\n\t\tid: null,\n\n\t\t/**\n\t\t * File name\n\t\t *\n\t\t * @type String\n\t\t */\n\t\tname: null,\n\n\t\t/**\n\t\t * Path leading to the file, without the file name,\n\t\t * and with a leading slash.\n\t\t *\n\t\t * @type String\n\t\t */\n\t\tpath: null,\n\n\t\t/**\n\t\t * Mime type\n\t\t *\n\t\t * @type String\n\t\t */\n\t\tmimetype: null,\n\n\t\t/**\n\t\t * Icon URL.\n\t\t *\n\t\t * Can be used to override the mime type icon.\n\t\t *\n\t\t * @type String\n\t\t */\n\t\ticon: null,\n\n\t\t/**\n\t\t * File type. 'file' for files, 'dir' for directories.\n\t\t *\n\t\t * @type String\n\t\t * @deprecated rely on mimetype instead\n\t\t */\n\t\ttype: null,\n\n\t\t/**\n\t\t * Permissions.\n\t\t *\n\t\t * @see OC#PERMISSION_ALL for permissions\n\t\t * @type int\n\t\t */\n\t\tpermissions: null,\n\n\t\t/**\n\t\t * Modification time\n\t\t *\n\t\t * @type int\n\t\t */\n\t\tmtime: null,\n\n\t\t/**\n\t\t * Etag\n\t\t *\n\t\t * @type String\n\t\t */\n\t\tetag: null,\n\n\t\t/**\n\t\t * Mount type.\n\t\t *\n\t\t * One of null, \"external-root\", \"shared\" or \"shared-root\"\n\t\t *\n\t\t * @type string\n\t\t */\n\t\tmountType: null,\n\n\t\t/**\n\t\t * @type boolean\n\t\t */\n\t\thasPreview: true,\n\n\t\t/**\n\t\t * @type int\n\t\t */\n\t\tsharePermissions: null,\n\t}\n\n\tif (!OC.Files) {\n\t\tOC.Files = {}\n\t}\n\tOC.Files.FileInfo = FileInfo\n})(OC)\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Underscore.js 1.10.2\n// https://underscorejs.org\n// (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup\n// --------------\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// All **ECMAScript 5** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = root.isNaN,\n _isFinite = root.isFinite;\n\n// Naked function reference for surrogate-prototype-swapping.\nvar Ctor = function(){};\n\n// The Underscore object. All exported functions below are added to it in the\n// modules/index-all.js using the mixin function.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n// Current version.\nexport var VERSION = _.VERSION = '1.10.2';\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because were not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only argCount argument.\n_.iteratee = iteratee;\nexport function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n\n// The function we actually call internally. It invokes _.iteratee if\n// overridden, otherwise baseIteratee.\nfunction cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the functions\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6s \"rest parameter\".\nexport function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\nfunction _has(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n}\n\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\nvar getLength = shallowProperty('length');\nfunction isArrayLike(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n}\n\n// Collection Functions\n// --------------------\n\n// The cornerstone, an `each` implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\nexport { each as forEach };\n\n// Return the results of applying the iteratee to each element.\nexport function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\nexport { map as collect };\n\n// Create a reducing function iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport var reduce = createReduce(1);\nexport { reduce as foldl, reduce as inject };\n\n// The right-associative version of reduce, also known as `foldr`.\nexport var reduceRight = createReduce(-1);\nexport { reduceRight as foldr };\n\n// Return the first value which passes a truth test.\nexport function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\nexport { find as detect };\n\n// Return all the elements that pass a truth test.\nexport function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\nexport { filter as select };\n\n// Return all the elements for which a truth test fails.\nexport function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements match a truth test.\nexport function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\nexport { every as all };\n\n// Determine if at least one element in the object matches a truth test.\nexport function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\nexport { some as any };\n\n// Determine if the array or object contains a given item (using `===`).\nexport function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\nexport { contains as includes, contains as include };\n\n// Invoke a method (with arguments) on every item in a collection.\nexport var invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else if (isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `map`: fetching a property.\nexport function pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `filter`: selecting only objects\n// containing specific `key:value` pairs.\nexport function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Convenience version of a common use case of `find`: getting the first object\n// containing specific `key:value` pairs.\nexport function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nexport function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nexport function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Shuffle a collection.\nexport function shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/FisherYates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `map`.\nexport function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport var groupBy = group(function(result, value, key) {\n if (_has(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `groupBy`, but for\n// when you know that your index values will be unique.\nexport var indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport var countBy = group(function(result, value, key) {\n if (_has(result, key)) result[key]++; else result[key] = 1;\n});\n\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n// Safely create a real, live array from anything iterable.\nexport function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in an object.\nexport function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Split a collection into two arrays: one whose elements all satisfy the given\n// predicate, and one whose elements all do not satisfy the predicate.\nexport var partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Array Functions\n// ---------------\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `map`.\nexport function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\nexport { first as head, first as take };\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Returns everything but the first entry of the array. Especially useful on\n// the arguments object. Passing an **n** will return the rest N values in the\n// array.\nexport function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\nexport { rest as tail, rest as drop };\n\n// Trim out all falsy values from an array.\nexport function compact(array) {\n return filter(array, Boolean);\n}\n\n// Internal implementation of a recursive `flatten` function.\nfunction _flatten(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n _flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Flatten out an array, either recursively (by default), or just one level.\nexport function flatten(array, shallow) {\n return _flatten(array, shallow, false);\n}\n\n// Return a version of the array that does not contain the specified value(s).\nexport var without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\nexport { uniq as unique };\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport var union = restArguments(function(arrays) {\n return uniq(_flatten(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport var difference = restArguments(function(array, rest) {\n rest = _flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport function unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport var zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of pairs.\nexport function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generator function to create the findIndex and findLastIndex functions.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a predicate test.\nexport var findIndex = createPredicateIndexFinder(1);\nexport var findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Generator function to create the indexOf and lastIndexOf functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport var indexOf = createIndexFinder(1, findIndex, sortedIndex);\nexport var lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Function (ahem) Functions\n// ------------------\n\n// Determines whether to execute a function as a constructor\n// or a normal function with the provided arguments.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n// available.\nexport var bind = restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. _ acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `partial.placeholder` for a custom placeholder argument.\nexport var partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport var bindAll = restArguments(function(obj, _keys) {\n _keys = _flatten(_keys, false, false);\n var index = _keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = _keys[index];\n obj[key] = bind(obj[key], obj);\n }\n});\n\n// Memoize an expensive function by storing its results.\nexport function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport var delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport var defer = partial(delay, _, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nexport function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nexport function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the Nth call.\nexport function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport var once = partial(before, 2);\n\n// Object Functions\n// ----------------\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\nfunction collectNonEnumProps(obj, _keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_has(obj, prop) && !contains(_keys, prop)) _keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !contains(_keys, prop)) {\n _keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var _keys = [];\n for (var key in obj) if (_has(obj, key)) _keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, _keys);\n return _keys;\n}\n\n// Retrieve all the property names of an object.\nexport function allKeys(obj) {\n if (!isObject(obj)) return [];\n var _keys = [];\n for (var key in obj) _keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, _keys);\n return _keys;\n}\n\n// Retrieve the values of an object's properties.\nexport function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Returns the results of applying the iteratee to each element of the object.\n// In contrast to map it returns an object.\nexport function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of object.\nexport function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nexport function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nexport function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\nexport { functions as methods };\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n _keys = keysFunc(source),\n l = _keys.length;\n for (var i = 0; i < l; i++) {\n var key = _keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nexport var extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport var extendOwn = createAssigner(keys);\nexport { extendOwn as assign };\n\n// Returns the first key on an object that passes a predicate test.\nexport function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal pick helper function to determine if `obj` has key `key`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the whitelisted properties.\nexport var pick = restArguments(function(obj, _keys) {\n var result = {}, iteratee = _keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (_keys.length > 1) iteratee = optimizeCb(iteratee, _keys[1]);\n _keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n _keys = _flatten(_keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = _keys.length; i < length; i++) {\n var key = _keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the blacklisted properties.\nexport var omit = restArguments(function(obj, _keys) {\n var iteratee = _keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (_keys.length > 1) context = _keys[1];\n } else {\n _keys = map(_flatten(_keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(_keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Fill in a given object with default properties.\nexport var defaults = createAssigner(allKeys, true);\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nexport function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes interceptor with the obj, and then returns obj.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(_has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport function isEqual(a, b) {\n return eq(a, b);\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport function isEmpty(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (isArray(obj) || isString(obj) || isArguments(obj))) return obj.length === 0;\n return keys(obj).length === 0;\n}\n\n// Is a given value a DOM element?\nexport function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a toString-based type tester.\nfunction tagTester(name) {\n return function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n}\n\n// Is a given value an array?\n// Delegates to ECMA5's native Array.isArray\nexport var isArray = nativeIsArray || tagTester('Array');\n\n// Is a given variable an object?\nexport function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\nexport var isArguments = tagTester('Arguments');\nexport var isFunction = tagTester('Function');\nexport var isString = tagTester('String');\nexport var isNumber = tagTester('Number');\nexport var isDate = tagTester('Date');\nexport var isRegExp = tagTester('RegExp');\nexport var isError = tagTester('Error');\nexport var isSymbol = tagTester('Symbol');\nexport var isMap = tagTester('Map');\nexport var isWeakMap = tagTester('WeakMap');\nexport var isSet = tagTester('Set');\nexport var isWeakSet = tagTester('WeakSet');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return _has(obj, 'callee');\n };\n }\n}());\n\n// Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n// IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\n// Is a given object a finite number?\nexport function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !_isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nexport function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Is a given value a boolean?\nexport function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value equal to null?\nexport function isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nexport function isUndefined(obj) {\n return obj === void 0;\n}\n\n// Shortcut function for checking if an object has a given property directly\n// on itself (in other words, not on a prototype).\nexport function has(obj, path) {\n if (!isArray(path)) {\n return _has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n}\n\n// Utility Functions\n// -----------------\n\n// Keep the identity function around for default iteratees.\nexport function identity(value) {\n return value;\n}\n\n// Predicate-generating functions. Often useful outside of Underscore.\nexport function constant(value) {\n return function() {\n return value;\n };\n}\n\nexport function noop(){}\n\n// Creates a function that, when passed an object, will traverse that objects\n// properties down the given `path`, specified as an array of keys or indexes.\nexport function property(path) {\n if (!isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Generates a function for a given object that returns a given property.\nexport function propertyOf(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !isArray(path) ? obj[path] : deepGet(obj, path);\n };\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\nexport { matcher as matches };\n\n// Run a function **n** times.\nexport function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between min and max (inclusive).\nexport function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nexport var now = Date.now || function() {\n return new Date().getTime();\n};\n\n// List of HTML entities for escaping.\nvar escapeMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;',\n '`': '&#x60;'\n};\nvar unescapeMap = invert(escapeMap);\n\n// Functions for escaping and unescaping strings to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\nexport var escape = createEscaper(escapeMap);\nexport var unescape = createEscaper(unescapeMap);\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport function result(obj, path, fallback) {\n if (!isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nexport var templateSettings = _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nvar escapeChar = function(match) {\n return '\\\\' + escapes[match];\n};\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Add a \"chain\" function. Start chaining a wrapped Underscore object.\nexport function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n\n// OOP\n// ---------------\n// If Underscore is called as a function, it returns a wrapped object that\n// can be used OO-style. This wrapper holds altered versions of all the\n// underscore functions. Wrapped objects may be chained.\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nexport function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n\n// Add all mutator Array functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor Array functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n});\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxy for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API\n_._ = _;\n// Export the Underscore API.\nexport default _;\n"],"sourceRoot":""}