2 | !function(o,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((o="undefined"!=typeof globalThis?globalThis:o||self).ssw=o.ssw||{},o.ssw.fsw={}))}(this,(function(o){"use strict";let t={symbol:"S[123][0-9a-f]{2}[0-5][0-9a-f]",coord:"[0-9]{3}x[0-9]{3}",sort:"A",box:"[BLMR]"};t.prefix=`(?:${t.sort}(?:${t.symbol})+)`,t.spatial=`${t.symbol}${t.coord}`,t.signbox=`${t.box}${t.coord}(?:${t.spatial})*`,t.sign=`${t.prefix}?${t.signbox}`,t.sortable=`${t.prefix}${t.signbox}`;let e={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)",classbase:"-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}",id:"[a-zA-Z][_a-zA-Z0-9-]{0,100}"};e.colorbase=`(?:${e.colorhex}|${e.colorname})`,e.color=`_${e.colorbase}_`,e.colors=`_${e.colorbase}(?:,${e.colorbase})?_`,e.background=`G${e.color}`,e.detail=`D${e.colors}`,e.detailsym=`D[0-9]{2}${e.colors}`,e.classes=`${e.classbase}(?: ${e.classbase})*`,e.full=`-(${e.colorize})?(${e.padding})?(${e.background})?(${e.detail})?(${e.zoom})?(?:-((?:${e.detailsym})*))?(?:-(${e.classes})?!(?:(${e.id})!)?)?`;const s=o=>(new RegExp(`^${e.colorhex}$`).test(o)?"#":"")+o,i=o=>{const t=`^${e.full}`,i=("string"==typeof o?o.match(new RegExp(t)):[])||[];return n={colorize:i[1]?!!i[1]:void 0,padding:i[2]?parseInt(i[2].slice(1)):void 0,background:i[3]?s(i[3].slice(2,-1)):void 0,detail:i[4]?i[4].slice(2,-1).split(",").map(s):void 0,zoom:i[5]?"Zx"===i[5]?"x":parseFloat(i[5].slice(1)):void 0,detailsym:i[6]?i[6].match(new RegExp(e.detailsym,"g")).map((o=>{const t=o.split("_"),e=t[1].split(",").map(s);return{index:parseInt(t[0].slice(1)),detail:e}})):void 0,classes:i[7]?i[7]:void 0,id:i[8]?i[8]:void 0},Object.fromEntries(Object.entries(n).filter((([o,t])=>void 0!==t)));var n},n=o=>o.split("x").map((o=>parseInt(o))),l={symbol:o=>{const s=`^(${t.symbol})(${t.coord})?(${e.full})?`,i="string"==typeof o?o.match(new RegExp(s)):void 0;return{symbol:i?i[1]:void 0,coord:i&&i[2]?n(i[2]):void 0,style:i?i[3]:void 0}},sign:o=>{const s=`^(${t.prefix})?(${t.signbox})(${e.full})?`,i="string"==typeof o?o.match(new RegExp(s)):void 0;return i?{sequence:i[1]?i[1].slice(1).match(/.{6}/g):void 0,box:i[2][0],max:n(i[2].slice(1,8)),spatials:i[2].length<9?void 0:i[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:i[3]}:{}},text:o=>{if("string"!=typeof o)return[];const s=`(${t.sign}(${e.full})?|${t.spatial}(${e.full})?)`,i=o.match(new RegExp(s,"g"));return i?[...i]:[]}},a={symbol:o=>{if("string"==typeof o.symbol){const s=(o.symbol.match(t.symbol)||[""])[0];if(s){return s+((((o.coord&&o.coord[0]||"").toString()+"x"+(o.coord&&o.coord[1]||"").toString()).match(t.coord)||[""])[0]||"")+("string"==typeof o.style&&(o.style.match(e.full)||[""])[0]||"")}}},sign:o=>{let s="string"!=typeof o.box?"M":(o.box+"M").match(t.box);const i=(((o.max&&o.max[0]||"").toString()+"x"+(o.max&&o.max[1]||"").toString()).match(t.coord)||[""])[0]||"";if(!i)return;let n="";o.sequence&&Array.isArray(o.sequence)&&(n=o.sequence.map((o=>(o.match(t.symbol)||[""])[0])).join(""),n=n?"A"+n:"");let l="";o.spatials&&Array.isArray(o.spatials)&&(l=o.spatials.map((o=>{if("string"==typeof o.symbol){const e=(o.symbol.match(t.symbol)||[""])[0];if(e){const s=(((o.coord&&o.coord[0]||"").toString()+"x"+(o.coord&&o.coord[1]||"").toString()).match(t.coord)||[""])[0]||"";if(s)return e+s}}return""})).join(""));return n+s+i+l+("string"==typeof o.style&&(o.style.match(e.full)||[""])[0]||"")}},r=o=>{let t,e,s,n,a,r,c,p,d=l.sign(o);d.spatials?(n=Math.min(...d.spatials.map((o=>o.coord[0]))),a=d.max[0],t=a-n,r=Math.min(...d.spatials.map((o=>o.coord[1]))),c=d.max[1],e=c-r,s="sign",p=d.box):(d=l.symbol(o),p="M",d.coord?(n=d.coord[0],t=2*(500-n),r=d.coord[1],e=2*(500-r),s="symbol"):(n=490,t=20,r=490,e=20,s="none"));let m=i(d.style),f=m.zoom||1,u=m.padding||0;return{minX:n,minY:r,width:t,height:e,segment:s,lane:{B:0,L:-1,M:0,R:1}[p],padding:u,zoom:f}},c={height:500,width:150,offset:50,pad:20,margin:5,dynamic:!1,background:void 0,punctuation:{spacing:!0,pad:30,pull:!0},style:{detail:["black","white"],zoom:1}},p=o=>("object"!=typeof o&&(o={}),{...c,...o,punctuation:{...c.punctuation,...o.punctuation},style:{...c.style,...o.style}}),d=[256,517,759,767,877,895,903],m={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]},f=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"];o.category=d,o.colorize=o=>{const t=l.symbol(o);let e="#000000";if(t.symbol){const o=parseInt(t.symbol.slice(1,4),16),s=d.findIndex((t=>t>o));e=f[s<0?6:s-1]}return e},o.colors=f,o.columnDefaults=c,o.columnDefaultsMerge=p,o.columns=(o,t)=>{if("string"!=typeof o)return{};const e=p(t);let s=l.text(o),i=0,n=[],a=[],c=0,d=parseInt(e.width/2),m=e.height-e.margin,f=!0,u=!1;for(let o of s){let t=r(o);i+=c,e.punctuation.spacing?i+="sign"==t.segment?e.pad:0:i+=e.pad,u=i+t.height>m,u&&"symbol"==t.segment&&e.punctuation.pull&&f&&(u=!1,f=!1),0==a.length&&(u=!1),u&&(i=e.pad,n.push(a),a=[],f=!0),a.push(Object.assign(t,{x:d+e.offset*t.lane-(500-t.minX)*t.zoom*e.style.zoom,y:i,text:o})),i+=t.height*t.zoom*e.style.zoom,c=e.punctuation.spacing?"sign"==t.segment?e.pad:e.punctuation.pad:e.pad}if(a.length&&n.push(a),e.punctuation.pull)for(let o of n){let t=o[o.length-1],s=t.y+t.height-(e.height-e.margin);if(s>0){let t=parseInt(s/o.length)+1;for(let e in o)o[e].y-=t*e+t}}let g=[];for(let o of n){let t=[d-e.offset-e.pad],s=[d+e.offset+e.pad];for(let i of o)t.push(i.x-e.pad),s.push(i.x+i.width+e.pad);t=Math.min(...t),s=Math.max(...s);let i=e.width,n=0;e.dynamic?(i=s-t,n=-t):n=d-parseInt((t+s)/2);for(let t of o)t.x+=n;g.push(i)}return{options:e,widths:g,columns:n}},o.compose=a,o.group=[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],o.info=r,o.isType=(o,t)=>{const e=l.symbol(o);if(e.symbol){const o=parseInt(e.symbol.slice(1,4),16),s=m[t];if(s)return s[0]<=o&&s[1]>=o}return!1},o.kind=[256,895,903],o.parse=l,o.ranges=m,o.re=t,Object.defineProperty(o,"__esModule",{value:!0})}));
|