@xterm/addon-unicode11 0.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2019, The xterm.js authors (https://github.com/xtermjs/xterm.js)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,23 @@
1
+ ## @xterm/addon-unicode11
2
+
3
+ An addon providing Unicode version 11 rules for xterm.js.
4
+
5
+ ### Install
6
+
7
+ ```bash
8
+ npm install --save @xterm/addon-unicode11
9
+ ```
10
+
11
+ ### Usage
12
+
13
+ ```ts
14
+ import { Terminal } from '@xterm/xterm';
15
+ import { Unicode11Addon } from '@xterm/addon-unicode11';
16
+
17
+ const terminal = new Terminal();
18
+ const unicode11Addon = new Unicode11Addon();
19
+ terminal.loadAddon(unicode11Addon);
20
+
21
+ // activate the new version
22
+ terminal.unicode.activeVersion = '11';
23
+ ```
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Unicode11Addon=t():e.Unicode11Addon=t()}(this,(()=>(()=>{"use strict";var e={433:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV11=void 0;const r=i(938),s=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],n=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],o=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],c=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]];let l;function d(e,t){let i,r=0,s=t.length-1;if(e<t[0][0]||e>t[s][1])return!1;for(;s>=r;)if(i=r+s>>1,e>t[i][1])r=i+1;else{if(!(e<t[i][0]))return!0;s=i-1}return!1}t.UnicodeV11=class{constructor(){if(this.version="11",!l){l=new Uint8Array(65536),l.fill(1),l[0]=0,l.fill(0,1,32),l.fill(0,127,160);for(let e=0;e<s.length;++e)l.fill(0,s[e][0],s[e][1]+1);for(let e=0;e<o.length;++e)l.fill(2,o[e][0],o[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?l[e]:d(e,n)?0:d(e,c)?2:1}charProperties(e,t){let i=this.wcwidth(e),s=0===i&&0!==t;if(s){const e=r.UnicodeService.extractWidth(t);0===e?s=!1:e>i&&(i=e)}return r.UnicodeService.createPropertyValue(0,i,s)}}},345:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let r=0;r<i.length;r++)i[r].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},490:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const r=i(938),s=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version="6",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;e<s.length;++e)o.fill(0,s[e][0],s[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?o[e]:function(e,t){let i,r=0,s=t.length-1;if(e<t[0][0]||e>t[s][1])return!1;for(;s>=r;)if(i=r+s>>1,e>t[i][1])r=i+1;else{if(!(e<t[i][0]))return!0;s=i-1}return!1}(e,n)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),s=0===i&&0!==t;if(s){const e=r.UnicodeService.extractWidth(t);0===e?s=!1:e>i&&(i=e)}return r.UnicodeService.createPropertyValue(0,i,s)}}},938:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const r=i(345),s=i(490);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new r.EventEmitter,this.onChange=this._onChange.event;const e=new s.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const r=e.length;for(let s=0;s<r;++s){let o=e.charCodeAt(s);if(55296<=o&&o<=56319){if(++s>=r)return t+this.wcwidth(o);const i=e.charCodeAt(s);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const c=this.charProperties(o,i);let l=n.extractWidth(c);n.extractShouldJoin(c)&&(l-=n.extractWidth(i)),t+=l,i=c}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(r){var s=t[r];if(void 0!==s)return s.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,i),n.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.Unicode11Addon=void 0;const t=i(433);e.Unicode11Addon=class{activate(e){e.unicode.register(new t.UnicodeV11)}dispose(){}}})(),r})()));
2
+ //# sourceMappingURL=addon-unicode11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-unicode11.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAwB,eAAID,IAE5BD,EAAqB,eAAIC,GAC1B,CATD,CASGK,MAAM,I,6GCFT,eAEMC,EAAgB,CACpB,CAAC,IAAQ,KAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,QAELC,EAAiB,CACrB,CAAC,MAAS,OAAU,CAAC,MAAS,OAC9B,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAClD,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,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AAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,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","sources":["webpack://Unicode11Addon/webpack/universalModuleDefinition","webpack://Unicode11Addon/./src/UnicodeV11.ts","webpack://Unicode11Addon/../../src/common/EventEmitter.ts","webpack://Unicode11Addon/../../src/common/input/UnicodeV6.ts","webpack://Unicode11Addon/../../src/common/services/UnicodeService.ts","webpack://Unicode11Addon/webpack/bootstrap","webpack://Unicode11Addon/./src/Unicode11Addon.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Unicode11Addon\"] = factory();\n\telse\n\t\troot[\"Unicode11Addon\"] = factory();\n})(this, () => {\nreturn ","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IUnicodeVersionProvider } from '@xterm/xterm';\nimport { UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\nimport { UnicodeService } from 'common/services/UnicodeService';\n\nconst BMP_COMBINING = [\n [0x0300, 0x036F], [0x0483, 0x0489], [0x0591, 0x05BD],\n [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C5],\n [0x05C7, 0x05C7], [0x0600, 0x0605], [0x0610, 0x061A],\n [0x061C, 0x061C], [0x064B, 0x065F], [0x0670, 0x0670],\n [0x06D6, 0x06DD], [0x06DF, 0x06E4], [0x06E7, 0x06E8],\n [0x06EA, 0x06ED], [0x070F, 0x070F], [0x0711, 0x0711],\n [0x0730, 0x074A], [0x07A6, 0x07B0], [0x07EB, 0x07F3],\n [0x07FD, 0x07FD], [0x0816, 0x0819], [0x081B, 0x0823],\n [0x0825, 0x0827], [0x0829, 0x082D], [0x0859, 0x085B],\n [0x08D3, 0x0902], [0x093A, 0x093A], [0x093C, 0x093C],\n [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0957],\n [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC],\n [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3],\n [0x09FE, 0x09FE], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A51, 0x0A51], [0x0A70, 0x0A71], [0x0A75, 0x0A75],\n [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5],\n [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0AE2, 0x0AE3],\n [0x0AFA, 0x0AFF], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B44], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B62, 0x0B63], [0x0B82, 0x0B82],\n [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C00, 0x0C00],\n [0x0C04, 0x0C04], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0C62, 0x0C63],\n [0x0C81, 0x0C81], [0x0CBC, 0x0CBC], [0x0CBF, 0x0CBF],\n [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0CE2, 0x0CE3],\n [0x0D00, 0x0D01], [0x0D3B, 0x0D3C], [0x0D41, 0x0D44],\n [0x0D4D, 0x0D4D], [0x0D62, 0x0D63], [0x0DCA, 0x0DCA],\n [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6], [0x0E31, 0x0E31],\n [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1],\n [0x0EB4, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19],\n [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39],\n [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87],\n [0x0F8D, 0x0F97], [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6],\n [0x102D, 0x1030], [0x1032, 0x1037], [0x1039, 0x103A],\n [0x103D, 0x103E], [0x1058, 0x1059], [0x105E, 0x1060],\n [0x1071, 0x1074], [0x1082, 0x1082], [0x1085, 0x1086],\n [0x108D, 0x108D], [0x109D, 0x109D], [0x1160, 0x11FF],\n [0x135D, 0x135F], [0x1712, 0x1714], [0x1732, 0x1734],\n [0x1752, 0x1753], [0x1772, 0x1773], [0x17B4, 0x17B5],\n [0x17B7, 0x17BD], [0x17C6, 0x17C6], [0x17C9, 0x17D3],\n [0x17DD, 0x17DD], [0x180B, 0x180E], [0x1885, 0x1886],\n [0x18A9, 0x18A9], [0x1920, 0x1922], [0x1927, 0x1928],\n [0x1932, 0x1932], [0x1939, 0x193B], [0x1A17, 0x1A18],\n [0x1A1B, 0x1A1B], [0x1A56, 0x1A56], [0x1A58, 0x1A5E],\n [0x1A60, 0x1A60], [0x1A62, 0x1A62], [0x1A65, 0x1A6C],\n [0x1A73, 0x1A7C], [0x1A7F, 0x1A7F], [0x1AB0, 0x1ABE],\n [0x1B00, 0x1B03], [0x1B34, 0x1B34], [0x1B36, 0x1B3A],\n [0x1B3C, 0x1B3C], [0x1B42, 0x1B42], [0x1B6B, 0x1B73],\n [0x1B80, 0x1B81], [0x1BA2, 0x1BA5], [0x1BA8, 0x1BA9],\n [0x1BAB, 0x1BAD], [0x1BE6, 0x1BE6], [0x1BE8, 0x1BE9],\n [0x1BED, 0x1BED], [0x1BEF, 0x1BF1], [0x1C2C, 0x1C33],\n [0x1C36, 0x1C37], [0x1CD0, 0x1CD2], [0x1CD4, 0x1CE0],\n [0x1CE2, 0x1CE8], [0x1CED, 0x1CED], [0x1CF4, 0x1CF4],\n [0x1CF8, 0x1CF9], [0x1DC0, 0x1DF9], [0x1DFB, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2064],\n [0x2066, 0x206F], [0x20D0, 0x20F0], [0x2CEF, 0x2CF1],\n [0x2D7F, 0x2D7F], [0x2DE0, 0x2DFF], [0x302A, 0x302D],\n [0x3099, 0x309A], [0xA66F, 0xA672], [0xA674, 0xA67D],\n [0xA69E, 0xA69F], [0xA6F0, 0xA6F1], [0xA802, 0xA802],\n [0xA806, 0xA806], [0xA80B, 0xA80B], [0xA825, 0xA826],\n [0xA8C4, 0xA8C5], [0xA8E0, 0xA8F1], [0xA8FF, 0xA8FF],\n [0xA926, 0xA92D], [0xA947, 0xA951], [0xA980, 0xA982],\n [0xA9B3, 0xA9B3], [0xA9B6, 0xA9B9], [0xA9BC, 0xA9BD],\n [0xA9E5, 0xA9E5], [0xAA29, 0xAA2E], [0xAA31, 0xAA32],\n [0xAA35, 0xAA36], [0xAA43, 0xAA43], [0xAA4C, 0xAA4C],\n [0xAA7C, 0xAA7C], [0xAAB0, 0xAAB0], [0xAAB2, 0xAAB4],\n [0xAAB7, 0xAAB8], [0xAABE, 0xAABF], [0xAAC1, 0xAAC1],\n [0xAAEC, 0xAAED], [0xAAF6, 0xAAF6], [0xABE5, 0xABE5],\n [0xABE8, 0xABE8], [0xABED, 0xABED], [0xFB1E, 0xFB1E],\n [0xFE00, 0xFE0F], [0xFE20, 0xFE2F], [0xFEFF, 0xFEFF],\n [0xFFF9, 0xFFFB]\n];\nconst HIGH_COMBINING = [\n [0x101FD, 0x101FD], [0x102E0, 0x102E0],\n [0x10376, 0x1037A], [0x10A01, 0x10A03], [0x10A05, 0x10A06],\n [0x10A0C, 0x10A0F], [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F],\n [0x10AE5, 0x10AE6], [0x10D24, 0x10D27], [0x10F46, 0x10F50],\n [0x11001, 0x11001], [0x11038, 0x11046], [0x1107F, 0x11081],\n [0x110B3, 0x110B6], [0x110B9, 0x110BA], [0x110BD, 0x110BD],\n [0x110CD, 0x110CD], [0x11100, 0x11102], [0x11127, 0x1112B],\n [0x1112D, 0x11134], [0x11173, 0x11173], [0x11180, 0x11181],\n [0x111B6, 0x111BE], [0x111C9, 0x111CC], [0x1122F, 0x11231],\n [0x11234, 0x11234], [0x11236, 0x11237], [0x1123E, 0x1123E],\n [0x112DF, 0x112DF], [0x112E3, 0x112EA], [0x11300, 0x11301],\n [0x1133B, 0x1133C], [0x11340, 0x11340], [0x11366, 0x1136C],\n [0x11370, 0x11374], [0x11438, 0x1143F], [0x11442, 0x11444],\n [0x11446, 0x11446], [0x1145E, 0x1145E], [0x114B3, 0x114B8],\n [0x114BA, 0x114BA], [0x114BF, 0x114C0], [0x114C2, 0x114C3],\n [0x115B2, 0x115B5], [0x115BC, 0x115BD], [0x115BF, 0x115C0],\n [0x115DC, 0x115DD], [0x11633, 0x1163A], [0x1163D, 0x1163D],\n [0x1163F, 0x11640], [0x116AB, 0x116AB], [0x116AD, 0x116AD],\n [0x116B0, 0x116B5], [0x116B7, 0x116B7], [0x1171D, 0x1171F],\n [0x11722, 0x11725], [0x11727, 0x1172B], [0x1182F, 0x11837],\n [0x11839, 0x1183A], [0x119D4, 0x119D7], [0x119DA, 0x119DB],\n [0x119E0, 0x119E0], [0x11A01, 0x11A0A], [0x11A33, 0x11A38],\n [0x11A3B, 0x11A3E], [0x11A47, 0x11A47], [0x11A51, 0x11A56],\n [0x11A59, 0x11A5B], [0x11A8A, 0x11A96], [0x11A98, 0x11A99],\n [0x11C30, 0x11C36], [0x11C38, 0x11C3D], [0x11C3F, 0x11C3F],\n [0x11C92, 0x11CA7], [0x11CAA, 0x11CB0], [0x11CB2, 0x11CB3],\n [0x11CB5, 0x11CB6], [0x11D31, 0x11D36], [0x11D3A, 0x11D3A],\n [0x11D3C, 0x11D3D], [0x11D3F, 0x11D45], [0x11D47, 0x11D47],\n [0x11D90, 0x11D91], [0x11D95, 0x11D95], [0x11D97, 0x11D97],\n [0x11EF3, 0x11EF4], [0x13430, 0x13438], [0x16AF0, 0x16AF4],\n [0x16B30, 0x16B36], [0x16F4F, 0x16F4F], [0x16F8F, 0x16F92],\n [0x1BC9D, 0x1BC9E], [0x1BCA0, 0x1BCA3], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0x1DA00, 0x1DA36], [0x1DA3B, 0x1DA6C],\n [0x1DA75, 0x1DA75], [0x1DA84, 0x1DA84], [0x1DA9B, 0x1DA9F],\n [0x1DAA1, 0x1DAAF], [0x1E000, 0x1E006], [0x1E008, 0x1E018],\n [0x1E01B, 0x1E021], [0x1E023, 0x1E024], [0x1E026, 0x1E02A],\n [0x1E130, 0x1E136], [0x1E2EC, 0x1E2EF], [0x1E8D0, 0x1E8D6],\n [0x1E944, 0x1E94A], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n];\nconst BMP_WIDE = [\n [0x1100, 0x115F], [0x231A, 0x231B], [0x2329, 0x232A],\n [0x23E9, 0x23EC], [0x23F0, 0x23F0], [0x23F3, 0x23F3],\n [0x25FD, 0x25FE], [0x2614, 0x2615], [0x2648, 0x2653],\n [0x267F, 0x267F], [0x2693, 0x2693], [0x26A1, 0x26A1],\n [0x26AA, 0x26AB], [0x26BD, 0x26BE], [0x26C4, 0x26C5],\n [0x26CE, 0x26CE], [0x26D4, 0x26D4], [0x26EA, 0x26EA],\n [0x26F2, 0x26F3], [0x26F5, 0x26F5], [0x26FA, 0x26FA],\n [0x26FD, 0x26FD], [0x2705, 0x2705], [0x270A, 0x270B],\n [0x2728, 0x2728], [0x274C, 0x274C], [0x274E, 0x274E],\n [0x2753, 0x2755], [0x2757, 0x2757], [0x2795, 0x2797],\n [0x27B0, 0x27B0], [0x27BF, 0x27BF], [0x2B1B, 0x2B1C],\n [0x2B50, 0x2B50], [0x2B55, 0x2B55], [0x2E80, 0x2E99],\n [0x2E9B, 0x2EF3], [0x2F00, 0x2FD5], [0x2FF0, 0x2FFB],\n [0x3000, 0x3029], [0x302E, 0x303E], [0x3041, 0x3096],\n [0x309B, 0x30FF], [0x3105, 0x312F], [0x3131, 0x318E],\n [0x3190, 0x31BA], [0x31C0, 0x31E3], [0x31F0, 0x321E],\n [0x3220, 0x3247], [0x3250, 0x4DBF], [0x4E00, 0xA48C],\n [0xA490, 0xA4C6], [0xA960, 0xA97C], [0xAC00, 0xD7A3],\n [0xF900, 0xFAFF], [0xFE10, 0xFE19], [0xFE30, 0xFE52],\n [0xFE54, 0xFE66], [0xFE68, 0xFE6B], [0xFF01, 0xFF60],\n [0xFFE0, 0xFFE6]\n];\nconst HIGH_WIDE = [\n [0x16FE0, 0x16FE3], [0x17000, 0x187F7],\n [0x18800, 0x18AF2], [0x1B000, 0x1B11E], [0x1B150, 0x1B152],\n [0x1B164, 0x1B167], [0x1B170, 0x1B2FB], [0x1F004, 0x1F004],\n [0x1F0CF, 0x1F0CF], [0x1F18E, 0x1F18E], [0x1F191, 0x1F19A],\n [0x1F200, 0x1F202], [0x1F210, 0x1F23B], [0x1F240, 0x1F248],\n [0x1F250, 0x1F251], [0x1F260, 0x1F265], [0x1F300, 0x1F320],\n [0x1F32D, 0x1F335], [0x1F337, 0x1F37C], [0x1F37E, 0x1F393],\n [0x1F3A0, 0x1F3CA], [0x1F3CF, 0x1F3D3], [0x1F3E0, 0x1F3F0],\n [0x1F3F4, 0x1F3F4], [0x1F3F8, 0x1F43E], [0x1F440, 0x1F440],\n [0x1F442, 0x1F4FC], [0x1F4FF, 0x1F53D], [0x1F54B, 0x1F54E],\n [0x1F550, 0x1F567], [0x1F57A, 0x1F57A], [0x1F595, 0x1F596],\n [0x1F5A4, 0x1F5A4], [0x1F5FB, 0x1F64F], [0x1F680, 0x1F6C5],\n [0x1F6CC, 0x1F6CC], [0x1F6D0, 0x1F6D2], [0x1F6D5, 0x1F6D5],\n [0x1F6EB, 0x1F6EC], [0x1F6F4, 0x1F6FA], [0x1F7E0, 0x1F7EB],\n [0x1F90D, 0x1F971], [0x1F973, 0x1F976], [0x1F97A, 0x1F9A2],\n [0x1F9A5, 0x1F9AA], [0x1F9AE, 0x1F9CA], [0x1F9CD, 0x1F9FF],\n [0x1FA70, 0x1FA73], [0x1FA78, 0x1FA7A], [0x1FA80, 0x1FA82],\n [0x1FA90, 0x1FA95], [0x20000, 0x2FFFD], [0x30000, 0x3FFFD]\n];\n\n// BMP lookup table, lazy initialized during first addon loading\nlet table: Uint8Array;\n\nfunction bisearch(ucs: number, data: number[][]): boolean {\n let min = 0;\n let max = data.length - 1;\n let mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n } else if (ucs < data[mid][0]) {\n max = mid - 1;\n } else {\n return true;\n }\n }\n return false;\n}\n\n\nexport class UnicodeV11 implements IUnicodeVersionProvider {\n public readonly version = '11';\n\n constructor() {\n if (!table) {\n table = new Uint8Array(65536);\n table.fill(1);\n table[0] = 0;\n table.fill(0, 1, 32);\n table.fill(0, 0x7f, 0xa0);\n for (let r = 0; r < BMP_COMBINING.length; ++r) {\n table.fill(0, BMP_COMBINING[r][0], BMP_COMBINING[r][1] + 1);\n }\n for (let r = 0; r < BMP_WIDE.length; ++r) {\n table.fill(2, BMP_WIDE[r][0], BMP_WIDE[r][1] + 1);\n }\n }\n }\n\n public wcwidth(num: number): UnicodeCharWidth {\n if (num < 32) return 0;\n if (num < 127) return 1;\n if (num < 65536) return table[num] as UnicodeCharWidth;\n if (bisearch(num, HIGH_COMBINING)) return 0;\n if (bisearch(num, HIGH_WIDE)) return 2;\n return 1;\n }\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n let width = this.wcwidth(codepoint);\n let shouldJoin = width === 0 && preceding !== 0;\n if (shouldJoin) {\n const oldWidth = UnicodeService.extractWidth(preceding);\n if (oldWidth === 0) {\n shouldJoin = false;\n } else if (oldWidth > width) {\n width = oldWidth;\n }\n }\n return UnicodeService.createPropertyValue(0, width, shouldJoin);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\n\ninterface IListener<T, U = void> {\n (arg1: T, arg2: U): void;\n}\n\nexport interface IEvent<T, U = void> {\n (listener: (arg1: T, arg2: U) => any): IDisposable;\n}\n\nexport interface IEventEmitter<T, U = void> {\n event: IEvent<T, U>;\n fire(arg1: T, arg2: U): void;\n dispose(): void;\n}\n\nexport class EventEmitter<T, U = void> implements IEventEmitter<T, U> {\n private _listeners: IListener<T, U>[] = [];\n private _event?: IEvent<T, U>;\n private _disposed: boolean = false;\n\n public get event(): IEvent<T, U> {\n if (!this._event) {\n this._event = (listener: (arg1: T, arg2: U) => any) => {\n this._listeners.push(listener);\n const disposable = {\n dispose: () => {\n if (!this._disposed) {\n for (let i = 0; i < this._listeners.length; i++) {\n if (this._listeners[i] === listener) {\n this._listeners.splice(i, 1);\n return;\n }\n }\n }\n }\n };\n return disposable;\n };\n }\n return this._event;\n }\n\n public fire(arg1: T, arg2: U): void {\n const queue: IListener<T, U>[] = [];\n for (let i = 0; i < this._listeners.length; i++) {\n queue.push(this._listeners[i]);\n }\n for (let i = 0; i < queue.length; i++) {\n queue[i].call(undefined, arg1, arg2);\n }\n }\n\n public dispose(): void {\n this.clearListeners();\n this._disposed = true;\n }\n\n public clearListeners(): void {\n if (this._listeners) {\n this._listeners.length = 0;\n }\n }\n}\n\nexport function forwardEvent<T>(from: IEvent<T>, to: IEventEmitter<T>): IDisposable {\n return from(e => to.fire(e));\n}\n\nexport function runAndSubscribe<T>(event: IEvent<T>, handler: (e: T | undefined) => any): IDisposable {\n handler(undefined);\n return event(e => handler(e));\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\nimport { UnicodeService } from 'common/services/UnicodeService';\n\nconst BMP_COMBINING = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n];\nconst HIGH_COMBINING = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n];\n\n// BMP lookup table, lazy initialized during first addon loading\nlet table: Uint8Array;\n\nfunction bisearch(ucs: number, data: number[][]): boolean {\n let min = 0;\n let max = data.length - 1;\n let mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n } else if (ucs < data[mid][0]) {\n max = mid - 1;\n } else {\n return true;\n }\n }\n return false;\n}\n\nexport class UnicodeV6 implements IUnicodeVersionProvider {\n public readonly version = '6';\n\n constructor() {\n // init lookup table once\n if (!table) {\n table = new Uint8Array(65536);\n table.fill(1);\n table[0] = 0;\n // control chars\n table.fill(0, 1, 32);\n table.fill(0, 0x7f, 0xa0);\n\n // apply wide char rules first\n // wide chars\n table.fill(2, 0x1100, 0x1160);\n table[0x2329] = 2;\n table[0x232a] = 2;\n table.fill(2, 0x2e80, 0xa4d0);\n table[0x303f] = 1; // wrongly in last line\n\n table.fill(2, 0xac00, 0xd7a4);\n table.fill(2, 0xf900, 0xfb00);\n table.fill(2, 0xfe10, 0xfe1a);\n table.fill(2, 0xfe30, 0xfe70);\n table.fill(2, 0xff00, 0xff61);\n table.fill(2, 0xffe0, 0xffe7);\n\n // apply combining last to ensure we overwrite\n // wrongly wide set chars:\n // the original algo evals combining first and falls\n // through to wide check so we simply do here the opposite\n // combining 0\n for (let r = 0; r < BMP_COMBINING.length; ++r) {\n table.fill(0, BMP_COMBINING[r][0], BMP_COMBINING[r][1] + 1);\n }\n }\n }\n\n public wcwidth(num: number): UnicodeCharWidth {\n if (num < 32) return 0;\n if (num < 127) return 1;\n if (num < 65536) return table[num] as UnicodeCharWidth;\n if (bisearch(num, HIGH_COMBINING)) return 0;\n if ((num >= 0x20000 && num <= 0x2fffd) || (num >= 0x30000 && num <= 0x3fffd)) return 2;\n return 1;\n }\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n let width = this.wcwidth(codepoint);\n let shouldJoin = width === 0 && preceding !== 0;\n if (shouldJoin) {\n const oldWidth = UnicodeService.extractWidth(preceding);\n if (oldWidth === 0) {\n shouldJoin = false;\n } else if (oldWidth > width) {\n width = oldWidth;\n }\n }\n return UnicodeService.createPropertyValue(0, width, shouldJoin);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { EventEmitter } from 'common/EventEmitter';\nimport { UnicodeV6 } from 'common/input/UnicodeV6';\nimport { IUnicodeService, IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\n\nexport class UnicodeService implements IUnicodeService {\n public serviceBrand: any;\n\n private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null);\n private _active: string = '';\n private _activeProvider: IUnicodeVersionProvider;\n\n private readonly _onChange = new EventEmitter<string>();\n public readonly onChange = this._onChange.event;\n\n public static extractShouldJoin(value: UnicodeCharProperties): boolean {\n return (value & 1) !== 0;\n }\n public static extractWidth(value: UnicodeCharProperties): UnicodeCharWidth {\n return ((value >> 1) & 0x3) as UnicodeCharWidth;\n }\n public static extractCharKind(value: UnicodeCharProperties): number {\n return value >> 3;\n }\n public static createPropertyValue(state: number, width: number, shouldJoin: boolean = false): UnicodeCharProperties {\n return ((state & 0xffffff) << 3) | ((width & 3) << 1) | (shouldJoin?1:0);\n }\n\n constructor() {\n const defaultProvider = new UnicodeV6();\n this.register(defaultProvider);\n this._active = defaultProvider.version;\n this._activeProvider = defaultProvider;\n }\n\n public dispose(): void {\n this._onChange.dispose();\n }\n\n public get versions(): string[] {\n return Object.keys(this._providers);\n }\n\n public get activeVersion(): string {\n return this._active;\n }\n\n public set activeVersion(version: string) {\n if (!this._providers[version]) {\n throw new Error(`unknown Unicode version \"${version}\"`);\n }\n this._active = version;\n this._activeProvider = this._providers[version];\n this._onChange.fire(version);\n }\n\n public register(provider: IUnicodeVersionProvider): void {\n this._providers[provider.version] = provider;\n }\n\n /**\n * Unicode version dependent interface.\n */\n public wcwidth(num: number): UnicodeCharWidth {\n return this._activeProvider.wcwidth(num);\n }\n\n public getStringCellWidth(s: string): number {\n let result = 0;\n let precedingInfo = 0;\n const length = s.length;\n for (let i = 0; i < length; ++i) {\n let code = s.charCodeAt(i);\n // surrogate pair first\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n // this should not happen with strings retrieved from\n // Buffer.translateToString as it converts from UTF-32\n // and therefore always should contain the second part\n // for any other string we still have to handle it somehow:\n // simply treat the lonely surrogate first as a single char (UCS-2 behavior)\n return result + this.wcwidth(code);\n }\n const second = s.charCodeAt(i);\n // convert surrogate pair to high codepoint only for valid second part (UTF-16)\n // otherwise treat them independently (UCS-2 behavior)\n if (0xDC00 <= second && second <= 0xDFFF) {\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n } else {\n result += this.wcwidth(second);\n }\n }\n const currentInfo = this.charProperties(code, precedingInfo);\n let chWidth = UnicodeService.extractWidth(currentInfo);\n if (UnicodeService.extractShouldJoin(currentInfo)) {\n chWidth -= UnicodeService.extractWidth(precedingInfo);\n }\n result += chWidth;\n precedingInfo = currentInfo;\n }\n return result;\n }\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n return this._activeProvider.charProperties(codepoint, preceding);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * UnicodeVersionProvider for V11.\n */\n\nimport { Terminal, ITerminalAddon } from '@xterm/xterm';\nimport { UnicodeV11 } from './UnicodeV11';\n\n\nexport class Unicode11Addon implements ITerminalAddon {\n public activate(terminal: Terminal): void {\n terminal.unicode.register(new UnicodeV11());\n }\n public dispose(): void { }\n}\n"],"names":["root","factory","exports","module","define","amd","this","BMP_COMBINING","HIGH_COMBINING","BMP_WIDE","HIGH_WIDE","table","bisearch","ucs","data","mid","min","max","length","constructor","version","Uint8Array","fill","r","wcwidth","num","charProperties","codepoint","preceding","width","shouldJoin","oldWidth","UnicodeService","extractWidth","createPropertyValue","_listeners","_disposed","event","_event","listener","push","dispose","i","splice","fire","arg1","arg2","queue","call","undefined","clearListeners","from","to","e","handler","extractShouldJoin","value","extractCharKind","state","_providers","Object","create","_active","_onChange","EventEmitter","onChange","defaultProvider","UnicodeV6","register","_activeProvider","versions","keys","activeVersion","Error","provider","getStringCellWidth","s","result","precedingInfo","code","charCodeAt","second","currentInfo","chWidth","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","activate","terminal","unicode","UnicodeV11"],"sourceRoot":""}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@xterm/addon-unicode11",
3
+ "version": "0.7.0-beta.1",
4
+ "author": {
5
+ "name": "The xterm.js authors",
6
+ "url": "https://xtermjs.org/"
7
+ },
8
+ "main": "lib/addon-unicode11.js",
9
+ "types": "typings/addon-unicode11.d.ts",
10
+ "repository": "https://github.com/xtermjs/xterm.js/tree/master/addons/addon-unicode11",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "terminal",
14
+ "xterm",
15
+ "xterm.js"
16
+ ],
17
+ "scripts": {
18
+ "build": "../../node_modules/.bin/tsc -p .",
19
+ "prepackage": "npm run build",
20
+ "package": "../../node_modules/.bin/webpack",
21
+ "prepublishOnly": "npm run package"
22
+ },
23
+ "peerDependencies": {
24
+ "xterm": "^5.0.0"
25
+ }
26
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ *
5
+ * UnicodeVersionProvider for V11.
6
+ */
7
+
8
+ import { Terminal, ITerminalAddon } from '@xterm/xterm';
9
+ import { UnicodeV11 } from './UnicodeV11';
10
+
11
+
12
+ export class Unicode11Addon implements ITerminalAddon {
13
+ public activate(terminal: Terminal): void {
14
+ terminal.unicode.register(new UnicodeV11());
15
+ }
16
+ public dispose(): void { }
17
+ }
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { IUnicodeVersionProvider } from '@xterm/xterm';
7
+ import { UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';
8
+ import { UnicodeService } from 'common/services/UnicodeService';
9
+
10
+ const BMP_COMBINING = [
11
+ [0x0300, 0x036F], [0x0483, 0x0489], [0x0591, 0x05BD],
12
+ [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C5],
13
+ [0x05C7, 0x05C7], [0x0600, 0x0605], [0x0610, 0x061A],
14
+ [0x061C, 0x061C], [0x064B, 0x065F], [0x0670, 0x0670],
15
+ [0x06D6, 0x06DD], [0x06DF, 0x06E4], [0x06E7, 0x06E8],
16
+ [0x06EA, 0x06ED], [0x070F, 0x070F], [0x0711, 0x0711],
17
+ [0x0730, 0x074A], [0x07A6, 0x07B0], [0x07EB, 0x07F3],
18
+ [0x07FD, 0x07FD], [0x0816, 0x0819], [0x081B, 0x0823],
19
+ [0x0825, 0x0827], [0x0829, 0x082D], [0x0859, 0x085B],
20
+ [0x08D3, 0x0902], [0x093A, 0x093A], [0x093C, 0x093C],
21
+ [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0957],
22
+ [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC],
23
+ [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3],
24
+ [0x09FE, 0x09FE], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],
25
+ [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],
26
+ [0x0A51, 0x0A51], [0x0A70, 0x0A71], [0x0A75, 0x0A75],
27
+ [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5],
28
+ [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0AE2, 0x0AE3],
29
+ [0x0AFA, 0x0AFF], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],
30
+ [0x0B3F, 0x0B3F], [0x0B41, 0x0B44], [0x0B4D, 0x0B4D],
31
+ [0x0B56, 0x0B56], [0x0B62, 0x0B63], [0x0B82, 0x0B82],
32
+ [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C00, 0x0C00],
33
+ [0x0C04, 0x0C04], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],
34
+ [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0C62, 0x0C63],
35
+ [0x0C81, 0x0C81], [0x0CBC, 0x0CBC], [0x0CBF, 0x0CBF],
36
+ [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0CE2, 0x0CE3],
37
+ [0x0D00, 0x0D01], [0x0D3B, 0x0D3C], [0x0D41, 0x0D44],
38
+ [0x0D4D, 0x0D4D], [0x0D62, 0x0D63], [0x0DCA, 0x0DCA],
39
+ [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6], [0x0E31, 0x0E31],
40
+ [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1],
41
+ [0x0EB4, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19],
42
+ [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39],
43
+ [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87],
44
+ [0x0F8D, 0x0F97], [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6],
45
+ [0x102D, 0x1030], [0x1032, 0x1037], [0x1039, 0x103A],
46
+ [0x103D, 0x103E], [0x1058, 0x1059], [0x105E, 0x1060],
47
+ [0x1071, 0x1074], [0x1082, 0x1082], [0x1085, 0x1086],
48
+ [0x108D, 0x108D], [0x109D, 0x109D], [0x1160, 0x11FF],
49
+ [0x135D, 0x135F], [0x1712, 0x1714], [0x1732, 0x1734],
50
+ [0x1752, 0x1753], [0x1772, 0x1773], [0x17B4, 0x17B5],
51
+ [0x17B7, 0x17BD], [0x17C6, 0x17C6], [0x17C9, 0x17D3],
52
+ [0x17DD, 0x17DD], [0x180B, 0x180E], [0x1885, 0x1886],
53
+ [0x18A9, 0x18A9], [0x1920, 0x1922], [0x1927, 0x1928],
54
+ [0x1932, 0x1932], [0x1939, 0x193B], [0x1A17, 0x1A18],
55
+ [0x1A1B, 0x1A1B], [0x1A56, 0x1A56], [0x1A58, 0x1A5E],
56
+ [0x1A60, 0x1A60], [0x1A62, 0x1A62], [0x1A65, 0x1A6C],
57
+ [0x1A73, 0x1A7C], [0x1A7F, 0x1A7F], [0x1AB0, 0x1ABE],
58
+ [0x1B00, 0x1B03], [0x1B34, 0x1B34], [0x1B36, 0x1B3A],
59
+ [0x1B3C, 0x1B3C], [0x1B42, 0x1B42], [0x1B6B, 0x1B73],
60
+ [0x1B80, 0x1B81], [0x1BA2, 0x1BA5], [0x1BA8, 0x1BA9],
61
+ [0x1BAB, 0x1BAD], [0x1BE6, 0x1BE6], [0x1BE8, 0x1BE9],
62
+ [0x1BED, 0x1BED], [0x1BEF, 0x1BF1], [0x1C2C, 0x1C33],
63
+ [0x1C36, 0x1C37], [0x1CD0, 0x1CD2], [0x1CD4, 0x1CE0],
64
+ [0x1CE2, 0x1CE8], [0x1CED, 0x1CED], [0x1CF4, 0x1CF4],
65
+ [0x1CF8, 0x1CF9], [0x1DC0, 0x1DF9], [0x1DFB, 0x1DFF],
66
+ [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2064],
67
+ [0x2066, 0x206F], [0x20D0, 0x20F0], [0x2CEF, 0x2CF1],
68
+ [0x2D7F, 0x2D7F], [0x2DE0, 0x2DFF], [0x302A, 0x302D],
69
+ [0x3099, 0x309A], [0xA66F, 0xA672], [0xA674, 0xA67D],
70
+ [0xA69E, 0xA69F], [0xA6F0, 0xA6F1], [0xA802, 0xA802],
71
+ [0xA806, 0xA806], [0xA80B, 0xA80B], [0xA825, 0xA826],
72
+ [0xA8C4, 0xA8C5], [0xA8E0, 0xA8F1], [0xA8FF, 0xA8FF],
73
+ [0xA926, 0xA92D], [0xA947, 0xA951], [0xA980, 0xA982],
74
+ [0xA9B3, 0xA9B3], [0xA9B6, 0xA9B9], [0xA9BC, 0xA9BD],
75
+ [0xA9E5, 0xA9E5], [0xAA29, 0xAA2E], [0xAA31, 0xAA32],
76
+ [0xAA35, 0xAA36], [0xAA43, 0xAA43], [0xAA4C, 0xAA4C],
77
+ [0xAA7C, 0xAA7C], [0xAAB0, 0xAAB0], [0xAAB2, 0xAAB4],
78
+ [0xAAB7, 0xAAB8], [0xAABE, 0xAABF], [0xAAC1, 0xAAC1],
79
+ [0xAAEC, 0xAAED], [0xAAF6, 0xAAF6], [0xABE5, 0xABE5],
80
+ [0xABE8, 0xABE8], [0xABED, 0xABED], [0xFB1E, 0xFB1E],
81
+ [0xFE00, 0xFE0F], [0xFE20, 0xFE2F], [0xFEFF, 0xFEFF],
82
+ [0xFFF9, 0xFFFB]
83
+ ];
84
+ const HIGH_COMBINING = [
85
+ [0x101FD, 0x101FD], [0x102E0, 0x102E0],
86
+ [0x10376, 0x1037A], [0x10A01, 0x10A03], [0x10A05, 0x10A06],
87
+ [0x10A0C, 0x10A0F], [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F],
88
+ [0x10AE5, 0x10AE6], [0x10D24, 0x10D27], [0x10F46, 0x10F50],
89
+ [0x11001, 0x11001], [0x11038, 0x11046], [0x1107F, 0x11081],
90
+ [0x110B3, 0x110B6], [0x110B9, 0x110BA], [0x110BD, 0x110BD],
91
+ [0x110CD, 0x110CD], [0x11100, 0x11102], [0x11127, 0x1112B],
92
+ [0x1112D, 0x11134], [0x11173, 0x11173], [0x11180, 0x11181],
93
+ [0x111B6, 0x111BE], [0x111C9, 0x111CC], [0x1122F, 0x11231],
94
+ [0x11234, 0x11234], [0x11236, 0x11237], [0x1123E, 0x1123E],
95
+ [0x112DF, 0x112DF], [0x112E3, 0x112EA], [0x11300, 0x11301],
96
+ [0x1133B, 0x1133C], [0x11340, 0x11340], [0x11366, 0x1136C],
97
+ [0x11370, 0x11374], [0x11438, 0x1143F], [0x11442, 0x11444],
98
+ [0x11446, 0x11446], [0x1145E, 0x1145E], [0x114B3, 0x114B8],
99
+ [0x114BA, 0x114BA], [0x114BF, 0x114C0], [0x114C2, 0x114C3],
100
+ [0x115B2, 0x115B5], [0x115BC, 0x115BD], [0x115BF, 0x115C0],
101
+ [0x115DC, 0x115DD], [0x11633, 0x1163A], [0x1163D, 0x1163D],
102
+ [0x1163F, 0x11640], [0x116AB, 0x116AB], [0x116AD, 0x116AD],
103
+ [0x116B0, 0x116B5], [0x116B7, 0x116B7], [0x1171D, 0x1171F],
104
+ [0x11722, 0x11725], [0x11727, 0x1172B], [0x1182F, 0x11837],
105
+ [0x11839, 0x1183A], [0x119D4, 0x119D7], [0x119DA, 0x119DB],
106
+ [0x119E0, 0x119E0], [0x11A01, 0x11A0A], [0x11A33, 0x11A38],
107
+ [0x11A3B, 0x11A3E], [0x11A47, 0x11A47], [0x11A51, 0x11A56],
108
+ [0x11A59, 0x11A5B], [0x11A8A, 0x11A96], [0x11A98, 0x11A99],
109
+ [0x11C30, 0x11C36], [0x11C38, 0x11C3D], [0x11C3F, 0x11C3F],
110
+ [0x11C92, 0x11CA7], [0x11CAA, 0x11CB0], [0x11CB2, 0x11CB3],
111
+ [0x11CB5, 0x11CB6], [0x11D31, 0x11D36], [0x11D3A, 0x11D3A],
112
+ [0x11D3C, 0x11D3D], [0x11D3F, 0x11D45], [0x11D47, 0x11D47],
113
+ [0x11D90, 0x11D91], [0x11D95, 0x11D95], [0x11D97, 0x11D97],
114
+ [0x11EF3, 0x11EF4], [0x13430, 0x13438], [0x16AF0, 0x16AF4],
115
+ [0x16B30, 0x16B36], [0x16F4F, 0x16F4F], [0x16F8F, 0x16F92],
116
+ [0x1BC9D, 0x1BC9E], [0x1BCA0, 0x1BCA3], [0x1D167, 0x1D169],
117
+ [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],
118
+ [0x1D242, 0x1D244], [0x1DA00, 0x1DA36], [0x1DA3B, 0x1DA6C],
119
+ [0x1DA75, 0x1DA75], [0x1DA84, 0x1DA84], [0x1DA9B, 0x1DA9F],
120
+ [0x1DAA1, 0x1DAAF], [0x1E000, 0x1E006], [0x1E008, 0x1E018],
121
+ [0x1E01B, 0x1E021], [0x1E023, 0x1E024], [0x1E026, 0x1E02A],
122
+ [0x1E130, 0x1E136], [0x1E2EC, 0x1E2EF], [0x1E8D0, 0x1E8D6],
123
+ [0x1E944, 0x1E94A], [0xE0001, 0xE0001], [0xE0020, 0xE007F],
124
+ [0xE0100, 0xE01EF]
125
+ ];
126
+ const BMP_WIDE = [
127
+ [0x1100, 0x115F], [0x231A, 0x231B], [0x2329, 0x232A],
128
+ [0x23E9, 0x23EC], [0x23F0, 0x23F0], [0x23F3, 0x23F3],
129
+ [0x25FD, 0x25FE], [0x2614, 0x2615], [0x2648, 0x2653],
130
+ [0x267F, 0x267F], [0x2693, 0x2693], [0x26A1, 0x26A1],
131
+ [0x26AA, 0x26AB], [0x26BD, 0x26BE], [0x26C4, 0x26C5],
132
+ [0x26CE, 0x26CE], [0x26D4, 0x26D4], [0x26EA, 0x26EA],
133
+ [0x26F2, 0x26F3], [0x26F5, 0x26F5], [0x26FA, 0x26FA],
134
+ [0x26FD, 0x26FD], [0x2705, 0x2705], [0x270A, 0x270B],
135
+ [0x2728, 0x2728], [0x274C, 0x274C], [0x274E, 0x274E],
136
+ [0x2753, 0x2755], [0x2757, 0x2757], [0x2795, 0x2797],
137
+ [0x27B0, 0x27B0], [0x27BF, 0x27BF], [0x2B1B, 0x2B1C],
138
+ [0x2B50, 0x2B50], [0x2B55, 0x2B55], [0x2E80, 0x2E99],
139
+ [0x2E9B, 0x2EF3], [0x2F00, 0x2FD5], [0x2FF0, 0x2FFB],
140
+ [0x3000, 0x3029], [0x302E, 0x303E], [0x3041, 0x3096],
141
+ [0x309B, 0x30FF], [0x3105, 0x312F], [0x3131, 0x318E],
142
+ [0x3190, 0x31BA], [0x31C0, 0x31E3], [0x31F0, 0x321E],
143
+ [0x3220, 0x3247], [0x3250, 0x4DBF], [0x4E00, 0xA48C],
144
+ [0xA490, 0xA4C6], [0xA960, 0xA97C], [0xAC00, 0xD7A3],
145
+ [0xF900, 0xFAFF], [0xFE10, 0xFE19], [0xFE30, 0xFE52],
146
+ [0xFE54, 0xFE66], [0xFE68, 0xFE6B], [0xFF01, 0xFF60],
147
+ [0xFFE0, 0xFFE6]
148
+ ];
149
+ const HIGH_WIDE = [
150
+ [0x16FE0, 0x16FE3], [0x17000, 0x187F7],
151
+ [0x18800, 0x18AF2], [0x1B000, 0x1B11E], [0x1B150, 0x1B152],
152
+ [0x1B164, 0x1B167], [0x1B170, 0x1B2FB], [0x1F004, 0x1F004],
153
+ [0x1F0CF, 0x1F0CF], [0x1F18E, 0x1F18E], [0x1F191, 0x1F19A],
154
+ [0x1F200, 0x1F202], [0x1F210, 0x1F23B], [0x1F240, 0x1F248],
155
+ [0x1F250, 0x1F251], [0x1F260, 0x1F265], [0x1F300, 0x1F320],
156
+ [0x1F32D, 0x1F335], [0x1F337, 0x1F37C], [0x1F37E, 0x1F393],
157
+ [0x1F3A0, 0x1F3CA], [0x1F3CF, 0x1F3D3], [0x1F3E0, 0x1F3F0],
158
+ [0x1F3F4, 0x1F3F4], [0x1F3F8, 0x1F43E], [0x1F440, 0x1F440],
159
+ [0x1F442, 0x1F4FC], [0x1F4FF, 0x1F53D], [0x1F54B, 0x1F54E],
160
+ [0x1F550, 0x1F567], [0x1F57A, 0x1F57A], [0x1F595, 0x1F596],
161
+ [0x1F5A4, 0x1F5A4], [0x1F5FB, 0x1F64F], [0x1F680, 0x1F6C5],
162
+ [0x1F6CC, 0x1F6CC], [0x1F6D0, 0x1F6D2], [0x1F6D5, 0x1F6D5],
163
+ [0x1F6EB, 0x1F6EC], [0x1F6F4, 0x1F6FA], [0x1F7E0, 0x1F7EB],
164
+ [0x1F90D, 0x1F971], [0x1F973, 0x1F976], [0x1F97A, 0x1F9A2],
165
+ [0x1F9A5, 0x1F9AA], [0x1F9AE, 0x1F9CA], [0x1F9CD, 0x1F9FF],
166
+ [0x1FA70, 0x1FA73], [0x1FA78, 0x1FA7A], [0x1FA80, 0x1FA82],
167
+ [0x1FA90, 0x1FA95], [0x20000, 0x2FFFD], [0x30000, 0x3FFFD]
168
+ ];
169
+
170
+ // BMP lookup table, lazy initialized during first addon loading
171
+ let table: Uint8Array;
172
+
173
+ function bisearch(ucs: number, data: number[][]): boolean {
174
+ let min = 0;
175
+ let max = data.length - 1;
176
+ let mid;
177
+ if (ucs < data[0][0] || ucs > data[max][1]) {
178
+ return false;
179
+ }
180
+ while (max >= min) {
181
+ mid = (min + max) >> 1;
182
+ if (ucs > data[mid][1]) {
183
+ min = mid + 1;
184
+ } else if (ucs < data[mid][0]) {
185
+ max = mid - 1;
186
+ } else {
187
+ return true;
188
+ }
189
+ }
190
+ return false;
191
+ }
192
+
193
+
194
+ export class UnicodeV11 implements IUnicodeVersionProvider {
195
+ public readonly version = '11';
196
+
197
+ constructor() {
198
+ if (!table) {
199
+ table = new Uint8Array(65536);
200
+ table.fill(1);
201
+ table[0] = 0;
202
+ table.fill(0, 1, 32);
203
+ table.fill(0, 0x7f, 0xa0);
204
+ for (let r = 0; r < BMP_COMBINING.length; ++r) {
205
+ table.fill(0, BMP_COMBINING[r][0], BMP_COMBINING[r][1] + 1);
206
+ }
207
+ for (let r = 0; r < BMP_WIDE.length; ++r) {
208
+ table.fill(2, BMP_WIDE[r][0], BMP_WIDE[r][1] + 1);
209
+ }
210
+ }
211
+ }
212
+
213
+ public wcwidth(num: number): UnicodeCharWidth {
214
+ if (num < 32) return 0;
215
+ if (num < 127) return 1;
216
+ if (num < 65536) return table[num] as UnicodeCharWidth;
217
+ if (bisearch(num, HIGH_COMBINING)) return 0;
218
+ if (bisearch(num, HIGH_WIDE)) return 2;
219
+ return 1;
220
+ }
221
+
222
+ public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {
223
+ let width = this.wcwidth(codepoint);
224
+ let shouldJoin = width === 0 && preceding !== 0;
225
+ if (shouldJoin) {
226
+ const oldWidth = UnicodeService.extractWidth(preceding);
227
+ if (oldWidth === 0) {
228
+ shouldJoin = false;
229
+ } else if (oldWidth > width) {
230
+ width = oldWidth;
231
+ }
232
+ }
233
+ return UnicodeService.createPropertyValue(0, width, shouldJoin);
234
+ }
235
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { Terminal, ITerminalAddon } from '@xterm/xterm';
7
+
8
+ declare module '@xterm/addon-unicode11' {
9
+ export class Unicode11Addon implements ITerminalAddon {
10
+ constructor();
11
+ public activate(terminal: Terminal): void;
12
+ public dispose(): void;
13
+ }
14
+ }