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"]}