@sutton-signwriting/unicode8
Version:
a javascript package for processing SignWriting in Unicode 8 (uni8) characters
3 lines (2 loc) • 3 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});var t=Object.freeze({__proto__:null,cssAppend:function(t=""){if(!document.getElementById("SgnwUnicode8FontCss")){const o=document.createElement("style");o.setAttribute("id","SgnwUnicode8FontCss"),o.appendChild(document.createTextNode(`\n @font-face {\n font-family: "NotoSansSignWriting";\n src: \n local('NotoSansSignWriting'),\n local('Noto Sans SignWriting'),\n local('Noto_Sans_SignWriting'),\n local('Noto Sans SignWriting Regular'),\n local('Noto_Sans_SignWriting_Regular'),\n ${t?`url('${t}NotoSansSignWriting-Regular.ttf') format('truetype'),`:""}\n url('https://notofonts.github.io/sign-writing/fonts/NotoSansSignWriting/full/ttf/NotoSansSignWriting-Regular.ttf') format('opentype');\n }\n `)),document.head.appendChild(o)}}});let o={base:"(?:\ud836[\udc00-\ude8b])",fill:"(?:\ud836[\ude9b-\ude9f])",rotation:"(?:\ud836[\udea1-\udeaf])"};o.full=`(${o.base})(${o.fill})?(${o.rotation})?`;const e=t=>{const e=`^${o.full}`,n=("string"==typeof t?t.match(new RegExp(e)):[])||[];return{base:n[1]?n[1]:void 0,fill:n[2]?n[2]:void 0,rotation:n[3]?n[3]:void 0}};var n=Object.freeze({__proto__:null,re:o,parse:e,compose:t=>{if("object"!=typeof t||null===t)return;const o=(t.base?t.base:"")+(t.fill?t.fill:"")+(t.rotation?t.rotation:"");return o||void 0}});let i={full:`(?:${o.full})+`};var r=Object.freeze({__proto__:null,re:i,parse:t=>{const e=`^(${i.full})`,n=("string"==typeof t?t.match(new RegExp(e)):[])||[];return n[1]?[...n[1].matchAll(new RegExp(o.full,"g"))].map((t=>t[0])):[]},compose:t=>{if(Array.isArray(t))return t.join("")}});const l=t=>String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023));var a=Object.freeze({__proto__:null,code2uni:l,uni2code:t=>t.codePointAt(0),uni2hex:t=>t.codePointAt(0).toString(16).toUpperCase(),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},uni2swu:t=>{let o=e(t);return o.base?(o.base=o.base.codePointAt(0)-120832,o.fill=o.fill?o.fill.codePointAt(0)-121498:0,o.rotation=o.rotation?o.rotation.codePointAt(0)-121504:0,l(262145+96*o.base+16*o.fill+o.rotation)):void 0},fsw2uni:t=>{let o=parseInt(t.slice(1,4),16),e=parseInt(t.slice(4,5),16),n=parseInt(t.slice(5,6),16);return l(o+120576)+(e?l(e+121498):"")+(n?l(n+121504):"")},swu2uni:t=>{const o=t.codePointAt(0)-262145,e=parseInt(o/96),n=parseInt((o-96*e)/16),i=parseInt(o-96*e-16*n);return l(e+120832)+(n?l(n+121498):"")+(i?l(i+121504):"")}});exports.convert=a,exports.font=t,exports.string=r,exports.symbol=n;