(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.returnExports = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o * @copyright Xotic750 * @license {@link MIT} * @module property-is-enumerable-x */ 'use strict'; var toPropertyKey = _dereq_('to-property-key-x'); var toObject = _dereq_('to-object-x'); var propIsEnumerable = Object.prototype.propertyIsEnumerable; /** * This method returns a Boolean indicating whether the specified property is * enumerable. Does not attempt to fix bugs in IE<9 or old Opera, otherwise it * does ES6ify the method. * * @param {!Object} object - The object on which to test the property. * @param {string|Symbol} property - The name of the property to test. * @throws {TypeError} If target is null or undefined. * @returns {boolean} A Boolean indicating whether the specified property is * enumerable. * @example * var propertyIsEnumerable = require('property-is-enumerable-x'); * * var o = {}; * var a = []; * o.prop = 'is enumerable'; * a[0] = 'is enumerable'; * * propertyIsEnumerable(o, 'prop'); // true * propertyIsEnumerable(a, 0); // true */ module.exports = function propertyIsEnumerable(object, property) { return propIsEnumerable.call(toObject(object), toPropertyKey(property)); }; },{"to-object-x":14,"to-property-key-x":16}],2:[function(_dereq_,module,exports){ /** * @file Tests if ES6 Symbol is supported. * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module has-symbol-support-x */ 'use strict'; /** * Indicates if `Symbol`exists and creates the correct type. * `true`, if it exists and creates the correct type, otherwise `false`. * * @type boolean */ module.exports = typeof Symbol === 'function' && typeof Symbol('') === 'symbol'; },{}],3:[function(_dereq_,module,exports){ /** * @file Tests if ES6 @@toStringTag is supported. * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag|26.3.1 @@toStringTag} * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module has-to-string-tag-x */ 'use strict'; /** * Indicates if `Symbol.toStringTag`exists and is the correct type. * `true`, if it exists and is the correct type, otherwise `false`. * * @type boolean */ module.exports = _dereq_('has-symbol-support-x') && typeof Symbol.toStringTag === 'symbol'; },{"has-symbol-support-x":2}],4:[function(_dereq_,module,exports){ 'use strict'; var getDay = Date.prototype.getDay; var tryDateObject = function tryDateObject(value) { try { getDay.call(value); return true; } catch (e) { return false; } }; var toStr = Object.prototype.toString; var dateClass = '[object Date]'; var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; module.exports = function isDateObject(value) { if (typeof value !== 'object' || value === null) { return false; } return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; }; },{}],5:[function(_dereq_,module,exports){ /** * @file Determine whether a given value is a function object. * @version 3.1.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module is-function-x */ 'use strict'; var fToString = Function.prototype.toString; var toStringTag = _dereq_('to-string-tag-x'); var hasToStringTag = _dereq_('has-to-string-tag-x'); var isPrimitive = _dereq_('is-primitive'); var normalise = _dereq_('normalize-space-x'); var deComment = _dereq_('replace-comments-x'); var funcTag = '[object Function]'; var genTag = '[object GeneratorFunction]'; var asyncTag = '[object AsyncFunction]'; var hasNativeClass = true; try { // eslint-disable-next-line no-new-func Function('"use strict"; return class My {};')(); } catch (ignore) { hasNativeClass = false; } var ctrRx = /^class /; var isES6ClassFn = function isES6ClassFunc(value) { try { return ctrRx.test(normalise(deComment(fToString.call(value), ' '))); } catch (ignore) {} // not a function return false; }; /** * Checks if `value` is classified as a `Function` object. * * @private * @param {*} value - The value to check. * @param {boolean} allowClass - Whether to filter ES6 classes. * @returns {boolean} Returns `true` if `value` is correctly classified, * else `false`. */ var tryFuncToString = function funcToString(value, allowClass) { try { if (hasNativeClass && allowClass === false && isES6ClassFn(value)) { return false; } fToString.call(value); return true; } catch (ignore) {} return false; }; /** * Checks if `value` is classified as a `Function` object. * * @param {*} value - The value to check. * @param {boolean} [allowClass=false] - Whether to filter ES6 classes. * @returns {boolean} Returns `true` if `value` is correctly classified, * else `false`. * @example * var isFunction = require('is-function-x'); * * isFunction(); // false * isFunction(Number.MIN_VALUE); // false * isFunction('abc'); // false * isFunction(true); // false * isFunction({ name: 'abc' }); // false * isFunction(function () {}); // true * isFunction(new Function ()); // true * isFunction(function* test1() {}); // true * isFunction(function test2(a, b) {}); // true * isFunction(async function test3() {}); // true * isFunction(class Test {}); // false * isFunction(class Test {}, true); // true * isFunction((x, y) => {return this;}); // true */ module.exports = function isFunction(value) { if (isPrimitive(value)) { return false; } var allowClass = arguments.length > 0 ? Boolean(arguments[1]) : false; if (hasToStringTag) { return tryFuncToString(value, allowClass); } if (hasNativeClass && allowClass === false && isES6ClassFn(value)) { return false; } var strTag = toStringTag(value); return strTag === funcTag || strTag === genTag || strTag === asyncTag; }; },{"has-to-string-tag-x":3,"is-primitive":7,"normalize-space-x":11,"replace-comments-x":12,"to-string-tag-x":17}],6:[function(_dereq_,module,exports){ /** * @file Checks if `value` is `null` or `undefined`. * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module is-nil-x */ 'use strict'; var isUndefined = _dereq_('validate.io-undefined'); var isNull = _dereq_('lodash.isnull'); /** * Checks if `value` is `null` or `undefined`. * * @param {*} value - The value to check. * @returns {boolean} Returns `true` if `value` is nullish, else `false`. * @example * var isNil = require('is-nil-x'); * * isNil(null); // => true * isNil(void 0); // => true * isNil(NaN); // => false */ module.exports = function isNil(value) { return isNull(value) || isUndefined(value); }; },{"lodash.isnull":10,"validate.io-undefined":22}],7:[function(_dereq_,module,exports){ /*! * is-primitive * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */ 'use strict'; // see http://jsperf.com/testing-value-is-primitive/7 module.exports = function isPrimitive(value) { return value == null || (typeof value !== 'function' && typeof value !== 'object'); }; },{}],8:[function(_dereq_,module,exports){ 'use strict'; var strValue = String.prototype.valueOf; var tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }; var toStr = Object.prototype.toString; var strClass = '[object String]'; var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; module.exports = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; }; },{}],9:[function(_dereq_,module,exports){ 'use strict'; var toStr = Object.prototype.toString; var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; if (hasSymbols) { var symToStr = Symbol.prototype.toString; var symStringRegex = /^Symbol\(.*\)$/; var isSymbolObject = function isSymbolObject(value) { if (typeof value.valueOf() !== 'symbol') { return false; } return symStringRegex.test(symToStr.call(value)); }; module.exports = function isSymbol(value) { if (typeof value === 'symbol') { return true; } if (toStr.call(value) !== '[object Symbol]') { return false; } try { return isSymbolObject(value); } catch (e) { return false; } }; } else { module.exports = function isSymbol(value) { // this environment does not support Symbols. return false; }; } },{}],10:[function(_dereq_,module,exports){ /** * lodash 3.0.0 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.7.0 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ /** * Checks if `value` is `null`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `null`, else `false`. * @example * * _.isNull(null); * // => true * * _.isNull(void 0); * // => false */ function isNull(value) { return value === null; } module.exports = isNull; },{}],11:[function(_dereq_,module,exports){ /** * @file Trims and replaces sequences of whitespace characters by a single space. * @version 1.3.3 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module normalize-space-x */ 'use strict'; var trim = _dereq_('trim-x'); var reNormalize = new RegExp('[' + _dereq_('white-space-x').string + ']+', 'g'); /** * This method strips leading and trailing white-space from a string, * replaces sequences of whitespace characters by a single space, * and returns the resulting string. * * @param {string} string - The string to be normalized. * @returns {string} The normalized string. * @example * var normalizeSpace = require('normalize-space-x'); * * normalizeSpace(' \t\na \t\nb \t\n') === 'a b'; // true */ module.exports = function normalizeSpace(string) { return trim(string).replace(reNormalize, ' '); }; },{"trim-x":21,"white-space-x":23}],12:[function(_dereq_,module,exports){ /** * @file Replace the comments in a string. * @version 1.0.3 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module replace-comments-x */ 'use strict'; var isString = _dereq_('is-string'); var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; /** * This method replaces comments in a string. * * @param {string} string - The string to be stripped. * @param {string} [replacement] - The string to be used as a replacement. * @returns {string} The new string with the comments replaced. * @example * var replaceComments = require('replace-comments-x'); * * replaceComments(test;/* test * /, ''), // 'test;' * replaceComments(test; // test, ''), // 'test;' */ module.exports = function replaceComments(string) { var replacement = arguments.length > 1 && isString(arguments[1]) ? arguments[1] : ''; return isString(string) ? string.replace(STRIP_COMMENTS, replacement) : ''; }; },{"is-string":8}],13:[function(_dereq_,module,exports){ /** * @file ES6-compliant shim for RequireObjectCoercible. * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-requireobjectcoercible|7.2.1 RequireObjectCoercible ( argument )} * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module require-object-coercible-x */ 'use strict'; var isNil = _dereq_('is-nil-x'); /** * The abstract operation RequireObjectCoercible throws an error if argument * is a value that cannot be converted to an Object using ToObject. * * @param {*} value - The `value` to check. * @throws {TypeError} If `value` is a `null` or `undefined`. * @returns {string} The `value`. * @example * var RequireObjectCoercible = require('require-object-coercible-x'); * * RequireObjectCoercible(); // TypeError * RequireObjectCoercible(null); // TypeError * RequireObjectCoercible('abc'); // 'abc' * RequireObjectCoercible(true); // true * RequireObjectCoercible(Symbol('foo')); // Symbol('foo') */ module.exports = function RequireObjectCoercible(value) { if (isNil(value)) { throw new TypeError('Cannot call method on ' + value); } return value; }; },{"is-nil-x":6}],14:[function(_dereq_,module,exports){ /** * @file ES6-compliant shim for ToObject. * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-toobject|7.1.13 ToObject ( argument )} * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module to-object-x */ 'use strict'; var requireObjectCoercible = _dereq_('require-object-coercible-x'); /** * The abstract operation ToObject converts argument to a value of * type Object. * * @param {*} value - The `value` to convert. * @throws {TypeError} If `value` is a `null` or `undefined`. * @returns {!Object} The `value` converted to an object. * @example * var ToObject = require('to-object-x'); * * ToObject(); // TypeError * ToObject(null); // TypeError * ToObject('abc'); // Object('abc') * ToObject(true); // Object(true) * ToObject(Symbol('foo')); // Object(Symbol('foo')) */ module.exports = function toObject(value) { return Object(requireObjectCoercible(value)); }; },{"require-object-coercible-x":13}],15:[function(_dereq_,module,exports){ /** * @file Converts a JavaScript object to a primitive value. * @version 1.0.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module to-primitive-x */ 'use strict'; var hasSymbols = _dereq_('has-symbol-support-x'); var isPrimitive = _dereq_('is-primitive'); var isDate = _dereq_('is-date-object'); var isSymbol = _dereq_('is-symbol'); var isFunction = _dereq_('is-function-x'); var requireObjectCoercible = _dereq_('require-object-coercible-x'); var isNil = _dereq_('is-nil-x'); var isUndefined = _dereq_('validate.io-undefined'); var symToPrimitive = hasSymbols && Symbol.toPrimitive; var symValueOf = hasSymbols && Symbol.prototype.valueOf; var toStringOrder = ['toString', 'valueOf']; var toNumberOrder = ['valueOf', 'toString']; var orderLength = 2; var ordinaryToPrimitive = function _ordinaryToPrimitive(O, hint) { requireObjectCoercible(O); if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) { throw new TypeError('hint must be "string" or "number"'); } var methodNames = hint === 'string' ? toStringOrder : toNumberOrder; var method; var result; for (var i = 0; i < orderLength; i += 1) { method = O[methodNames[i]]; if (isFunction(method)) { result = method.call(O); if (isPrimitive(result)) { return result; } } } throw new TypeError('No default value'); }; var getMethod = function _getMethod(O, P) { var func = O[P]; if (isNil(func) === false) { if (isFunction(func) === false) { throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function'); } return func; } return void 0; }; // http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive /** * This method converts a JavaScript object to a primitive value. * Note: When toPrimitive is called with no hint, then it generally behaves as * if the hint were Number. However, objects may over-ride this behaviour by * defining a @@toPrimitive method. Of the objects defined in this specification * only Date objects (see 20.3.4.45) and Symbol objects (see 19.4.3.4) over-ride * the default ToPrimitive behaviour. Date objects treat no hint as if the hint * were String. * * @param {*} input - The input to convert. * @param {constructor} [prefferedtype] - The preffered type (String or Number). * @throws {TypeError} If unable to convert input to a primitive. * @returns {string|number} The converted input as a primitive. * @example * var toPrimitive = require('to-primitive-x'); * * var date = new Date(0); * toPrimitive(date)); // Thu Jan 01 1970 01:00:00 GMT+0100 (CET) * toPrimitive(date, String)); // Thu Jan 01 1970 01:00:00 GMT+0100 (CET) * toPrimitive(date, Number)); // 0 */ module.exports = function toPrimitive(input, preferredType) { if (isPrimitive(input)) { return input; } var hint = 'default'; if (arguments.length > 1) { if (preferredType === String) { hint = 'string'; } else if (preferredType === Number) { hint = 'number'; } } var exoticToPrim; if (hasSymbols) { if (symToPrimitive) { exoticToPrim = getMethod(input, symToPrimitive); } else if (isSymbol(input)) { exoticToPrim = symValueOf; } } if (isUndefined(exoticToPrim) === false) { var result = exoticToPrim.call(input, hint); if (isPrimitive(result)) { return result; } throw new TypeError('unable to convert exotic object to primitive'); } if (hint === 'default' && (isDate(input) || isSymbol(input))) { hint = 'string'; } return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint); }; },{"has-symbol-support-x":2,"is-date-object":4,"is-function-x":5,"is-nil-x":6,"is-primitive":7,"is-symbol":9,"require-object-coercible-x":13,"validate.io-undefined":22}],16:[function(_dereq_,module,exports){ /** * @file Converts argument to a value that can be used as a property key. * @version 2.0.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module to-property-key-x */ 'use strict'; var hasSymbols = _dereq_('has-symbol-support-x'); var toPrimitive = _dereq_('to-primitive-x'); var toStr = _dereq_('to-string-x'); /** * This method Converts argument to a value that can be used as a property key. * * @param {*} argument - The argument to onvert to a property key. * @returns {string|symbol} The converted argument. * @example * var toPropertyKey = require('to-property-key-x'); * * toPropertyKey(); // 'undefined' * toPropertyKey(1); // '1' * toPropertyKey(true); // 'true' * var symbol = Symbol('a'); * toPropertyKey(symbol); // symbol */ module.exports = function toPropertyKey(argument) { var key = toPrimitive(argument, String); return hasSymbols && typeof key === 'symbol' ? key : toStr(key); }; },{"has-symbol-support-x":2,"to-primitive-x":15,"to-string-x":18}],17:[function(_dereq_,module,exports){ /** * @file Get an object's ES6 @@toStringTag. * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring|19.1.3.6 Object.prototype.toString ( )} * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module to-string-tag-x */ 'use strict'; var isNull = _dereq_('lodash.isnull'); var isUndefined = _dereq_('validate.io-undefined'); var toStr = Object.prototype.toString; /** * The `toStringTag` method returns "[object type]", where type is the * object type. * * @param {*} value - The object of which to get the object type string. * @returns {string} The object type string. * @example * var toStringTag = require('to-string-tag-x'); * * var o = new Object(); * toStringTag(o); // returns '[object Object]' */ module.exports = function toStringTag(value) { if (isNull(value)) { return '[object Null]'; } if (isUndefined(value)) { return '[object Undefined]'; } return toStr.call(value); }; },{"lodash.isnull":10,"validate.io-undefined":22}],18:[function(_dereq_,module,exports){ /** * @file ES6-compliant shim for ToString. * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-tostring|7.1.12 ToString ( argument )} * @version 1.4.1 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module to-string-x */ 'use strict'; var isSymbol = _dereq_('is-symbol'); /** * The abstract operation ToString converts argument to a value of type String. * * @param {*} value - The value to convert to a string. * @throws {TypeError} If `value` is a Symbol. * @returns {string} The converted value. * @example * var $toString = require('to-string-x'); * * $toString(); // 'undefined' * $toString(null); // 'null' * $toString('abc'); // 'abc' * $toString(true); // 'true' * $toString(Symbol('foo')); // TypeError * $toString(Symbol.iterator); // TypeError * $toString(Object(Symbol.iterator)); // TypeError */ module.exports = function ToString(value) { if (isSymbol(value)) { throw new TypeError('Cannot convert a Symbol value to a string'); } return String(value); }; },{"is-symbol":9}],19:[function(_dereq_,module,exports){ /** * @file This method removes whitespace from the left end of a string. * @version 1.3.5 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module trim-left-x */ 'use strict'; var $toString = _dereq_('to-string-x'); var reLeft = new RegExp('^[' + _dereq_('white-space-x').string + ']+'); /** * This method removes whitespace from the left end of a string. * * @param {string} string - The string to trim the left end whitespace from. * @returns {undefined|string} The left trimmed string. * @example * var trimLeft = require('trim-left-x'); * * trimLeft(' \t\na \t\n') === 'a \t\n'; // true */ module.exports = function trimLeft(string) { return $toString(string).replace(reLeft, ''); }; },{"to-string-x":18,"white-space-x":23}],20:[function(_dereq_,module,exports){ /** * @file This method removes whitespace from the right end of a string. * @version 1.3.3 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module trim-right-x */ 'use strict'; var $toString = _dereq_('to-string-x'); var reRight = new RegExp('[' + _dereq_('white-space-x').string + ']+$'); /** * This method removes whitespace from the right end of a string. * * @param {string} string - The string to trim the right end whitespace from. * @returns {undefined|string} The right trimmed string. * @example * var trimRight = require('trim-right-x'); * * trimRight(' \t\na \t\n') === ' \t\na'; // true */ module.exports = function trimRight(string) { return $toString(string).replace(reRight, ''); }; },{"to-string-x":18,"white-space-x":23}],21:[function(_dereq_,module,exports){ /** * @file This method removes whitespace from the left and right end of a string. * @version 1.0.3 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module trim-x */ 'use strict'; var trimLeft = _dereq_('trim-left-x'); var trimRight = _dereq_('trim-right-x'); /** * This method removes whitespace from the left and right end of a string. * * @param {string} string - The string to trim the whitespace from. * @returns {undefined|string} The trimmed string. * @example * var trim = require('trim-x'); * * trim(' \t\na \t\n') === 'a'; // true */ module.exports = function trim(string) { return trimLeft(trimRight(string)); }; },{"trim-left-x":19,"trim-right-x":20}],22:[function(_dereq_,module,exports){ /** * * VALIDATE: undefined * * * DESCRIPTION: * - Validates if a value is undefined. * * * NOTES: * [1] * * * TODO: * [1] * * * LICENSE: * MIT * * Copyright (c) 2014. Athan Reines. * * * AUTHOR: * Athan Reines. kgryte@gmail.com. 2014. * */ 'use strict'; /** * FUNCTION: isUndefined( value ) * Validates if a value is undefined. * * @param {*} value - value to be validated * @returns {Boolean} boolean indicating whether value is undefined */ function isUndefined( value ) { return value === void 0; } // end FUNCTION isUndefined() // EXPORTS // module.exports = isUndefined; },{}],23:[function(_dereq_,module,exports){ /** * @file List of ECMAScript5 white space characters. * @version 2.0.3 * @author Xotic750 * @copyright Xotic750 * @license {@link MIT} * @module white-space-x */ 'use strict'; /** * An array of the ES5 whitespace char codes, string, and their descriptions. * * @name list * @type Array. * @example * var whiteSpace = require('white-space-x'); * whiteSpaces.list.foreach(function (item) { * console.log(lib.description, item.code, item.string); * }); */ var list = [ { code: 0x0009, description: 'Tab', string: '\u0009' }, { code: 0x000a, description: 'Line Feed', string: '\u000a' }, { code: 0x000b, description: 'Vertical Tab', string: '\u000b' }, { code: 0x000c, description: 'Form Feed', string: '\u000c' }, { code: 0x000d, description: 'Carriage Return', string: '\u000d' }, { code: 0x0020, description: 'Space', string: '\u0020' }, /* { code: 0x0085, description: 'Next line - Not ES5 whitespace', string: '\u0085' } */ { code: 0x00a0, description: 'No-break space', string: '\u00a0' }, { code: 0x1680, description: 'Ogham space mark', string: '\u1680' }, { code: 0x180e, description: 'Mongolian vowel separator', string: '\u180e' }, { code: 0x2000, description: 'En quad', string: '\u2000' }, { code: 0x2001, description: 'Em quad', string: '\u2001' }, { code: 0x2002, description: 'En space', string: '\u2002' }, { code: 0x2003, description: 'Em space', string: '\u2003' }, { code: 0x2004, description: 'Three-per-em space', string: '\u2004' }, { code: 0x2005, description: 'Four-per-em space', string: '\u2005' }, { code: 0x2006, description: 'Six-per-em space', string: '\u2006' }, { code: 0x2007, description: 'Figure space', string: '\u2007' }, { code: 0x2008, description: 'Punctuation space', string: '\u2008' }, { code: 0x2009, description: 'Thin space', string: '\u2009' }, { code: 0x200a, description: 'Hair space', string: '\u200a' }, /* { code: 0x200b, description: 'Zero width space - Not ES5 whitespace', string: '\u200b' }, */ { code: 0x2028, description: 'Line separator', string: '\u2028' }, { code: 0x2029, description: 'Paragraph separator', string: '\u2029' }, { code: 0x202f, description: 'Narrow no-break space', string: '\u202f' }, { code: 0x205f, description: 'Medium mathematical space', string: '\u205f' }, { code: 0x3000, description: 'Ideographic space', string: '\u3000' }, { code: 0xfeff, description: 'Byte Order Mark', string: '\ufeff' } ]; var string = ''; var length = list.length; for (var i = 0; i < length; i += 1) { string += list[i].string; } /** * A string of the ES5 whitespace characters. * * @name string * @type string * @example * var whiteSpace = require('white-space-x'); * var characters = [ * '\u0009', * '\u000a', * '\u000b', * '\u000c', * '\u000d', * '\u0020', * '\u00a0', * '\u1680', * '\u180e', * '\u2000', * '\u2001', * '\u2002', * '\u2003', * '\u2004', * '\u2005', * '\u2006', * '\u2007', * '\u2008', * '\u2009', * '\u200a', * '\u2028', * '\u2029', * '\u202f', * '\u205f', * '\u3000', * '\ufeff' * ]; * var ws = characters.join(''); * var re1 = new RegExp('^[' + whiteSpace.string + ']+$)'); * re1.test(ws); // true */ module.exports = { list: list, string: string }; },{}]},{},[1])(1) });