@sutton-signwriting/unicode8
Version:
a javascript package for processing SignWriting in Unicode 8 (uni8) characters
3 lines (2 loc) • 1.67 kB
JavaScript
/* Sutton SignWriting Unicode 8 Module v1.2.0 (https://github.com/sutton-signwriting/unicode8), author: Steve Slevinski (https://SteveSlevinski.me), sponsor: https://patreon.com/signwriting, donate: https://donate.sutton-signwriting.io, license: MIT */
;Object.defineProperty(exports,"__esModule",{value:!0});let t={base:"(?:\ud836[\udc00-\ude8b])",fill:"(?:\ud836[\ude9b-\ude9f])",rotation:"(?:\ud836[\udea1-\udeaf])"};t.full=`(${t.base})(${t.fill})?(${t.rotation})?`;const e=e=>{const o=`^${t.full}`,i=("string"==typeof e?e.match(new RegExp(o)):[])||[];return{base:i[1]?i[1]:void 0,fill:i[2]?i[2]:void 0,rotation:i[3]?i[3]:void 0}},o=t=>String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023));exports.code2uni=o,exports.fsw2uni=t=>{let e=parseInt(t.slice(1,4),16),i=parseInt(t.slice(4,5),16),n=parseInt(t.slice(5,6),16);return o(e+120576)+(i?o(i+121498):"")+(n?o(n+121504):"")},exports.swu2uni=t=>{const e=t.codePointAt(0)-262145,i=parseInt(e/96),n=parseInt((e-96*i)/16),r=parseInt(e-96*i-16*n);return o(i+120832)+(n?o(n+121498):"")+(r?o(r+121504):"")},exports.uni2code=t=>t.codePointAt(0),exports.uni2fsw=t=>{let o=e(t);return o.base?(o.base=o.base.codePointAt(0)-120576,o.fill=o.fill?o.fill.codePointAt(0)-121498:0,o.rotation=o.rotation?o.rotation.codePointAt(0)-121504:0,"S"+o.base.toString(16)+o.fill.toString(16)+o.rotation.toString(16)):void 0},exports.uni2hex=t=>t.codePointAt(0).toString(16).toUpperCase(),exports.uni2swu=t=>{let i=e(t);return i.base?(i.base=i.base.codePointAt(0)-120832,i.fill=i.fill?i.fill.codePointAt(0)-121498:0,i.rotation=i.rotation?i.rotation.codePointAt(0)-121504:0,o(262145+96*i.base+16*i.fill+i.rotation)):void 0};