File: //proc/1526/task/1922/cwd/zaklada/html/node_modules/string-width/index.js
'use strict';
var stripAnsi = require('strip-ansi');
var codePointAt = require('code-point-at');
var isFullwidthCodePoint = require('is-fullwidth-code-point');
// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345
module.exports = function (str) {
	if (typeof str !== 'string' || str.length === 0) {
		return 0;
	}
	var width = 0;
	str = stripAnsi(str);
	for (var i = 0; i < str.length; i++) {
		var code = codePointAt(str, i);
		// ignore control characters
		if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {
			continue;
		}
		// surrogates
		if (code >= 0x10000) {
			i++;
		}
		if (isFullwidthCodePoint(code)) {
			width += 2;
		} else {
			width++;
		}
	}
	return width;
};