{"version":3,"sources":["jsdelivr-header.js","/npm/@ts-utils/array@2.0.2/lib/frequencies.js","/npm/@ts-utils/array@2.0.2/lib/sum.js","/npm/@ts-utils/array@2.0.2/lib/map.js","/npm/@ts-utils/array@2.0.2/lib/filter.js","/npm/@ts-utils/array@2.0.2/lib/contains.js","/npm/@ts-utils/array@2.0.2/lib/count.js","/npm/@ts-utils/array@2.0.2/lib/max.js","/npm/@ts-utils/array@2.0.2/lib/average.js","/npm/@ts-utils/array@2.0.2/lib/min.js"],"names":[],"mappings":"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","file":"/npm/@ts-utils/array@2.0.2/dist/index.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@ts-utils/array@2.0.2/dist/index.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Returns the frequency of each value in an array.\n * @param array - the array to get the frequencies of\n * @returns the frequency of each value in an array\n * @public\n */\nexport function frequencies(array) {\n    var _frequencies = new Map();\n    array.forEach(function (value) {\n        _frequencies.set(value, (_frequencies.get(value) || 0) + 1);\n    });\n    return _frequencies;\n}\n//# sourceMappingURL=frequencies.js.map","/**\n * Returns the sum of the values of a numerical array.\n * @param array - the array to get the sum of\n * @returns the sum of the values\n * @public\n */\nexport function sum(array) {\n    return array.reduce(function (previousValue, currentValue) { return previousValue + currentValue; });\n}\n//# sourceMappingURL=sum.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\n/**\n * Maps the values in an array asynchronously.\n * @param array - the array to map\n * @param callback - the asynchronous map function\n * @returns the mapped array\n * @public\n */\nexport function mapAsync(// tslint:disable-line:export-name\narray, callback) {\n    return __awaiter(this, void 0, void 0, function () {\n        return __generator(this, function (_a) {\n            return [2 /*return*/, Promise.all(array.map(callback))];\n        });\n    });\n}\n//# sourceMappingURL=map.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nimport { mapAsync } from './map';\n/**\n * Filters the values in an array asynchronously.\n * @param array - the array to filter\n * @param callback - the asynchronous filter function\n * @returns the filtered array\n * @public\n */\nexport function filterAsync(// tslint:disable-line:export-name\narray, callback) {\n    return __awaiter(this, void 0, void 0, function () {\n        var booleans;\n        return __generator(this, function (_a) {\n            switch (_a.label) {\n                case 0: return [4 /*yield*/, mapAsync(array, callback)];\n                case 1:\n                    booleans = _a.sent();\n                    return [2 /*return*/, array.filter(function (value, index) { return booleans[index]; })];\n            }\n        });\n    });\n}\n//# sourceMappingURL=filter.js.map","/**\n * Determines if an array contains a specified value.\n * @param array - the array to search\n * @param value - the value to search for\n * @returns true if the array contains the value; otherwise, false\n * @public\n */\nexport function contains(array, value) {\n    return array.indexOf(value) >= 0;\n}\n//# sourceMappingURL=contains.js.map","export function count(array, callback) {\n    if (!callback) {\n        return array.length;\n    }\n    else {\n        return array.map(callback).filter(function (value) { return value; }).length;\n    }\n}\n//# sourceMappingURL=count.js.map","/**\n * Returns the maximum value of an array.\n * @param array - the array to get the maximum of\n * @returns the maximum value\n * @public\n */\nexport function max(array) {\n    return array.sort(function (a, b) { return b - a; })[0];\n}\n//# sourceMappingURL=max.js.map","import { frequencies } from './frequencies';\nimport { sum } from './sum';\n/**\n * Returns the mean of an array of numerical values.\n * @param array - the array to calculate the mean of\n * @returns the mean of the array\n * @public\n */\nexport function mean(array) {\n    return sum(array) / array.length;\n}\n/**\n * Returns the median of an array of numerical values.\n * @param array - the array to calculate the median of\n * @returns the median of the array\n * @public\n */\nexport function median(array) {\n    if (array.length > 1) {\n        array = array.sort();\n        return (array.length + 1) % 2 === 0 ?\n            array[((array.length + 1) / 2) - 1] :\n            (array[Math.floor((array.length + 1) / 2) - 1] +\n                array[Math.ceil((array.length + 1) / 2) - 1]) / 2;\n    }\n    else {\n        throw new Error('The array does not contain enough values to calculate the median.');\n    }\n}\n/**\n * Returns the mode of an array of numerical values.\n * @param array - the array to calculate the mode of\n * @returns the mode of the array\n * @public\n */\nexport function mode(array) {\n    var _frequencies = frequencies(array);\n    var _max = -1;\n    var _mode = -1;\n    _frequencies.forEach(function (value, key) {\n        if (_max < value) {\n            _max = value;\n            _mode = key;\n        }\n    });\n    return _mode;\n}\n/**\n * Returns the range of an array of numerical values.\n * @param array - the array to calculate the range of\n * @returns the range of the array\n * @public\n */\nexport function range(array) {\n    if (array.length > 1) {\n        array = array.sort();\n        return array[array.length - 1] - array[0];\n    }\n    else {\n        throw new Error('The array does not contain enough values to calculate the range.');\n    }\n}\n//# sourceMappingURL=average.js.map","/**\n * Returns the minimum value of an array.\n * @param array - the array to get the minimum of\n * @returns the minimum value\n * @public\n */\nexport function min(array) {\n    return array.sort(function (a, b) { return a - b; })[0];\n}\n//# sourceMappingURL=min.js.map"]}