File: /var/www/tana/frontend/node_modules/locutus/php/array/array_multisort.js.map
{"version":3,"sources":["../../../src/php/array/array_multisort.js"],"names":["module","exports","array_multisort","arr","g","i","j","k","l","sal","vkey","elIndex","lastSorts","tmpArray","zlast","sortFlag","thingsToSort","nLastSort","lastSort","args","arguments","flags","sortDuplicator","a","b","shift","sortFunctions","push","sortArrs","sortKeys","Object","prototype","toString","call","hasOwnProperty","arrMainLength","length","sortComponents","argl","lFlag","pop","sFunction","slice","sort","concat"],"mappings":"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","file":"array_multisort.js","sourcesContent":["module.exports = function array_multisort (arr) { // eslint-disable-line camelcase\n // discuss at: http://locutus.io/php/array_multisort/\n // original by: Theriault (https://github.com/Theriault)\n // example 1: array_multisort([1, 2, 1, 2, 1, 2], [1, 2, 3, 4, 5, 6])\n // returns 1: true\n // example 2: var $characters = {A: 'Edward', B: 'Locke', C: 'Sabin', D: 'Terra', E: 'Edward'}\n // example 2: var $jobs = {A: 'Warrior', B: 'Thief', C: 'Monk', D: 'Mage', E: 'Knight'}\n // example 2: array_multisort($characters, 'SORT_DESC', 'SORT_STRING', $jobs, 'SORT_ASC', 'SORT_STRING')\n // returns 2: true\n // example 3: var $lastnames = [ 'Carter','Adams','Monroe','Tyler','Madison','Kennedy','Adams']\n // example 3: var $firstnames = ['James', 'John' ,'James', 'John', 'James', 'John', 'John']\n // example 3: var $president = [ 39, 6, 5, 10, 4, 35, 2 ]\n // example 3: array_multisort($firstnames, 'SORT_DESC', 'SORT_STRING', $lastnames, 'SORT_ASC', 'SORT_STRING', $president, 'SORT_NUMERIC')\n // returns 3: true\n // note 1: flags: Translation table for sort arguments.\n // note 1: Each argument turns on certain bits in the flag byte through addition.\n // note 1: bits: HGFE DCBA\n // note 1: args: Holds pointer to arguments for reassignment\n\n var g\n var i\n var j\n var k\n var l\n var sal\n var vkey\n var elIndex\n var lastSorts\n var tmpArray\n var zlast\n\n var sortFlag = [0]\n var thingsToSort = []\n var nLastSort = []\n var lastSort = []\n // possibly redundant\n var args = arguments\n\n var flags = {\n 'SORT_REGULAR': 16,\n 'SORT_NUMERIC': 17,\n 'SORT_STRING': 18,\n 'SORT_ASC': 32,\n 'SORT_DESC': 40\n }\n\n var sortDuplicator = function (a, b) {\n return nLastSort.shift()\n }\n\n var sortFunctions = [\n [\n\n function (a, b) {\n lastSort.push(a > b ? 1 : (a < b ? -1 : 0))\n return a > b ? 1 : (a < b ? -1 : 0)\n },\n function (a, b) {\n lastSort.push(b > a ? 1 : (b < a ? -1 : 0))\n return b > a ? 1 : (b < a ? -1 : 0)\n }\n ],\n [\n\n function (a, b) {\n lastSort.push(a - b)\n return a - b\n },\n function (a, b) {\n lastSort.push(b - a)\n return b - a\n }\n ],\n [\n\n function (a, b) {\n lastSort.push((a + '') > (b + '') ? 1 : ((a + '') < (b + '') ? -1 : 0))\n return (a + '') > (b + '') ? 1 : ((a + '') < (b + '') ? -1 : 0)\n },\n function (a, b) {\n lastSort.push((b + '') > (a + '') ? 1 : ((b + '') < (a + '') ? -1 : 0))\n return (b + '') > (a + '') ? 1 : ((b + '') < (a + '') ? -1 : 0)\n }\n ]\n ]\n\n var sortArrs = [\n []\n ]\n\n var sortKeys = [\n []\n ]\n\n // Store first argument into sortArrs and sortKeys if an Object.\n // First Argument should be either a Javascript Array or an Object,\n // otherwise function would return FALSE like in PHP\n if (Object.prototype.toString.call(arr) === '[object Array]') {\n sortArrs[0] = arr\n } else if (arr && typeof arr === 'object') {\n for (i in arr) {\n if (arr.hasOwnProperty(i)) {\n sortKeys[0].push(i)\n sortArrs[0].push(arr[i])\n }\n }\n } else {\n return false\n }\n\n // arrMainLength: Holds the length of the first array.\n // All other arrays must be of equal length, otherwise function would return FALSE like in PHP\n // sortComponents: Holds 2 indexes per every section of the array\n // that can be sorted. As this is the start, the whole array can be sorted.\n var arrMainLength = sortArrs[0].length\n var sortComponents = [0, arrMainLength]\n\n // Loop through all other arguments, checking lengths and sort flags\n // of arrays and adding them to the above variables.\n var argl = arguments.length\n for (j = 1; j < argl; j++) {\n if (Object.prototype.toString.call(arguments[j]) === '[object Array]') {\n sortArrs[j] = arguments[j]\n sortFlag[j] = 0\n if (arguments[j].length !== arrMainLength) {\n return false\n }\n } else if (arguments[j] && typeof arguments[j] === 'object') {\n sortKeys[j] = []\n sortArrs[j] = []\n sortFlag[j] = 0\n for (i in arguments[j]) {\n if (arguments[j].hasOwnProperty(i)) {\n sortKeys[j].push(i)\n sortArrs[j].push(arguments[j][i])\n }\n }\n if (sortArrs[j].length !== arrMainLength) {\n return false\n }\n } else if (typeof arguments[j] === 'string') {\n var lFlag = sortFlag.pop()\n // Keep extra parentheses around latter flags check\n // to avoid minimization leading to CDATA closer\n if (typeof flags[arguments[j]] === 'undefined' ||\n ((((flags[arguments[j]]) >>> 4) & (lFlag >>> 4)) > 0)) {\n return false\n }\n sortFlag.push(lFlag + flags[arguments[j]])\n } else {\n return false\n }\n }\n\n for (i = 0; i !== arrMainLength; i++) {\n thingsToSort.push(true)\n }\n\n // Sort all the arrays....\n for (i in sortArrs) {\n if (sortArrs.hasOwnProperty(i)) {\n lastSorts = []\n tmpArray = []\n elIndex = 0\n nLastSort = []\n lastSort = []\n\n // If there are no sortComponents, then no more sorting is neeeded.\n // Copy the array back to the argument.\n if (sortComponents.length === 0) {\n if (Object.prototype.toString.call(arguments[i]) === '[object Array]') {\n args[i] = sortArrs[i]\n } else {\n for (k in arguments[i]) {\n if (arguments[i].hasOwnProperty(k)) {\n delete arguments[i][k]\n }\n }\n sal = sortArrs[i].length\n for (j = 0, vkey = 0; j < sal; j++) {\n vkey = sortKeys[i][j]\n args[i][vkey] = sortArrs[i][j]\n }\n }\n delete sortArrs[i]\n delete sortKeys[i]\n continue\n }\n\n // Sort function for sorting. Either sorts asc or desc, regular/string or numeric.\n var sFunction = sortFunctions[(sortFlag[i] & 3)][((sortFlag[i] & 8) > 0) ? 1 : 0]\n\n // Sort current array.\n for (l = 0; l !== sortComponents.length; l += 2) {\n tmpArray = sortArrs[i].slice(sortComponents[l], sortComponents[l + 1] + 1)\n tmpArray.sort(sFunction)\n // Is there a better way to copy an array in Javascript?\n lastSorts[l] = [].concat(lastSort)\n elIndex = sortComponents[l]\n for (g in tmpArray) {\n if (tmpArray.hasOwnProperty(g)) {\n sortArrs[i][elIndex] = tmpArray[g]\n elIndex++\n }\n }\n }\n\n // Duplicate the sorting of the current array on future arrays.\n sFunction = sortDuplicator\n for (j in sortArrs) {\n if (sortArrs.hasOwnProperty(j)) {\n if (sortArrs[j] === sortArrs[i]) {\n continue\n }\n for (l = 0; l !== sortComponents.length; l += 2) {\n tmpArray = sortArrs[j].slice(sortComponents[l], sortComponents[l + 1] + 1)\n // alert(l + ':' + nLastSort);\n nLastSort = [].concat(lastSorts[l])\n tmpArray.sort(sFunction)\n elIndex = sortComponents[l]\n for (g in tmpArray) {\n if (tmpArray.hasOwnProperty(g)) {\n sortArrs[j][elIndex] = tmpArray[g]\n elIndex++\n }\n }\n }\n }\n }\n\n // Duplicate the sorting of the current array on array keys\n for (j in sortKeys) {\n if (sortKeys.hasOwnProperty(j)) {\n for (l = 0; l !== sortComponents.length; l += 2) {\n tmpArray = sortKeys[j].slice(sortComponents[l], sortComponents[l + 1] + 1)\n nLastSort = [].concat(lastSorts[l])\n tmpArray.sort(sFunction)\n elIndex = sortComponents[l]\n for (g in tmpArray) {\n if (tmpArray.hasOwnProperty(g)) {\n sortKeys[j][elIndex] = tmpArray[g]\n elIndex++\n }\n }\n }\n }\n }\n\n // Generate the next sortComponents\n zlast = null\n sortComponents = []\n for (j in sortArrs[i]) {\n if (sortArrs[i].hasOwnProperty(j)) {\n if (!thingsToSort[j]) {\n if ((sortComponents.length & 1)) {\n sortComponents.push(j - 1)\n }\n zlast = null\n continue\n }\n if (!(sortComponents.length & 1)) {\n if (zlast !== null) {\n if (sortArrs[i][j] === zlast) {\n sortComponents.push(j - 1)\n } else {\n thingsToSort[j] = false\n }\n }\n zlast = sortArrs[i][j]\n } else {\n if (sortArrs[i][j] !== zlast) {\n sortComponents.push(j - 1)\n zlast = sortArrs[i][j]\n }\n }\n }\n }\n\n if (sortComponents.length & 1) {\n sortComponents.push(j)\n }\n if (Object.prototype.toString.call(arguments[i]) === '[object Array]') {\n args[i] = sortArrs[i]\n } else {\n for (j in arguments[i]) {\n if (arguments[i].hasOwnProperty(j)) {\n delete arguments[i][j]\n }\n }\n\n sal = sortArrs[i].length\n for (j = 0, vkey = 0; j < sal; j++) {\n vkey = sortKeys[i][j]\n args[i][vkey] = sortArrs[i][j]\n }\n }\n delete sortArrs[i]\n delete sortKeys[i]\n }\n }\n return true\n}\n"]}