UNPKG

1.99 kBJavaScriptView Raw
1
2/**
3 * Object of regular expressions for style strings
4 *
5 * @alias style.re
6 * @type {object}
7 * @property {string} colorize - regular expression for colorize section
8 * @property {string} colorhex - regular expression for color hex values with 3 or 6 characters
9 * @property {string} colorname - regular expression for css color name
10 * @property {string} padding - regular expression for padding section
11 * @property {string} zoom - regular expression for zoom section
12 * @property {string} classbase - regular expression for class name definition
13 * @property {string} id - regular expression for id definition
14 * @property {string} colorbase - regular expression for color hex or color name
15 * @property {string} color - regular expression for single color entry
16 * @property {string} colors - regular expression for double color entry
17 * @property {string} background - regular expression for background section
18 * @property {string} detail - regular expression for color details for line and optional fill
19 * @property {string} detailsym - regular expression for color details for individual symbols
20 * @property {string} classes - regular expression for one or more class names
21 * @property {string} full - full regular expression for style string
22 */
23let re = {
24 'colorize': 'C',
25 'colorhex': '(?:[0-9a-fA-F]{3}){1,2}',
26 'colorname': '[a-zA-Z]+',
27 'padding': 'P[0-9]{2}',
28 'zoom': 'Z(?:[0-9]+(?:\\.[0-9]+)?|x)',
29 'classbase': '-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}',
30 'id': '[a-zA-Z][_a-zA-Z0-9-]{0,100}',
31}
32
33re.colorbase = `(?:${re.colorhex}|${re.colorname})`;
34re.color = `_${re.colorbase}_`;
35re.colors = `_${re.colorbase}(?:,${re.colorbase})?_`;
36re.background = `G${re.color}`;
37re.detail = `D${re.colors}`;
38re.detailsym = `D[0-9]{2}${re.colors}`;
39re.classes = `${re.classbase}(?: ${re.classbase})*`;
40re.full = `-(${re.colorize})?(${re.padding})?(${re.background})?(${re.detail})?(${re.zoom})?(?:-((?:${re.detailsym})*))?(?:-(${re.classes})?!(?:(${re.id})!)?)?`;
41
42export { re }