UNPKG

2.52 kBJavaScriptView Raw
1/* Sutton SignWriting Core Module v1.1.0, author: Steve Slevinski, license: MIT */
2let o={symbol:"S[123][0-9a-f]{2}[0-5][0-9a-f]",coord:"[0-9]{3}x[0-9]{3}",sort:"A",box:"[BLMR]"};o.prefix=`(?:${o.sort}(?:${o.symbol})+)`,o.spatial=`${o.symbol}${o.coord}`,o.signbox=`${o.box}${o.coord}(?:${o.spatial})*`,o.sign=`${o.prefix}?${o.signbox}`,o.term=`${o.prefix}${o.signbox}`;let s={colorize:"C",colorhex:"(?:[0-9a-fA-F]{3}){1,2}",colorname:"[a-zA-Z]+",padding:"P[0-9]{2}",zoom:"Z(?:[0-9]+(?:\\.[0-9]+)?|x)",zoomsym:"Z[0-9]{2},[0-9]+(?:\\.[0-9]+)?(?:,[0-9]{3}x[0-9]{3})?",classbase:"-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}",id:"[a-zA-Z][_a-zA-Z0-9-]{0,100}"};s.colorbase=`(?:${s.colorhex}|${s.colorname})`,s.color=`_${s.colorbase}_`,s.colors=`_${s.colorbase}(?:,${s.colorbase})?_`,s.background=`G${s.color}`,s.detail=`D${s.colors}`,s.detailsym=`D[0-9]{2}${s.colors}`,s.classes=`${s.classbase}(?: ${s.classbase})*`,s.full=`-(${s.colorize})?(${s.padding})?(${s.background})?(${s.detail})?(${s.zoom})?(?:-((?:${s.detailsym})*)((?:${s.zoomsym})*))?(?:-(${s.classes})?!(?:(${s.id})!)?)?`;const e=o=>o.split("x").map(o=>parseInt(o)),l={symbol:l=>{const a=`^(${o.symbol})(${o.coord})?(${s.full})?`,c="string"==typeof l?l.match(new RegExp(a)):void 0;return{symbol:c?c[1]:void 0,coord:c&&c[2]?e(c[2]):void 0,style:c?c[3]:void 0}},sign:l=>{const a=`^(${o.prefix})?(${o.signbox})(${s.full})?`,c="string"==typeof l?l.match(new RegExp(a)):void 0;return c?{sequence:c[1]?c[1].slice(1).match(/.{6}/g):void 0,box:c[2][0],max:e(c[2].slice(1,8)),spatials:c[2].length<9?void 0:c[2].slice(8).match(/(.{13})/g).map(o=>({symbol:o.slice(0,6),coord:[parseInt(o.slice(6,9)),parseInt(o.slice(10,13))]})),style:c[3]}:{}}},a=[256,895,903],c=[256,517,759,767,877,895,903],r=[256,270,286,324,332,390,420,442,461,501,517,534,554,597,613,648,678,695,725,739,759,767,778,810,827,857,877,886,895,903],i={all:[256,907],writing:[256,894],hand:[256,516],movement:[517,758],dynamic:[759,766],head:[767,876],hcenter:[767,876],vcenter:[767,885],trunk:[877,885],limb:[886,894],location:[895,902],punctuation:[903,907]},t=(o,s)=>{const e=l.symbol(o);if(e.symbol){const o=parseInt(e.symbol.slice(1,4),16),l=i[s];if(l)return l[0]<=o&&l[1]>=o}return!1},n=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"],$=o=>{const s=l.symbol(o);let e="#000000";if(s.symbol){const o=parseInt(s.symbol.slice(1,4),16),l=c.findIndex(s=>s>o);e=n[l<0?6:l-1]}return e};export{c as category,$ as colorize,n as colors,r as group,t as isType,a as kind,l as parse,i as ranges,o as re};