summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/count_chars.js.map
blob: bd2c885fb81bbf0e2998eef1c7275a47ee905355 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/strings/count_chars.js"],"names":["module","exports","count_chars","str","mode","result","resultArr","i","split","sort","join","match","length","charCodeAt","String","fromCharCode","slice","push"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAsBC,GAAtB,EAA2BC,IAA3B,EAAiC;AAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,SAAS,EAAb;AACA,MAAIC,YAAY,EAAhB;AACA,MAAIC,CAAJ;;AAEAJ,QAAM,CAAC,KAAKA,GAAN,EACHK,KADG,CACG,EADH,EAEHC,IAFG,GAGHC,IAHG,CAGE,EAHF,EAIHC,KAJG,CAIG,SAJH,CAAN;;AAMA,MAAI,CAACP,OAAO,CAAR,MAAe,CAAnB,EAAsB;AACpB,SAAKG,IAAI,CAAT,EAAYA,MAAM,GAAlB,EAAuBA,GAAvB,EAA4B;AAC1BF,aAAOE,CAAP,IAAY,CAAZ;AACD;AACF;;AAED,MAAIH,SAAS,CAAT,IAAcA,SAAS,CAA3B,EAA8B;AAC5B,SAAKG,IAAI,CAAT,EAAYA,MAAMJ,IAAIS,MAAtB,EAA8BL,KAAK,CAAnC,EAAsC;AACpC,aAAOF,OAAOF,IAAII,CAAJ,EAAOM,UAAP,CAAkB,CAAlB,CAAP,CAAP;AACD;AACD,SAAKN,CAAL,IAAUF,MAAV,EAAkB;AAChBA,aAAOE,CAAP,IAAaH,SAAS,CAAV,GAAeU,OAAOC,YAAP,CAAoBR,CAApB,CAAf,GAAwC,CAApD;AACD;AACF,GAPD,MAOO,IAAIH,SAAS,CAAb,EAAgB;AACrB,SAAKG,IAAI,CAAT,EAAYA,MAAMJ,IAAIS,MAAtB,EAA8BL,KAAK,CAAnC,EAAsC;AACpCF,aAAOE,CAAP,IAAYJ,IAAII,CAAJ,EAAOS,KAAP,CAAa,CAAb,EAAgB,CAAhB,CAAZ;AACD;AACF,GAJM,MAIA;AACL,SAAKT,IAAI,CAAT,EAAYA,MAAMJ,IAAIS,MAAtB,EAA8BL,KAAK,CAAnC,EAAsC;AACpCF,aAAOF,IAAII,CAAJ,EAAOM,UAAP,CAAkB,CAAlB,CAAP,IAA+BV,IAAII,CAAJ,EAAOK,MAAtC;AACD;AACF;AACD,MAAIR,OAAO,CAAX,EAAc;AACZ,WAAOC,MAAP;AACD;;AAED,OAAKE,CAAL,IAAUF,MAAV,EAAkB;AAChBC,cAAUW,IAAV,CAAeZ,OAAOE,CAAP,CAAf;AACD;;AAED,SAAOD,UAAUI,IAAV,CAAe,EAAf,CAAP;AACD,CAtDD","file":"count_chars.js","sourcesContent":["module.exports = function count_chars (str, mode) { // eslint-disable-line camelcase\n  //  discuss at: http://locutus.io/php/count_chars/\n  // original by: Ates Goral (http://magnetiq.com)\n  // improved by: Jack\n  // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  //    input by: Brett Zamir (http://brett-zamir.me)\n  //  revised by: Theriault (https://github.com/Theriault)\n  //   example 1: count_chars(\"Hello World!\", 3)\n  //   returns 1: \" !HWdelor\"\n  //   example 2: count_chars(\"Hello World!\", 1)\n  //   returns 2: {32:1,33:1,72:1,87:1,100:1,101:1,108:3,111:2,114:1}\n\n  var result = {}\n  var resultArr = []\n  var i\n\n  str = ('' + str)\n    .split('')\n    .sort()\n    .join('')\n    .match(/(.)\\1*/g)\n\n  if ((mode & 1) === 0) {\n    for (i = 0; i !== 256; i++) {\n      result[i] = 0\n    }\n  }\n\n  if (mode === 2 || mode === 4) {\n    for (i = 0; i !== str.length; i += 1) {\n      delete result[str[i].charCodeAt(0)]\n    }\n    for (i in result) {\n      result[i] = (mode === 4) ? String.fromCharCode(i) : 0\n    }\n  } else if (mode === 3) {\n    for (i = 0; i !== str.length; i += 1) {\n      result[i] = str[i].slice(0, 1)\n    }\n  } else {\n    for (i = 0; i !== str.length; i += 1) {\n      result[str[i].charCodeAt(0)] = str[i].length\n    }\n  }\n  if (mode < 3) {\n    return result\n  }\n\n  for (i in result) {\n    resultArr.push(result[i])\n  }\n\n  return resultArr.join('')\n}\n"]}