UNPKG

@demouth/mb_strwidth

Version:

Calculates the width of a string, where halfwidth characters count as 1, and fullwidth characters count as 2.

8 lines (7 loc) 7.73 kB
/** * @license * mb_strwidth.js v2.0.2 * Released under the MIT License. */ var mb_strwidth=function(){"use strict";return(t="")=>{let r=0;const o=Array.from(t);for(const t of o){const o=t.codePointAt(0);void 0!==o&&(r+=4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12288<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||65281<=o&&o<=65376||65504<=o&&o<=65510||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=196605||196608<=o&&o<=262141?2:1)}return r}}(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWJfc3Ryd2lkdGgubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWJfc3Ryd2lkdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBtYl9zdHJ3aWR0aFxuICpcbiAqIFRoZSBmdWxsd2lkdGggY2hhcmFjdGVycyBhcmU6IFUrMTEwMC1VKzExNUYsIFUrMTFBMy1VKzExQTcsIFUrMTFGQS1VKzExRkYsIFUrMjMyOS1VKzIzMkEsIFUrMkU4MC1VKzJFOTksIFUrMkU5Qi1VKzJFRjMsIFUrMkYwMC1VKzJGRDUsIFUrMkZGMC1VKzJGRkIsIFUrMzAwMC1VKzMwM0UsIFUrMzA0MS1VKzMwOTYsIFUrMzA5OS1VKzMwRkYsIFUrMzEwNS1VKzMxMkQsIFUrMzEzMS1VKzMxOEUsIFUrMzE5MC1VKzMxQkEsIFUrMzFDMC1VKzMxRTMsIFUrMzFGMC1VKzMyMUUsIFUrMzIyMC1VKzMyNDcsIFUrMzI1MC1VKzMyRkUsIFUrMzMwMC1VKzREQkYsIFUrNEUwMC1VK0E0OEMsIFUrQTQ5MC1VK0E0QzYsIFUrQTk2MC1VK0E5N0MsIFUrQUMwMC1VK0Q3QTMsIFUrRDdCMC1VK0Q3QzYsIFUrRDdDQi1VK0Q3RkIsIFUrRjkwMC1VK0ZBRkYsIFUrRkUxMC1VK0ZFMTksIFUrRkUzMC1VK0ZFNTIsIFUrRkU1NC1VK0ZFNjYsIFUrRkU2OC1VK0ZFNkIsIFUrRkYwMS1VK0ZGNjAsIFUrRkZFMC1VK0ZGRTYsIFUrMUIwMDAtVSsxQjAwMSwgVSsxRjIwMC1VKzFGMjAyLCBVKzFGMjEwLVUrMUYyM0EsIFUrMUYyNDAtVSsxRjI0OCwgVSsxRjI1MC1VKzFGMjUxLCBVKzIwMDAwLVUrMkZGRkQsIFUrMzAwMDAtVSszRkZGRC4gQWxsIG90aGVyIGNoYXJhY3RlcnMgYXJlIGhhbGZ3aWR0aCBjaGFyYWN0ZXJzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24ubWItc3Ryd2lkdGgucGhwXG4gKi9cbmV4cG9ydCBkZWZhdWx0IChzdHIgPSAnJyk6IG51bWJlciA9PiB7XG4gIGxldCBsZW5ndGggPSAwO1xuICBjb25zdCBjaGFycyA9IEFycmF5LmZyb20oc3RyKTtcbiAgZm9yIChjb25zdCBjaGFyIG9mIGNoYXJzKSB7XG4gICAgY29uc3QgY3AgPSBjaGFyLmNvZGVQb2ludEF0KDApO1xuICAgIGlmIChjcCA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcblxuICAgIGlmICgweDExMDAgPD0gY3AgJiYgY3AgPD0gMHgxMTVGKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MTFBMyA8PSBjcCAmJiBjcCA8PSAweDExQTcpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgxMUZBIDw9IGNwICYmIGNwIDw9IDB4MTFGRikge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDIzMjkgPD0gY3AgJiYgY3AgPD0gMHgyMzJBKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MkU4MCA8PSBjcCAmJiBjcCA8PSAweDJFOTkpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgyRTlCIDw9IGNwICYmIGNwIDw9IDB4MkVGMykge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDJGMDAgPD0gY3AgJiYgY3AgPD0gMHgyRkQ1KSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MkZGMCA8PSBjcCAmJiBjcCA8PSAweDJGRkIpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgzMDAwIDw9IGNwICYmIGNwIDw9IDB4MzAzRSkge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDMwNDEgPD0gY3AgJiYgY3AgPD0gMHgzMDk2KSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MzA5OSA8PSBjcCAmJiBjcCA8PSAweDMwRkYpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgzMTA1IDw9IGNwICYmIGNwIDw9IDB4MzEyRCkge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDMxMzEgPD0gY3AgJiYgY3AgPD0gMHgzMThFKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MzE5MCA8PSBjcCAmJiBjcCA8PSAweDMxQkEpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgzMUMwIDw9IGNwICYmIGNwIDw9IDB4MzFFMykge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDMxRjAgPD0gY3AgJiYgY3AgPD0gMHgzMjFFKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MzIyMCA8PSBjcCAmJiBjcCA8PSAweDMyNDcpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgzMjUwIDw9IGNwICYmIGNwIDw9IDB4MzJGRSkge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDMzMDAgPD0gY3AgJiYgY3AgPD0gMHg0REJGKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4NEUwMCA8PSBjcCAmJiBjcCA8PSAweEE0OEMpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHhBNDkwIDw9IGNwICYmIGNwIDw9IDB4QTRDNikge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweEE5NjAgPD0gY3AgJiYgY3AgPD0gMHhBOTdDKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4QUMwMCA8PSBjcCAmJiBjcCA8PSAweEQ3QTMpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHhEN0IwIDw9IGNwICYmIGNwIDw9IDB4RDdDNikge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweEQ3Q0IgPD0gY3AgJiYgY3AgPD0gMHhEN0ZCKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4RjkwMCA8PSBjcCAmJiBjcCA8PSAweEZBRkYpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHhGRTEwIDw9IGNwICYmIGNwIDw9IDB4RkUxOSkge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweEZFMzAgPD0gY3AgJiYgY3AgPD0gMHhGRTUyKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4RkU1NCA8PSBjcCAmJiBjcCA8PSAweEZFNjYpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHhGRTY4IDw9IGNwICYmIGNwIDw9IDB4RkU2Qikge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweEZGMDEgPD0gY3AgJiYgY3AgPD0gMHhGRjYwKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4RkZFMCA8PSBjcCAmJiBjcCA8PSAweEZGRTYpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgxQjAwMCA8PSBjcCAmJiBjcCA8PSAweDFCMDAxKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MUYyMDAgPD0gY3AgJiYgY3AgPD0gMHgxRjIwMikge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDFGMjEwIDw9IGNwICYmIGNwIDw9IDB4MUYyM0EpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgxRjI0MCA8PSBjcCAmJiBjcCA8PSAweDFGMjQ4KSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2UgaWYgKDB4MUYyNTAgPD0gY3AgJiYgY3AgPD0gMHgxRjI1MSkge1xuICAgICAgbGVuZ3RoICs9IDI7XG4gICAgfSBlbHNlIGlmICgweDIwMDAwIDw9IGNwICYmIGNwIDw9IDB4MkZGRkQpIHtcbiAgICAgIGxlbmd0aCArPSAyO1xuICAgIH0gZWxzZSBpZiAoMHgzMDAwMCA8PSBjcCAmJiBjcCA8PSAweDNGRkZEKSB7XG4gICAgICBsZW5ndGggKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoICs9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBsZW5ndGg7XG59XG4iXSwibmFtZXMiOlsic3RyIiwibGVuZ3RoIiwiY2hhcnMiLCJBcnJheSIsImZyb20iLCJjaGFyIiwiY3AiLCJjb2RlUG9pbnRBdCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OENBT2UsQ0FBQ0EsRUFBTSxNQUNwQixJQUFJQyxFQUFTLEVBQ2IsTUFBTUMsRUFBUUMsTUFBTUMsS0FBS0osR0FDekIsSUFBSyxNQUFNSyxLQUFRSCxFQUFPLENBQ3hCLE1BQU1JLEVBQUtELEVBQUtFLFlBQVksUUFDakJDLElBQVBGLElBR0ZMLEdBREUsTUFBVUssR0FBTUEsR0FBTSxNQUVmLE1BQVVBLEdBQU1BLEdBQU0sTUFFdEIsTUFBVUEsR0FBTUEsR0FBTSxNQUV0QixNQUFVQSxHQUFNQSxHQUFNLE1BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsT0FBVUEsR0FBTUEsR0FBTSxPQUV0QixPQUFVQSxHQUFNQSxHQUFNLE9BRXRCLE9BQVVBLEdBQU1BLEdBQU0sT0FFdEIsUUFBV0EsR0FBTUEsR0FBTSxRQUV2QixRQUFXQSxHQUFNQSxHQUFNLFFBRXZCLFFBQVdBLEdBQU1BLEdBQU0sUUFFdkIsUUFBV0EsR0FBTUEsR0FBTSxRQUV2QixRQUFXQSxHQUFNQSxHQUFNLFFBRXZCLFFBQVdBLEdBQU1BLEdBQU0sUUFFdkIsUUFBV0EsR0FBTUEsR0FBTSxPQTNFdEIsRUE4RUEsRUFFYixDQUNELE9BQU9MLENBQU0ifQ==