File: /var/www/tana/frontend/node_modules/locutus/php/strings/str_word_count.js.map
{"version":3,"sources":["../../../src/php/strings/str_word_count.js"],"names":["module","exports","str_word_count","str","format","charlist","ctypeAlpha","require","len","length","cl","chr","tmpStr","i","c","wArr","wC","assoc","aC","reg","match","_pregQuote","replace","_getWholeChar","code","charCodeAt","charAt","Error","next","prev","RegExp","search"],"mappings":"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","file":"str_word_count.js","sourcesContent":["module.exports = function str_word_count (str, format, charlist) { // eslint-disable-line camelcase\n  //  discuss at: http://locutus.io/php/str_word_count/\n  // original by: Ole Vrijenhoek\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //    input by: Bug?\n  // improved by: Brett Zamir (http://brett-zamir.me)\n  //   example 1: str_word_count(\"Hello fri3nd, you're\\r\\n       looking          good today!\", 1)\n  //   returns 1: ['Hello', 'fri', 'nd', \"you're\", 'looking', 'good', 'today']\n  //   example 2: str_word_count(\"Hello fri3nd, you're\\r\\n       looking          good today!\", 2)\n  //   returns 2: {0: 'Hello', 6: 'fri', 10: 'nd', 14: \"you're\", 29: 'looking', 46: 'good', 51: 'today'}\n  //   example 3: str_word_count(\"Hello fri3nd, you're\\r\\n       looking          good today!\", 1, '\\u00e0\\u00e1\\u00e3\\u00e73')\n  //   returns 3: ['Hello', 'fri3nd', \"you're\", 'looking', 'good', 'today']\n  //   example 4: str_word_count('hey', 2)\n  //   returns 4: {0: 'hey'}\n\n  var ctypeAlpha = require('../ctype/ctype_alpha')\n  var len = str.length\n  var cl = charlist && charlist.length\n  var chr = ''\n  var tmpStr = ''\n  var i = 0\n  var c = ''\n  var wArr = []\n  var wC = 0\n  var assoc = {}\n  var aC = 0\n  var reg = ''\n  var match = false\n\n  var _pregQuote = function (str) {\n    return (str + '').replace(/([\\\\.+*?[^\\]$(){}=!<>|:])/g, '\\\\$1')\n  }\n  var _getWholeChar = function (str, i) {\n    // Use for rare cases of non-BMP characters\n    var code = str.charCodeAt(i)\n    if (code < 0xD800 || code > 0xDFFF) {\n      return str.charAt(i)\n    }\n    if (code >= 0xD800 && code <= 0xDBFF) {\n      // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single\n      // characters)\n      if (str.length <= (i + 1)) {\n        throw new Error('High surrogate without following low surrogate')\n      }\n      var next = str.charCodeAt(i + 1)\n      if (next < 0xDC00 || next > 0xDFFF) {\n        throw new Error('High surrogate without following low surrogate')\n      }\n      return str.charAt(i) + str.charAt(i + 1)\n    }\n    // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n    if (i === 0) {\n      throw new Error('Low surrogate without preceding high surrogate')\n    }\n    var prev = str.charCodeAt(i - 1)\n    if (prev < 0xD800 || prev > 0xDBFF) {\n      // (could change last hex to 0xDB7F to treat high private surrogates as single characters)\n      throw new Error('Low surrogate without preceding high surrogate')\n    }\n    // We can pass over low surrogates now as the second component in a pair which we have already\n    // processed\n    return false\n  }\n\n  if (cl) {\n    reg = '^(' + _pregQuote(_getWholeChar(charlist, 0))\n    for (i = 1; i < cl; i++) {\n      if ((chr = _getWholeChar(charlist, i)) === false) {\n        continue\n      }\n      reg += '|' + _pregQuote(chr)\n    }\n    reg += ')$'\n    reg = new RegExp(reg)\n  }\n\n  for (i = 0; i < len; i++) {\n    if ((c = _getWholeChar(str, i)) === false) {\n      continue\n    }\n    // No hyphen at beginning or end unless allowed in charlist (or locale)\n    // No apostrophe at beginning unless allowed in charlist (or locale)\n    // @todo: Make this more readable\n    match = ctypeAlpha(c) ||\n      (reg && c.search(reg) !== -1) ||\n      ((i !== 0 && i !== len - 1) && c === '-') ||\n      (i !== 0 && c === \"'\")\n    if (match) {\n      if (tmpStr === '' && format === 2) {\n        aC = i\n      }\n      tmpStr = tmpStr + c\n    }\n    if (i === len - 1 || !match && tmpStr !== '') {\n      if (format !== 2) {\n        wArr[wArr.length] = tmpStr\n      } else {\n        assoc[aC] = tmpStr\n      }\n      tmpStr = ''\n      wC++\n    }\n  }\n\n  if (!format) {\n    return wC\n  } else if (format === 1) {\n    return wArr\n  } else if (format === 2) {\n    return assoc\n  }\n\n  throw new Error('You have supplied an incorrect format')\n}\n"]}