text: /**
   * @name string-trim-spaces-only
   * @fileoverview Like String.trim() but you can choose granularly what to trim
   * @version 3.1.0
   * @author Roy Revelt, Codsen Ltd
   * @license MIT
   * {@link https://codsen.com/os/string-trim-spaces-only/}
   */
  
  'use strict';
  
  Object.defineProperty(exports, '__esModule', { value: true });
  
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
  var _typeof = require('@babel/runtime/helpers/typeof');
  
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
  
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
  var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
  
  var version$1 = "3.1.0";
  
  var version = version$1;
  var defaults = {
    classicTrim: false,
    cr: false,
    lf: false,
    tab: false,
    space: true,
    nbsp: false
  };
  function trimSpaces(str, originalOpts) {
    if (typeof str !== "string") {
      throw new Error("string-trim-spaces-only: [THROW_ID_01] input must be string! It was given as ".concat(_typeof__default['default'](str), ", equal to:\n").concat(JSON.stringify(str, null, 4)));
    }
    var opts = _objectSpread__default['default'](_objectSpread__default['default']({}, defaults), originalOpts);
    function check(_char) {
      return opts.classicTrim && !_char.trim() || !opts.classicTrim && (opts.space && _char === " " || opts.cr && _char === "\r" || opts.lf && _char === "\n" || opts.tab && _char === "\t" || opts.nbsp && _char === "\xA0");
    }
    var newStart;
    var newEnd;
    if (str.length) {
      if (check(str[0])) {
        for (var i = 0, len = str.length; i < len; i++) {
          if (!check(str[i])) {
            newStart = i;
            break;
          }
          if (i === str.length - 1) {
            return {
              res: "",
              ranges: [[0, str.length]]
            };
          }
        }
      }
      if (check(str[str.length - 1])) {
        for (var _i = str.length; _i--;) {
          if (!check(str[_i])) {
            newEnd = _i + 1;
            break;
          }
        }
      }
      if (newStart) {
        if (newEnd) {
          return {
            res: str.slice(newStart, newEnd),
            ranges: [[0, newStart], [newEnd, str.length]]
          };
        }
        return {
          res: str.slice(newStart),
          ranges: [[0, newStart]]
        };
      }
      if (newEnd) {
        return {
          res: str.slice(0, newEnd),
          ranges: [[newEnd, str.length]]
        };
      }
      return {
        res: str,
        ranges: []
      };
    }
    return {
      res: "",
      ranges: []
    };
  }
  
  exports.defaults = defaults;
  exports.trimSpaces = trimSpaces;
  exports.version = version;
  