palt-typesetting 0.1.6 → 0.1.8

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/README.md CHANGED
@@ -24,7 +24,7 @@ typesetter.renderToSelector('.my-class')
24
24
  ### Use from CDN
25
25
 
26
26
  ```html
27
- <script src="https://unpkg.com/palt-typesetting@0.1.6/bundle/palt-typesetting.min.js"></script>
27
+ <script src="https://unpkg.com/palt-typesetting@0.1.8/bundle/palt-typesetting.min.js"></script>
28
28
  ```
29
29
 
30
30
  ```html
@@ -46,7 +46,7 @@ typesetter.renderToSelector('.my-class')
46
46
  .typeset-latin {
47
47
  letter-spacing: 0.05em;
48
48
 
49
- // if needed
49
+ /* if needed */
50
50
  font-size: 105%;
51
51
  line-height: calc(1.8 / 1.05);
52
52
  }
@@ -76,17 +76,17 @@ console.log(typesetter.render(srcHtml))
76
76
 
77
77
  ### Constructor
78
78
 
79
- | <div style="width:18em">コンストラクタ</div> | 説明 | 引数 |
80
- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------- |
81
- | `Typesetter(options?)` | Typesetter インスタンスを作成します。<br>オプションを指定することでカスタムの組版設定を適用できます。 | `options`: オプション(任意)。 |
79
+ | コンストラクタ | 説明 | 引数 |
80
+ | ---------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------- |
81
+ | `Typesetter(options?)` | Typesetter インスタンスを作成します。<br>オプションを指定することでカスタムの組版設定を適用できます。 | `options`: オプション(任意)。 |
82
82
 
83
83
  ### Methods
84
84
 
85
- | <div style="width:18em">メソッド名</div> | 説明 | 引数 | 返り値 |
86
- | ---------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------- |
87
- | `render(srcHtml)` | スタイルを適用した HTML 文字列を返します。 | `srcHtml`: 処理する HTML 文字列 | `string`: スタイルを適用した HTML 文字列 |
88
- | `renderToElements(elements)` | 指定された Element または Element の配列にスタイルを適用します。 | `elements`: スタイルを適用する Element または Element の配列 | `void` |
89
- | `renderToSelector(selector)` | 指定された CSS セレクタに一致するすべての要素にスタイルを適用します。 | `selector`: スタイルを適用する要素を選択する CSS セレクタ | `void` |
85
+ | メソッド名 | 説明 | 引数 | 返り値 |
86
+ | ---------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------- |
87
+ | `render(srcHtml)` | スタイルを適用した HTML 文字列を返します。 | `srcHtml`: 処理する HTML 文字列 | `string`: スタイルを適用した HTML 文字列 |
88
+ | `renderToElements(elements)` | 指定された Element または Element の配列にスタイルを適用します。 | `elements`: スタイルを適用する Element または Element の配列 | `void` |
89
+ | `renderToSelector(selector)` | 指定された CSS セレクタに一致するすべての要素にスタイルを適用します。 | `selector`: スタイルを適用する要素を選択する CSS セレクタ | `void` |
90
90
 
91
91
  ## Options
92
92
 
@@ -103,7 +103,7 @@ const options = {
103
103
  // 英数を `.typeset-latin` でラップします。
104
104
  wrapLatin: true,
105
105
 
106
- // 罫線などの分離禁則文字を `.typeset-nobreaks` でラップし、文字間を 0 に設定します。
106
+ // 罫線などの分離禁則文字を `.typeset-no-breaks` でラップし、文字間を 0 に設定します。
107
107
  noSpaceBetweenNoBreaks: true,
108
108
 
109
109
  // 四分アキスペースを自動で追加します。
@@ -131,15 +131,15 @@ typesetter.renderToSelector('.my-class')
131
131
 
132
132
  ### Typesetting Options
133
133
 
134
- | <div style="width:18em">オプション名</div> | 説明 | 型 | デフォルト値 |
135
- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------ |
136
- | `classNamePrefix` | ライブラリで使用される CSS クラス名のプレフィックスを指定します。 | `string` | `'typeset' ` |
137
- | `useWordBreak` | 単語や助詞など、語単位での改行を行います。 | `boolean` | `true` |
138
- | `wrapLatin` | 英数を `span.typeset-latin` でラップします。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
139
- | `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typeset-nobreaks` でラップし、文字間を 0 に設定します。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
140
- | `addThinSpaces` | 四分アキスペースを自動で追加します。 | `boolean` | `true` |
141
- | `thinSpaceWidth` | 四分アキスペースの幅を設定します。<br>`addThinSpaces` が `true` の場合にのみ有効です。 | `string` | `'50%' ` |
142
- | `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
134
+ | オプション名 | 説明 | 型 | デフォルト値 |
135
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------- | ------------ |
136
+ | `classNamePrefix` | ライブラリで使用される CSS クラス名のプレフィックスを指定します。 | `string` | `'typeset' ` |
137
+ | `useWordBreak` | 単語や助詞など、語単位での改行を行います。 | `boolean` | `true` |
138
+ | `wrapLatin` | 英数を `span.typeset-latin` でラップします。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
139
+ | `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typeset-no-breaks` でラップし、文字間を 0 に設定します。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
140
+ | `addThinSpaces` | 四分アキスペースを自動で追加します。 | `boolean` | `true` |
141
+ | `thinSpaceWidth` | 四分アキスペースの幅を設定します。<br>`addThinSpaces` が `true` の場合にのみ有効です。 | `string` | `'50%' ` |
142
+ | `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
143
143
 
144
144
  ## Notes
145
145
 
@@ -1,6 +1,6 @@
1
- "use strict";(()=>{var S=(s,a)=>()=>(a||s((a={exports:{}}).exports,a),a.exports);var G=S(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var rt=window;K.default=rt});var be=S(m=>{"use strict";var st=m&&m.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(m,"__esModule",{value:!0});m.getTextNodes=m.parseFromString=void 0;var V=st(G()),Q=class{constructor(a,n){this.replaceNode=(i,o)=>{let c=V.default.document.createRange();c.selectNode(i);let d=c.createContextualFragment(o);i.parentNode&&(i.parentNode.insertBefore(d,i),i.parentNode.removeChild(i))},this.transformFunctions=a,this.options=n}processHtmlWithFunctions(a){return a===""?a:this.transformFunctions.reduce((n,i)=>this.processHtml(n,i),a)}processHtml(a,n){if(a==="")return a;let i=he(a),o=pe(i.body);return o.forEach((c,d)=>{let h=o[d+1]||null,p=this.getTransformedHtml(c,h,n);this.replaceNode(c,p)}),i.body.innerHTML}getTransformedHtml(a,n,i){return i(a.nodeValue||"",n&&n.nodeValue||"",this.options)}},he=s=>new V.default.DOMParser().parseFromString(s,"text/html");m.parseFromString=he;var pe=s=>{let a=V.default.document.createTreeWalker(s,V.default.NodeFilter.SHOW_TEXT),n=a.nextNode(),i=[];for(;n;)n.nodeValue&&n.nodeValue.trim()!==""&&i.push(n),n=a.nextNode();return i};m.getTextNodes=pe;m.default=Q});var me=S((ur,Le)=>{var ee=0,ye=-3;function k(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function nt(s,a){this.source=s,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=a,this.destLen=0,this.ltree=new k,this.dtree=new k}var Se=new k,$e=new k,te=new Uint8Array(30),re=new Uint16Array(30),Ae=new Uint8Array(30),we=new Uint16Array(30),at=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ge=new k,T=new Uint8Array(320);function Te(s,a,n,i){var o,c;for(o=0;o<n;++o)s[o]=0;for(o=0;o<30-n;++o)s[o+n]=o/n|0;for(c=i,o=0;o<30;++o)a[o]=c,c+=1<<s[o]}function it(s,a){var n;for(n=0;n<7;++n)s.table[n]=0;for(s.table[7]=24,s.table[8]=152,s.table[9]=112,n=0;n<24;++n)s.trans[n]=256+n;for(n=0;n<144;++n)s.trans[24+n]=n;for(n=0;n<8;++n)s.trans[168+n]=280+n;for(n=0;n<112;++n)s.trans[176+n]=144+n;for(n=0;n<5;++n)a.table[n]=0;for(a.table[5]=32,n=0;n<32;++n)a.trans[n]=n}var xe=new Uint16Array(16);function J(s,a,n,i){var o,c;for(o=0;o<16;++o)s.table[o]=0;for(o=0;o<i;++o)s.table[a[n+o]]++;for(s.table[0]=0,c=0,o=0;o<16;++o)xe[o]=c,c+=s.table[o];for(o=0;o<i;++o)a[n+o]&&(s.trans[xe[a[n+o]]++]=o)}function ot(s){s.bitcount--||(s.tag=s.source[s.sourceIndex++],s.bitcount=7);var a=s.tag&1;return s.tag>>>=1,a}function L(s,a,n){if(!a)return n;for(;s.bitcount<24;)s.tag|=s.source[s.sourceIndex++]<<s.bitcount,s.bitcount+=8;var i=s.tag&65535>>>16-a;return s.tag>>>=a,s.bitcount-=a,i+n}function Y(s,a){for(;s.bitcount<24;)s.tag|=s.source[s.sourceIndex++]<<s.bitcount,s.bitcount+=8;var n=0,i=0,o=0,c=s.tag;do i=2*i+(c&1),c>>>=1,++o,n+=a.table[o],i-=a.table[o];while(i>=0);return s.tag=c,s.bitcount-=o,a.trans[n+i]}function ct(s,a,n){var i,o,c,d,h,p;for(i=L(s,5,257),o=L(s,5,1),c=L(s,4,4),d=0;d<19;++d)T[d]=0;for(d=0;d<c;++d){var g=L(s,3,0);T[at[d]]=g}for(J(ge,T,0,19),h=0;h<i+o;){var H=Y(s,ge);switch(H){case 16:var I=T[h-1];for(p=L(s,2,3);p;--p)T[h++]=I;break;case 17:for(p=L(s,3,3);p;--p)T[h++]=0;break;case 18:for(p=L(s,7,11);p;--p)T[h++]=0;break;default:T[h++]=H;break}}J(a,T,0,i),J(n,T,i,o)}function ve(s,a,n){for(;;){var i=Y(s,a);if(i===256)return ee;if(i<256)s.dest[s.destLen++]=i;else{var o,c,d,h;for(i-=257,o=L(s,te[i],re[i]),c=Y(s,n),d=s.destLen-L(s,Ae[c],we[c]),h=d;h<d+o;++h)s.dest[s.destLen++]=s.dest[h]}}}function ft(s){for(var a,n,i;s.bitcount>8;)s.sourceIndex--,s.bitcount-=8;if(a=s.source[s.sourceIndex+1],a=256*a+s.source[s.sourceIndex],n=s.source[s.sourceIndex+3],n=256*n+s.source[s.sourceIndex+2],a!==(~n&65535))return ye;for(s.sourceIndex+=4,i=a;i;--i)s.dest[s.destLen++]=s.source[s.sourceIndex++];return s.bitcount=0,ee}function lt(s,a){var n=new nt(s,a),i,o,c;do{switch(i=ot(n),o=L(n,2,0),o){case 0:c=ft(n);break;case 1:c=ve(n,Se,$e);break;case 2:ct(n,n.ltree,n.dtree),c=ve(n,n.ltree,n.dtree);break;default:c=ye}if(c!==ee)throw new Error("Data error")}while(!i);return n.destLen<n.dest.length?typeof n.dest.slice=="function"?n.dest.slice(0,n.destLen):n.dest.subarray(0,n.destLen):n.dest}it(Se,$e);Te(te,re,4,3);Te(Ae,we,2,1);te[28]=0;re[28]=258;Le.exports=lt});var Pe=S((dr,Ne)=>{var ut=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,_e=(s,a,n)=>{let i=s[a];s[a]=s[n],s[n]=i},dt=s=>{let a=s.length;for(let n=0;n<a;n+=4)_e(s,n,n+3),_e(s,n+1,n+2)},ht=s=>{ut&&dt(s)};Ne.exports={swap32LE:ht}});var Fe=S((hr,Ce)=>{var He=me(),{swap32LE:pt}=Pe(),ae=11,P=5,bt=ae-P,gt=65536>>ae,xt=1<<bt,vt=xt-1,E=2,yt=1<<P,se=yt-1,Be=65536>>P,St=1024>>P,$t=Be+St,At=$t,wt=32,Tt=At+wt,Lt=1<<E,ne=class{constructor(a){let n=typeof a.readUInt32BE=="function"&&typeof a.slice=="function";if(n||a instanceof Uint8Array){let i;if(n)this.highStart=a.readUInt32LE(0),this.errorValue=a.readUInt32LE(4),i=a.readUInt32LE(8),a=a.slice(12);else{let o=new DataView(a.buffer);this.highStart=o.getUint32(0,!0),this.errorValue=o.getUint32(4,!0),i=o.getUint32(8,!0),a=a.subarray(12)}a=He(a,new Uint8Array(i)),a=He(a,new Uint8Array(i)),pt(a),this.data=new Uint32Array(a.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=a)}get(a){let n;return a<0||a>1114111?this.errorValue:a<55296||a>56319&&a<=65535?(n=(this.data[a>>P]<<E)+(a&se),this.data[n]):a<=65535?(n=(this.data[Be+(a-55296>>P)]<<E)+(a&se),this.data[n]):a<this.highStart?(n=this.data[Tt-gt+(a>>ae)],n=this.data[n+(a>>P&vt)],n=(n<<E)+(a&se),this.data[n]):this.data[this.data.length-Lt]}};Ce.exports=ne});var Xe=S(R=>{var mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(s){"use strict";var a=typeof Uint8Array!="undefined"?Uint8Array:Array,n=43,i=47,o=48,c=97,d=65,h=45,p=95;function g(u){var l=u.charCodeAt(0);if(l===n||l===h)return 62;if(l===i||l===p)return 63;if(l<o)return-1;if(l<o+10)return l-o+26+26;if(l<d+26)return l-d;if(l<c+26)return l-c+26}function H(u){var l,W,A,b,_,y;if(u.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var j=u.length;_=u.charAt(j-2)==="="?2:u.charAt(j-1)==="="?1:0,y=new a(u.length*3/4-_),A=_>0?u.length-4:u.length;var N=0;function B(tt){y[N++]=tt}for(l=0,W=0;l<A;l+=4,W+=3)b=g(u.charAt(l))<<18|g(u.charAt(l+1))<<12|g(u.charAt(l+2))<<6|g(u.charAt(l+3)),B((b&16711680)>>16),B((b&65280)>>8),B(b&255);return _===2?(b=g(u.charAt(l))<<2|g(u.charAt(l+1))>>4,B(b&255)):_===1&&(b=g(u.charAt(l))<<10|g(u.charAt(l+1))<<4|g(u.charAt(l+2))>>2,B(b>>8&255),B(b&255)),y}function I(u){var l,W=u.length%3,A="",b,_;function y(N){return mt.charAt(N)}function j(N){return y(N>>18&63)+y(N>>12&63)+y(N>>6&63)+y(N&63)}for(l=0,_=u.length-W;l<_;l+=3)b=(u[l]<<16)+(u[l+1]<<8)+u[l+2],A+=j(b);switch(W){case 1:b=u[u.length-1],A+=y(b>>2),A+=y(b<<4&63),A+="==";break;case 2:b=(u[u.length-2]<<8)+u[u.length-1],A+=y(b>>10),A+=y(b>>4&63),A+=y(b<<2&63),A+="=";break}return A}s.toByteArray=H,s.fromByteArray=I})(typeof R=="undefined"?R.base64js={}:R)});var Ee=S((br,Ve)=>{var _t=Fe(),Nt=Xe();function De(s){return s&&s.__esModule?s.default:s}var Pt=5,Oe=12,Ht=13,Bt=16,Ct=17,Ft=22,Ie=28,We=31,Xt=33,q=34,Ot=35,ie=36,oe=37,ze=38,It=39,Wt=40,U=41,kt=42,e=0,t=1,f=2,je=3,r=4,Ut=[[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,je,r,r,r,r,r,r,r,r,r,r,r],[e,r,r,t,t,r,r,r,r,t,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,r,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[r,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,t,e,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,e,e,t,t,t,t,t,t,t,e,e,r,f,r,t,t,t,t,t,e,t,t,t,e],[t,r,r,t,t,t,r,r,r,e,e,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,e,t,r,r,r,e,e,t,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,e,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,r,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,r,e,e,e,e,e,e,e,e,e,e,e,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,t,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,t,t,t,t,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,t,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,t,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,t,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,e,r,r,r,e,e,e,e,e,e,e,e,e,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e]],Dt=De(Nt).toByteArray("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"),zt=new(De(_t))(Dt),ke=function(s){switch(s){case Xt:return Oe;case It:case Wt:case kt:return Oe;case Ot:return Pt;default:return s}},Ue=function(s){switch(s){case oe:case ze:return q;case U:return Ft;default:return s}},D=class{constructor(a,n=!1){this.position=a,this.required=n}},ce=class{nextCodePoint(){let a=this.string.charCodeAt(this.pos++),n=this.string.charCodeAt(this.pos);return 55296<=a&&a<=56319&&56320<=n&&n<=57343?(this.pos++,(a-55296)*1024+(n-56320)+65536):a}nextCharClass(){return ke(zt.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case U:return!1;case q:case oe:case ze:return this.curClass=q,!1;case ie:return this.curClass=ie,!1}return null}getPairTableBreak(a){let n=!1;switch(Ut[this.curClass][this.nextClass]){case e:n=!0;break;case t:n=a===U;break;case f:if(n=a===U,!n)return n=!1,n;break;case je:if(a!==U)return n;break;case r:break}return this.LB8a&&(n=!1),this.LB21a&&(this.curClass===Bt||this.curClass===Ct)?(n=!1,this.LB21a=!1):this.LB21a=this.curClass===Ht,this.curClass===Ie?(this.LB30a++,this.LB30a==2&&this.nextClass===Ie&&(n=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,n}nextBreak(){if(this.curClass==null){let a=this.nextCharClass();this.curClass=Ue(a),this.nextClass=a,this.LB8a=a===We,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;let a=this.nextClass;if(this.nextClass=this.nextCharClass(),this.curClass===q||this.curClass===ie&&this.nextClass!==oe)return this.curClass=Ue(ke(this.nextClass)),new D(this.lastPos,!0);let n=this.getSimpleBreak();if(n===null&&(n=this.getPairTableBreak(a)),this.LB8a=this.nextClass===We,n)return new D(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new D(this.string.length)):null}constructor(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};Ve.exports=ce});var Re=S(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});x.noBreakRulesRegex=x.middleDotsRegex=x.closingsRegex=x.openingsRegex=x.japaneseRegex=x.latinRegex=void 0;x.latinRegex=/[A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]+/;x.japaneseRegex=/[\p{scx=Hiragana}\p{scx=Katakana}|ヲ-゚\p{scx=Han}]+/u;x.openingsRegex=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/;x.closingsRegex=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’|、|,|。|./;x.middleDotsRegex=/・|:|;/;x.noBreakRulesRegex=new RegExp("[\u2014\u2025\u2026\uFF3F\u2500-\u257F]+")});var fe=S(w=>{"use strict";var jt=w&&w.__createBinding||(Object.create?function(s,a,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(a,n);(!o||("get"in o?!a.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return a[n]}}),Object.defineProperty(s,i,o)}:function(s,a,n,i){i===void 0&&(i=n),s[i]=a[n]}),Vt=w&&w.__setModuleDefault||(Object.create?function(s,a){Object.defineProperty(s,"default",{enumerable:!0,value:a})}:function(s,a){s.default=a}),Et=w&&w.__importStar||function(s){if(s&&s.__esModule)return s;var a={};if(s!=null)for(var n in s)n!=="default"&&Object.prototype.hasOwnProperty.call(s,n)&&jt(a,s,n);return Vt(a,s),a};Object.defineProperty(w,"__esModule",{value:!0});w.LanguageClass=w.CharClass=void 0;var F=Et(Re()),Rt={shouldNotBreak:s=>F.noBreakRulesRegex.test(s),shouldAddThinSpace:(s,a)=>{let n={openings:{regex:F.openingsRegex,hasSpaceBefore:!0,hasSpaceAfter:!1},closings:{regex:F.closingsRegex,hasSpaceBefore:!1,hasSpaceAfter:!0},middleDots:{regex:F.middleDotsRegex,hasSpaceBefore:!0,hasSpaceAfter:!0}};for(let{regex:i,hasSpaceBefore:o,hasSpaceAfter:c}of Object.values(n))if(o&&i.test(a)&&!i.test(s)||c&&i.test(s)&&!i.test(a))return!0;return!1}};w.CharClass=Rt;var C={isLatin:s=>F.latinRegex.test(s),isJapanese:s=>F.japaneseRegex.test(s),isDifferentLanguageClass:(s,a)=>C.isJapanese(s)&&C.isLatin(a)||C.isLatin(s)&&C.isJapanese(a),shouldAddThinSpace:(s,a)=>C.isDifferentLanguageClass(s,a)};w.LanguageClass=C});var le=S(v=>{"use strict";Object.defineProperty(v,"__esModule",{value:!0});v.applyNoBreakStyle=v.applyLatinStyle=v.applyWrapperStyle=v.applyKerning=v.thinSpace=v.wbr=void 0;var X={preventSelectStyle:"user-select:none;",hiddenFromReader:'aria-hidden="true"',noIndex:'data-nosnippet=""'},qt="<wbr>";v.wbr=qt;var Mt=(s,a)=>{let n="\u2009",i=a+"-thin-space",o=`font-size: ${s}; ${X.preventSelectStyle}`;return`<span class="${i}" style="${o}" ${X.hiddenFromReader} ${X.noIndex}>${n}</span>`};v.thinSpace=Mt;var Zt=(s,a,n)=>{let i=a/1e3/2+"em",o=n+"-kerning",c=`margin: ${i}; ${X.preventSelectStyle}`;return`${s}<span class="${o}" style="${c}" ${X.hiddenFromReader} ${X.noIndex}></span>`};v.applyKerning=Zt;var Kt=(s,a,n)=>`<span class="${a}" style="${n?"word-break: keep-all; overflow-wrap: anywhere;":""}">${s}</span>`;v.applyWrapperStyle=Kt;var Gt=(s,a)=>`<span class="${a+"-latin"}">${s}</span>`;v.applyLatinStyle=Gt;var Qt=(s,a)=>`<span class="${a+"-no-breaks"}" style="letter-spacing: 0">${s}</span>`;v.applyNoBreakStyle=Qt});var Qe=S($=>{"use strict";var Jt=$&&$.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty($,"__esModule",{value:!0});$.shouldAddThinSpace=$.shouldAddWbr=$.addSeparatorsToSegment=$.generateSegments=void 0;var Yt=Jt(Ee()),qe=fe(),Me=le(),er=(s,a,n)=>{let i=ue(s),o=ue(a);return i.reduce((d,h,p,g)=>{let H=h,I=g[p+1]||o[0];return d+Ze(H,I,n)},"")},ue=s=>{let a=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(a.segment(s),({segment:n})=>n)};$.generateSegments=ue;var Ze=(s,a="",n)=>{if(!a)return s;let i=n.useWordBreak&&Ke(s,a),o=n.addThinSpaces&&Ge(s,a);return s+(o?(0,Me.thinSpace)(n.thinSpaceWidth,n.classNamePrefix):"")+(i?Me.wbr:"")};$.addSeparatorsToSegment=Ze;var Ke=(s,a)=>{let n=s.slice(-1)+a.slice(0,1),o=new Yt.default(n).nextBreak();return o&&o.position===1};$.shouldAddWbr=Ke;var Ge=(s,a)=>qe.LanguageClass.shouldAddThinSpace(s,a)||qe.CharClass.shouldAddThinSpace(s,a);$.shouldAddThinSpace=Ge;$.default=er});var Ye=S(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.applyStyleToSegment=O.applyStyleToText=void 0;var Je=fe(),M=le(),tr=(s,a,n)=>s===" "?s:(0,M.applyWrapperStyle)(s,n.classNamePrefix,n.useWordBreak);O.applyStyleToText=tr;var rr=(s,a,n)=>{if(s===" ")return s;let i=sr(s,a,n);return n.wrapLatin&&Je.LanguageClass.isLatin(s)?(0,M.applyLatinStyle)(i,n.classNamePrefix):n.noSpaceBetweenNoBreaks&&Je.CharClass.shouldNotBreak(s)?(0,M.applyNoBreakStyle)(i,n.classNamePrefix):i};O.applyStyleToSegment=rr;var sr=(s,a,n)=>{let i=[...s];return i.map((c,d)=>{let h=i[d+1]||a[0]||"",p=n.kerningRules.find(g=>g.between[0]===c&&g.between[1]===h);if(p){let g=typeof p.value=="number"?p.value:parseInt(p.value,10);return(0,M.applyKerning)(c,g,n.classNamePrefix)}return c}).join("")}});var or=S(z=>{var de=z&&z.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(z,"__esModule",{value:!0});var nr=de(be()),ar=de(Qe()),et=Ye(),ir=de(G()),Z=class s extends nr.default{constructor(a={}){let n=[et.applyStyleToText,ar.default,et.applyStyleToSegment],i=s.validateOptions(a);super(n,i),this.isIntlSegmenterSupported=typeof Intl.Segmenter!="undefined",this.isIntlSegmenterSupported||console.warn(`
1
+ "use strict";var Typesetter=(()=>{var S=(s,a)=>()=>(a||s((a={exports:{}}).exports,a),a.exports);var G=S(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});var rt=window;K.default=rt});var be=S(m=>{"use strict";var st=m&&m.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(m,"__esModule",{value:!0});m.getTextNodes=m.parseFromString=void 0;var V=st(G()),Q=class{constructor(a,n){this.replaceNode=(i,o)=>{let c=V.default.document.createRange();c.selectNode(i);let d=c.createContextualFragment(o);i.parentNode&&(i.parentNode.insertBefore(d,i),i.parentNode.removeChild(i))},this.transformFunctions=a,this.options=n}processHtmlWithFunctions(a){return a===""?a:this.transformFunctions.reduce((n,i)=>this.processHtml(n,i),a)}processHtml(a,n){if(a==="")return a;let i=he(a),o=pe(i.body);return o.forEach((c,d)=>{let h=o[d+1]||null,p=this.getTransformedHtml(c,h,n);this.replaceNode(c,p)}),i.body.innerHTML}getTransformedHtml(a,n,i){return i(a.nodeValue||"",n&&n.nodeValue||"",this.options)}},he=s=>new V.default.DOMParser().parseFromString(s,"text/html");m.parseFromString=he;var pe=s=>{let a=V.default.document.createTreeWalker(s,V.default.NodeFilter.SHOW_TEXT),n=a.nextNode(),i=[];for(;n;)n.nodeValue&&n.nodeValue.trim()!==""&&i.push(n),n=a.nextNode();return i};m.getTextNodes=pe;m.default=Q});var me=S((ur,Le)=>{var ee=0,ye=-3;function k(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function nt(s,a){this.source=s,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=a,this.destLen=0,this.ltree=new k,this.dtree=new k}var Se=new k,$e=new k,te=new Uint8Array(30),re=new Uint16Array(30),Ae=new Uint8Array(30),we=new Uint16Array(30),at=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ge=new k,T=new Uint8Array(320);function Te(s,a,n,i){var o,c;for(o=0;o<n;++o)s[o]=0;for(o=0;o<30-n;++o)s[o+n]=o/n|0;for(c=i,o=0;o<30;++o)a[o]=c,c+=1<<s[o]}function it(s,a){var n;for(n=0;n<7;++n)s.table[n]=0;for(s.table[7]=24,s.table[8]=152,s.table[9]=112,n=0;n<24;++n)s.trans[n]=256+n;for(n=0;n<144;++n)s.trans[24+n]=n;for(n=0;n<8;++n)s.trans[168+n]=280+n;for(n=0;n<112;++n)s.trans[176+n]=144+n;for(n=0;n<5;++n)a.table[n]=0;for(a.table[5]=32,n=0;n<32;++n)a.trans[n]=n}var xe=new Uint16Array(16);function J(s,a,n,i){var o,c;for(o=0;o<16;++o)s.table[o]=0;for(o=0;o<i;++o)s.table[a[n+o]]++;for(s.table[0]=0,c=0,o=0;o<16;++o)xe[o]=c,c+=s.table[o];for(o=0;o<i;++o)a[n+o]&&(s.trans[xe[a[n+o]]++]=o)}function ot(s){s.bitcount--||(s.tag=s.source[s.sourceIndex++],s.bitcount=7);var a=s.tag&1;return s.tag>>>=1,a}function L(s,a,n){if(!a)return n;for(;s.bitcount<24;)s.tag|=s.source[s.sourceIndex++]<<s.bitcount,s.bitcount+=8;var i=s.tag&65535>>>16-a;return s.tag>>>=a,s.bitcount-=a,i+n}function Y(s,a){for(;s.bitcount<24;)s.tag|=s.source[s.sourceIndex++]<<s.bitcount,s.bitcount+=8;var n=0,i=0,o=0,c=s.tag;do i=2*i+(c&1),c>>>=1,++o,n+=a.table[o],i-=a.table[o];while(i>=0);return s.tag=c,s.bitcount-=o,a.trans[n+i]}function ct(s,a,n){var i,o,c,d,h,p;for(i=L(s,5,257),o=L(s,5,1),c=L(s,4,4),d=0;d<19;++d)T[d]=0;for(d=0;d<c;++d){var g=L(s,3,0);T[at[d]]=g}for(J(ge,T,0,19),h=0;h<i+o;){var H=Y(s,ge);switch(H){case 16:var I=T[h-1];for(p=L(s,2,3);p;--p)T[h++]=I;break;case 17:for(p=L(s,3,3);p;--p)T[h++]=0;break;case 18:for(p=L(s,7,11);p;--p)T[h++]=0;break;default:T[h++]=H;break}}J(a,T,0,i),J(n,T,i,o)}function ve(s,a,n){for(;;){var i=Y(s,a);if(i===256)return ee;if(i<256)s.dest[s.destLen++]=i;else{var o,c,d,h;for(i-=257,o=L(s,te[i],re[i]),c=Y(s,n),d=s.destLen-L(s,Ae[c],we[c]),h=d;h<d+o;++h)s.dest[s.destLen++]=s.dest[h]}}}function ft(s){for(var a,n,i;s.bitcount>8;)s.sourceIndex--,s.bitcount-=8;if(a=s.source[s.sourceIndex+1],a=256*a+s.source[s.sourceIndex],n=s.source[s.sourceIndex+3],n=256*n+s.source[s.sourceIndex+2],a!==(~n&65535))return ye;for(s.sourceIndex+=4,i=a;i;--i)s.dest[s.destLen++]=s.source[s.sourceIndex++];return s.bitcount=0,ee}function lt(s,a){var n=new nt(s,a),i,o,c;do{switch(i=ot(n),o=L(n,2,0),o){case 0:c=ft(n);break;case 1:c=ve(n,Se,$e);break;case 2:ct(n,n.ltree,n.dtree),c=ve(n,n.ltree,n.dtree);break;default:c=ye}if(c!==ee)throw new Error("Data error")}while(!i);return n.destLen<n.dest.length?typeof n.dest.slice=="function"?n.dest.slice(0,n.destLen):n.dest.subarray(0,n.destLen):n.dest}it(Se,$e);Te(te,re,4,3);Te(Ae,we,2,1);te[28]=0;re[28]=258;Le.exports=lt});var Pe=S((dr,Ne)=>{var ut=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,_e=(s,a,n)=>{let i=s[a];s[a]=s[n],s[n]=i},dt=s=>{let a=s.length;for(let n=0;n<a;n+=4)_e(s,n,n+3),_e(s,n+1,n+2)},ht=s=>{ut&&dt(s)};Ne.exports={swap32LE:ht}});var Fe=S((hr,Ce)=>{var He=me(),{swap32LE:pt}=Pe(),ae=11,P=5,bt=ae-P,gt=65536>>ae,xt=1<<bt,vt=xt-1,E=2,yt=1<<P,se=yt-1,Be=65536>>P,St=1024>>P,$t=Be+St,At=$t,wt=32,Tt=At+wt,Lt=1<<E,ne=class{constructor(a){let n=typeof a.readUInt32BE=="function"&&typeof a.slice=="function";if(n||a instanceof Uint8Array){let i;if(n)this.highStart=a.readUInt32LE(0),this.errorValue=a.readUInt32LE(4),i=a.readUInt32LE(8),a=a.slice(12);else{let o=new DataView(a.buffer);this.highStart=o.getUint32(0,!0),this.errorValue=o.getUint32(4,!0),i=o.getUint32(8,!0),a=a.subarray(12)}a=He(a,new Uint8Array(i)),a=He(a,new Uint8Array(i)),pt(a),this.data=new Uint32Array(a.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=a)}get(a){let n;return a<0||a>1114111?this.errorValue:a<55296||a>56319&&a<=65535?(n=(this.data[a>>P]<<E)+(a&se),this.data[n]):a<=65535?(n=(this.data[Be+(a-55296>>P)]<<E)+(a&se),this.data[n]):a<this.highStart?(n=this.data[Tt-gt+(a>>ae)],n=this.data[n+(a>>P&vt)],n=(n<<E)+(a&se),this.data[n]):this.data[this.data.length-Lt]}};Ce.exports=ne});var Xe=S(R=>{var mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(s){"use strict";var a=typeof Uint8Array!="undefined"?Uint8Array:Array,n=43,i=47,o=48,c=97,d=65,h=45,p=95;function g(u){var l=u.charCodeAt(0);if(l===n||l===h)return 62;if(l===i||l===p)return 63;if(l<o)return-1;if(l<o+10)return l-o+26+26;if(l<d+26)return l-d;if(l<c+26)return l-c+26}function H(u){var l,W,A,b,_,y;if(u.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var j=u.length;_=u.charAt(j-2)==="="?2:u.charAt(j-1)==="="?1:0,y=new a(u.length*3/4-_),A=_>0?u.length-4:u.length;var N=0;function B(tt){y[N++]=tt}for(l=0,W=0;l<A;l+=4,W+=3)b=g(u.charAt(l))<<18|g(u.charAt(l+1))<<12|g(u.charAt(l+2))<<6|g(u.charAt(l+3)),B((b&16711680)>>16),B((b&65280)>>8),B(b&255);return _===2?(b=g(u.charAt(l))<<2|g(u.charAt(l+1))>>4,B(b&255)):_===1&&(b=g(u.charAt(l))<<10|g(u.charAt(l+1))<<4|g(u.charAt(l+2))>>2,B(b>>8&255),B(b&255)),y}function I(u){var l,W=u.length%3,A="",b,_;function y(N){return mt.charAt(N)}function j(N){return y(N>>18&63)+y(N>>12&63)+y(N>>6&63)+y(N&63)}for(l=0,_=u.length-W;l<_;l+=3)b=(u[l]<<16)+(u[l+1]<<8)+u[l+2],A+=j(b);switch(W){case 1:b=u[u.length-1],A+=y(b>>2),A+=y(b<<4&63),A+="==";break;case 2:b=(u[u.length-2]<<8)+u[u.length-1],A+=y(b>>10),A+=y(b>>4&63),A+=y(b<<2&63),A+="=";break}return A}s.toByteArray=H,s.fromByteArray=I})(typeof R=="undefined"?R.base64js={}:R)});var Ee=S((br,Ve)=>{var _t=Fe(),Nt=Xe();function De(s){return s&&s.__esModule?s.default:s}var Pt=5,Oe=12,Ht=13,Bt=16,Ct=17,Ft=22,Ie=28,We=31,Xt=33,q=34,Ot=35,ie=36,oe=37,ze=38,It=39,Wt=40,U=41,kt=42,e=0,t=1,f=2,je=3,r=4,Ut=[[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,je,r,r,r,r,r,r,r,r,r,r,r],[e,r,r,t,t,r,r,r,r,t,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,r,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[r,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,t,e,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,e,e,t,t,t,t,t,t,t,e,e,r,f,r,t,t,t,t,t,e,t,t,t,e],[t,r,r,t,t,t,r,r,r,e,e,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,e,t,r,r,r,e,e,t,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,e,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,r,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,r,e,e,e,e,e,e,e,e,e,e,e,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,r,f,r,t,t,t,t,t,t,t,t,t,t],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,t,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,t,t,t,t,e,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,t,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,t,e,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,e,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,t,e,e,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,t,t,e],[e,r,r,t,t,t,r,r,r,e,t,e,e,e,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[t,r,r,t,t,t,r,r,r,t,t,t,t,t,e,t,t,t,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e],[e,r,r,t,t,e,r,r,r,e,e,e,e,e,e,e,e,e,e,e,r,f,r,e,e,e,e,e,e,e,e,t,e]],Dt=De(Nt).toByteArray("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"),zt=new(De(_t))(Dt),ke=function(s){switch(s){case Xt:return Oe;case It:case Wt:case kt:return Oe;case Ot:return Pt;default:return s}},Ue=function(s){switch(s){case oe:case ze:return q;case U:return Ft;default:return s}},D=class{constructor(a,n=!1){this.position=a,this.required=n}},ce=class{nextCodePoint(){let a=this.string.charCodeAt(this.pos++),n=this.string.charCodeAt(this.pos);return 55296<=a&&a<=56319&&56320<=n&&n<=57343?(this.pos++,(a-55296)*1024+(n-56320)+65536):a}nextCharClass(){return ke(zt.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case U:return!1;case q:case oe:case ze:return this.curClass=q,!1;case ie:return this.curClass=ie,!1}return null}getPairTableBreak(a){let n=!1;switch(Ut[this.curClass][this.nextClass]){case e:n=!0;break;case t:n=a===U;break;case f:if(n=a===U,!n)return n=!1,n;break;case je:if(a!==U)return n;break;case r:break}return this.LB8a&&(n=!1),this.LB21a&&(this.curClass===Bt||this.curClass===Ct)?(n=!1,this.LB21a=!1):this.LB21a=this.curClass===Ht,this.curClass===Ie?(this.LB30a++,this.LB30a==2&&this.nextClass===Ie&&(n=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,n}nextBreak(){if(this.curClass==null){let a=this.nextCharClass();this.curClass=Ue(a),this.nextClass=a,this.LB8a=a===We,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;let a=this.nextClass;if(this.nextClass=this.nextCharClass(),this.curClass===q||this.curClass===ie&&this.nextClass!==oe)return this.curClass=Ue(ke(this.nextClass)),new D(this.lastPos,!0);let n=this.getSimpleBreak();if(n===null&&(n=this.getPairTableBreak(a)),this.LB8a=this.nextClass===We,n)return new D(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new D(this.string.length)):null}constructor(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};Ve.exports=ce});var Re=S(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0});x.noBreakRulesRegex=x.middleDotsRegex=x.closingsRegex=x.openingsRegex=x.japaneseRegex=x.latinRegex=void 0;x.latinRegex=/[A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]+/;x.japaneseRegex=/[\p{scx=Hiragana}\p{scx=Katakana}|ヲ-゚\p{scx=Han}]+/u;x.openingsRegex=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/;x.closingsRegex=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’|、|,|。|./;x.middleDotsRegex=/・|:|;/;x.noBreakRulesRegex=new RegExp("[\u2014\u2025\u2026\uFF3F\u2500-\u257F]+")});var fe=S(w=>{"use strict";var jt=w&&w.__createBinding||(Object.create?function(s,a,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(a,n);(!o||("get"in o?!a.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return a[n]}}),Object.defineProperty(s,i,o)}:function(s,a,n,i){i===void 0&&(i=n),s[i]=a[n]}),Vt=w&&w.__setModuleDefault||(Object.create?function(s,a){Object.defineProperty(s,"default",{enumerable:!0,value:a})}:function(s,a){s.default=a}),Et=w&&w.__importStar||function(s){if(s&&s.__esModule)return s;var a={};if(s!=null)for(var n in s)n!=="default"&&Object.prototype.hasOwnProperty.call(s,n)&&jt(a,s,n);return Vt(a,s),a};Object.defineProperty(w,"__esModule",{value:!0});w.LanguageClass=w.CharClass=void 0;var F=Et(Re()),Rt={shouldNotBreak:s=>F.noBreakRulesRegex.test(s),shouldAddThinSpace:(s,a)=>{let n={openings:{regex:F.openingsRegex,hasSpaceBefore:!0,hasSpaceAfter:!1},closings:{regex:F.closingsRegex,hasSpaceBefore:!1,hasSpaceAfter:!0},middleDots:{regex:F.middleDotsRegex,hasSpaceBefore:!0,hasSpaceAfter:!0}};for(let{regex:i,hasSpaceBefore:o,hasSpaceAfter:c}of Object.values(n))if(o&&i.test(a)&&!i.test(s)||c&&i.test(s)&&!i.test(a))return!0;return!1}};w.CharClass=Rt;var C={isLatin:s=>F.latinRegex.test(s),isJapanese:s=>F.japaneseRegex.test(s),isDifferentLanguageClass:(s,a)=>C.isJapanese(s)&&C.isLatin(a)||C.isLatin(s)&&C.isJapanese(a),shouldAddThinSpace:(s,a)=>C.isDifferentLanguageClass(s,a)};w.LanguageClass=C});var le=S(v=>{"use strict";Object.defineProperty(v,"__esModule",{value:!0});v.applyNoBreakStyle=v.applyLatinStyle=v.applyWrapperStyle=v.applyKerning=v.thinSpace=v.wbr=void 0;var X={preventSelectStyle:"user-select:none;",hiddenFromReader:'aria-hidden="true"',noIndex:'data-nosnippet=""'},qt="<wbr>";v.wbr=qt;var Mt=(s,a)=>{let n="\u2009",i=a+"-thin-space",o=`font-size: ${s}; ${X.preventSelectStyle}`;return`<span class="${i}" style="${o}" ${X.hiddenFromReader} ${X.noIndex}>${n}</span>`};v.thinSpace=Mt;var Zt=(s,a,n)=>{let i=a/1e3/2+"em",o=n+"-kerning",c=`margin: ${i}; ${X.preventSelectStyle}`;return`${s}<span class="${o}" style="${c}" ${X.hiddenFromReader} ${X.noIndex}></span>`};v.applyKerning=Zt;var Kt=(s,a,n)=>`<span class="${a}" style="${n?"word-break: keep-all; overflow-wrap: anywhere;":""}">${s}</span>`;v.applyWrapperStyle=Kt;var Gt=(s,a)=>`<span class="${a+"-latin"}">${s}</span>`;v.applyLatinStyle=Gt;var Qt=(s,a)=>`<span class="${a+"-no-breaks"}" style="letter-spacing: 0">${s}</span>`;v.applyNoBreakStyle=Qt});var Qe=S($=>{"use strict";var Jt=$&&$.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty($,"__esModule",{value:!0});$.shouldAddThinSpace=$.shouldAddWbr=$.addSeparatorsToSegment=$.generateSegments=void 0;var Yt=Jt(Ee()),qe=fe(),Me=le(),er=(s,a,n)=>{let i=ue(s),o=ue(a);return i.reduce((d,h,p,g)=>{let H=h,I=g[p+1]||o[0];return d+Ze(H,I,n)},"")},ue=s=>{let a=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(a.segment(s),({segment:n})=>n)};$.generateSegments=ue;var Ze=(s,a="",n)=>{if(!a)return s;let i=n.useWordBreak&&Ke(s,a),o=n.addThinSpaces&&Ge(s,a);return s+(o?(0,Me.thinSpace)(n.thinSpaceWidth,n.classNamePrefix):"")+(i?Me.wbr:"")};$.addSeparatorsToSegment=Ze;var Ke=(s,a)=>{let n=s.slice(-1)+a.slice(0,1),o=new Yt.default(n).nextBreak();return o&&o.position===1};$.shouldAddWbr=Ke;var Ge=(s,a)=>qe.LanguageClass.shouldAddThinSpace(s,a)||qe.CharClass.shouldAddThinSpace(s,a);$.shouldAddThinSpace=Ge;$.default=er});var Ye=S(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.applyStyleToSegment=O.applyStyleToText=void 0;var Je=fe(),M=le(),tr=(s,a,n)=>s===" "?s:(0,M.applyWrapperStyle)(s,n.classNamePrefix,n.useWordBreak);O.applyStyleToText=tr;var rr=(s,a,n)=>{if(s===" ")return s;let i=sr(s,a,n);return n.wrapLatin&&Je.LanguageClass.isLatin(s)?(0,M.applyLatinStyle)(i,n.classNamePrefix):n.noSpaceBetweenNoBreaks&&Je.CharClass.shouldNotBreak(s)?(0,M.applyNoBreakStyle)(i,n.classNamePrefix):i};O.applyStyleToSegment=rr;var sr=(s,a,n)=>{let i=[...s];return i.map((c,d)=>{let h=i[d+1]||a[0]||"",p=n.kerningRules.find(g=>g.between[0]===c&&g.between[1]===h);if(p){let g=typeof p.value=="number"?p.value:parseInt(p.value,10);return(0,M.applyKerning)(c,g,n.classNamePrefix)}return c}).join("")}});var or=S(z=>{var de=z&&z.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(z,"__esModule",{value:!0});var nr=de(be()),ar=de(Qe()),et=Ye(),ir=de(G()),Z=class s extends nr.default{constructor(a={}){let n=[et.applyStyleToText,ar.default,et.applyStyleToSegment],i=s.validateOptions(a);super(n,i),this.isIntlSegmenterSupported=typeof Intl.Segmenter!="undefined",this.isIntlSegmenterSupported||console.warn(`
2
2
  Intl.Segmenter is not supported in this environment.
3
3
  The original HTML string will be returned.
4
4
  For more information, see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter
5
- `)}static validateOptions(a){return a.kerningRules&&(a.kerningRules=a.kerningRules.filter(s.isValidKerningRule)),Object.assign(Object.assign({},s.defaultOptions),a)}static isValidKerningRule(a){return a.between[0].length!==1||a.between[1].length!==1?(console.warn(`Kerning rule between '${a.between[0]}' and '${a.between[1]}' must be single characters.`),!1):!0}render(a){return!this.isIntlSegmenterSupported||!a?a:this.processHtmlWithFunctions(a)}renderToElements(a){!this.isIntlSegmenterSupported||!a||(Array.isArray(a)||(a=[a]),a.forEach(n=>{let i=this.render(n.innerHTML);n.innerHTML=i}))}renderToSelector(a){if(!this.isIntlSegmenterSupported||!a)return;let n=ir.default.document.querySelectorAll(a);this.renderToElements(Array.from(n))}};Z.defaultOptions={classNamePrefix:"typeset",useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,addThinSpaces:!0,thinSpaceWidth:"50%",kerningRules:[]};z.default=Z});or();})();
5
+ `)}static validateOptions(a){return a.kerningRules&&(a.kerningRules=a.kerningRules.filter(s.isValidKerningRule)),Object.assign(Object.assign({},s.defaultOptions),a)}static isValidKerningRule(a){return a.between[0].length!==1||a.between[1].length!==1?(console.warn(`Kerning rule between '${a.between[0]}' and '${a.between[1]}' must be single characters.`),!1):!0}render(a){return!this.isIntlSegmenterSupported||!a?a:this.processHtmlWithFunctions(a)}renderToElements(a){!this.isIntlSegmenterSupported||!a||(Array.isArray(a)||(a=[a]),a.forEach(n=>{let i=this.render(n.innerHTML);n.innerHTML=i}))}renderToSelector(a){if(!this.isIntlSegmenterSupported||!a)return;let n=ir.default.document.querySelectorAll(a);this.renderToElements(Array.from(n))}};Z.defaultOptions={classNamePrefix:"typeset",useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,addThinSpaces:!0,thinSpaceWidth:"50%",kerningRules:[]};z.default=Z});return or();})();
6
6
  //# sourceMappingURL=palt-typesetting.min.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/win-browser.ts", "../src/html-processor.ts", "../node_modules/tiny-inflate/index.js", "../node_modules/unicode-trie/swap.js", "../node_modules/unicode-trie/index.js", "../node_modules/base64-js/lib/b64.js", "../node_modules/linebreak/dist/src/linebreaker.js", "../node_modules/linebreak/dist/node_modules/@parcel/node-resolver-core/lib/_empty.js", "../node_modules/linebreak/dist/src/classes.js", "../node_modules/linebreak/dist/src/pairs.js", "../src/utils-regex.ts", "../src/utils-text-classes.ts", "../src/utils-tags.ts", "../src/insert-separators.ts", "../src/apply-style.ts", "../src/index.ts"],
4
4
  "sourcesContent": ["/**\n * \u30D6\u30E9\u30A6\u30B6\u74B0\u5883\u3067\u4F7F\u7528\u3055\u308C\u308B\u3001\u30B0\u30ED\u30FC\u30D0\u30EB\u306Awindow\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002\n *\n * @return \u30D6\u30E9\u30A6\u30B6\u306E\u30B0\u30ED\u30FC\u30D0\u30EBWindow\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3002\n */\nconst win = window\n\nexport default win\n", "import win from './win'\nimport type { TransformFunction, TypesettingOptions } from './types'\n\n/**\n * HTML\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5909\u63DB\u3068\u51E6\u7406\u3092\u884C\u3046\u30AF\u30E9\u30B9\u3067\u3059\u3002\n * \u3053\u306E\u30AF\u30E9\u30B9\u306F\u3001HTML\u6587\u5B57\u5217\u3092\u89E3\u6790\u3057\u3001\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3055\u308C\u305F\u5909\u63DB\u95A2\u6570\u3092\u9069\u7528\u3057\u3066\u3001\n * \u5909\u63DB\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n */\nclass HTMLProcessor {\n private transformFunctions: TransformFunction[]\n private options: TypesettingOptions\n\n constructor(transformFunctions: TransformFunction[], options: TypesettingOptions) {\n this.transformFunctions = transformFunctions\n this.options = options\n }\n\n /**\n * \u4E0E\u3048\u3089\u308C\u305FHTML\u6587\u5B57\u5217\u306B\u5BFE\u3057\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u5909\u63DB\u95A2\u6570\u306E\u914D\u5217\u3092\u9806\u756A\u306B\u9069\u7528\u3057\u3001\n * \u5909\u63DB\u3055\u308C\u305FHTML\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n *\n * @param srcHtml - \u5909\u63DB\u3092\u9069\u7528\u3059\u308B\u5143\u306EHTML\u6587\u5B57\u5217\u3002\n * @param functions - \u9806\u756A\u306B\u9069\u7528\u3059\u308B\u5909\u63DB\u95A2\u6570\u306E\u914D\u5217\u3002\n * @return \u5909\u63DB\u5F8C\u306EHTML\u6587\u5B57\u5217\u3002\n */\n processHtmlWithFunctions(srcHtml: string): string {\n if (srcHtml === '') {\n return srcHtml\n }\n\n return this.transformFunctions.reduce(\n (currentHtml, transformFunction) => this.processHtml(currentHtml, transformFunction),\n srcHtml\n )\n }\n\n /**\n * HTML\u6587\u5B57\u5217\u3092\u89E3\u6790\u3057\u3001\u7279\u5B9A\u306E\u5909\u63DB\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u305D\u306E\u5185\u5BB9\u3092\u5909\u63DB\u3057\u3001\n * \u5909\u63DB\u3055\u308C\u305FHTML\u3092\u6587\u5B57\u5217\u3068\u3057\u3066\u8FD4\u3057\u307E\u3059\u3002\n *\n * @param html - \u89E3\u6790\u304A\u3088\u3073\u5909\u63DB\u3059\u308BHTML\u6587\u5B57\u5217\u3002\n * @param transformFunction - \u5404\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\u306B\u9069\u7528\u3055\u308C\u308B\u5909\u63DB\u95A2\u6570\u3002\n * @return \u5909\u63DB\u5F8C\u306EHTML\u5185\u5BB9\u3092\u542B\u3080\u6587\u5B57\u5217\u3002\u30C6\u30AD\u30B9\u30C8\u304C\u7A7A\u306E\u5834\u5408\u306F\u3001\u305D\u306E\u307E\u307E\u8FD4\u3055\u308C\u307E\u3059\u3002\n */\n private processHtml(html: string, transformFunction: TransformFunction): string {\n if (html === '') {\n return html\n }\n\n const doc = parseFromString(html)\n const textNodes = getTextNodes(doc.body)\n\n textNodes.forEach((currentNode, index) => {\n const nextNode = textNodes[index + 1] || null\n const transformedHtml = this.getTransformedHtml(currentNode, nextNode, transformFunction)\n this.replaceNode(currentNode, transformedHtml)\n })\n\n return doc.body.innerHTML\n }\n\n /**\n * \u4E0E\u3048\u3089\u308C\u305F\u30CE\u30FC\u30C9\u3068\u3001\u305D\u306E\u6B21\u306E\u30CE\u30FC\u30C9\u306B\u57FA\u3065\u3044\u3066\u5909\u63DB\u3055\u308C\u305FHTML\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n *\n * @param currentNode - \u73FE\u5728\u306E\u30CE\u30FC\u30C9\u3002\n * @param nextNode - \u6B21\u306E\u30CE\u30FC\u30C9\u3001\u307E\u305F\u306F\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u306F null\u3002\n * @param transformFunction - \u30CE\u30FC\u30C9\u306E\u5024\u3092\u5909\u63DB\u3059\u308B\u305F\u3081\u306E\u95A2\u6570\u3002\n * @return \u5909\u63DB\u3055\u308C\u305FHTML\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u542B\u3080\u6587\u5B57\u5217\u3002\n */\n private getTransformedHtml(currentNode: Node, nextNode: Node | null, transformFunction: TransformFunction): string {\n const transformedHtml = transformFunction(\n currentNode.nodeValue || '',\n nextNode ? nextNode.nodeValue || '' : '',\n this.options\n )\n return transformedHtml\n }\n\n /**\n * \u6307\u5B9A\u3055\u308C\u305F\u30CE\u30FC\u30C9\u3092\u3001\u65B0\u3057\u3044HTML\u30B3\u30F3\u30C6\u30F3\u30C4\u3067\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002\n *\n * @param node - \u7F6E\u304D\u63DB\u3048\u308B\u30CE\u30FC\u30C9\u3002\n * @param transformedHtml - \u30CE\u30FC\u30C9\u306B\u633F\u5165\u3055\u308C\u308B\u5909\u63DB\u5F8C\u306EHTML\u30B3\u30F3\u30C6\u30F3\u30C4\u3002\n */\n private replaceNode = (node: Node, transformedHtml: string): void => {\n const range = win.document.createRange()\n range.selectNode(node)\n const fragment = range.createContextualFragment(transformedHtml)\n\n if (node.parentNode) {\n node.parentNode.insertBefore(fragment, node)\n node.parentNode.removeChild(node)\n }\n }\n}\n\n/**\n * \u6587\u5B57\u5217\u304B\u3089HTML\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u89E3\u6790\u3057\u307E\u3059\u3002\n *\n * @param html - \u89E3\u6790\u3059\u308BHTML\u6587\u5B57\u5217\u3002\n * @return \u89E3\u6790\u3055\u308C\u305FHTML\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3002\n */\nconst parseFromString = (html: string) => {\n return new win.DOMParser().parseFromString(html, 'text/html')\n}\n\n/**\n * \u6307\u5B9A\u3055\u308C\u305FHTMLElement\u5185\u306E\u3059\u3079\u3066\u306E\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002\n *\n * @param element - \u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\u3092\u53D6\u5F97\u3059\u308B\u8981\u7D20\u3002\n * @return \u53D6\u5F97\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\u306E\u914D\u5217\u3002\n */\nconst getTextNodes = (element: HTMLElement): Node[] => {\n const walk = win.document.createTreeWalker(element, win.NodeFilter.SHOW_TEXT)\n let textNode = walk.nextNode() as Node | null\n const textNodes: Node[] = []\n\n while (textNode) {\n if (textNode.nodeValue && textNode.nodeValue.trim() !== '') {\n textNodes.push(textNode)\n }\n textNode = walk.nextNode()\n }\n\n return textNodes\n}\n\nexport default HTMLProcessor\nexport { parseFromString, getTextNodes }\n", "var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n", "const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n", "const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;", "var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n;(function (exports) {\n\t'use strict';\n\n var Arr = (typeof Uint8Array !== 'undefined')\n ? Uint8Array\n : Array\n\n\tvar PLUS = '+'.charCodeAt(0)\n\tvar SLASH = '/'.charCodeAt(0)\n\tvar NUMBER = '0'.charCodeAt(0)\n\tvar LOWER = 'a'.charCodeAt(0)\n\tvar UPPER = 'A'.charCodeAt(0)\n\tvar PLUS_URL_SAFE = '-'.charCodeAt(0)\n\tvar SLASH_URL_SAFE = '_'.charCodeAt(0)\n\n\tfunction decode (elt) {\n\t\tvar code = elt.charCodeAt(0)\n\t\tif (code === PLUS ||\n\t\t code === PLUS_URL_SAFE)\n\t\t\treturn 62 // '+'\n\t\tif (code === SLASH ||\n\t\t code === SLASH_URL_SAFE)\n\t\t\treturn 63 // '/'\n\t\tif (code < NUMBER)\n\t\t\treturn -1 //no match\n\t\tif (code < NUMBER + 10)\n\t\t\treturn code - NUMBER + 26 + 26\n\t\tif (code < UPPER + 26)\n\t\t\treturn code - UPPER\n\t\tif (code < LOWER + 26)\n\t\t\treturn code - LOWER + 26\n\t}\n\n\tfunction b64ToByteArray (b64) {\n\t\tvar i, j, l, tmp, placeHolders, arr\n\n\t\tif (b64.length % 4 > 0) {\n\t\t\tthrow new Error('Invalid string. Length must be a multiple of 4')\n\t\t}\n\n\t\t// the number of equal signs (place holders)\n\t\t// if there are two placeholders, than the two characters before it\n\t\t// represent one byte\n\t\t// if there is only one, then the three characters before it represent 2 bytes\n\t\t// this is just a cheap hack to not do indexOf twice\n\t\tvar len = b64.length\n\t\tplaceHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0\n\n\t\t// base64 is 4/3 + up to two characters of the original data\n\t\tarr = new Arr(b64.length * 3 / 4 - placeHolders)\n\n\t\t// if there are placeholders, only get up to the last complete 4 chars\n\t\tl = placeHolders > 0 ? b64.length - 4 : b64.length\n\n\t\tvar L = 0\n\n\t\tfunction push (v) {\n\t\t\tarr[L++] = v\n\t\t}\n\n\t\tfor (i = 0, j = 0; i < l; i += 4, j += 3) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))\n\t\t\tpush((tmp & 0xFF0000) >> 16)\n\t\t\tpush((tmp & 0xFF00) >> 8)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\tif (placeHolders === 2) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)\n\t\t\tpush(tmp & 0xFF)\n\t\t} else if (placeHolders === 1) {\n\t\t\ttmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)\n\t\t\tpush((tmp >> 8) & 0xFF)\n\t\t\tpush(tmp & 0xFF)\n\t\t}\n\n\t\treturn arr\n\t}\n\n\tfunction uint8ToBase64 (uint8) {\n\t\tvar i,\n\t\t\textraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes\n\t\t\toutput = \"\",\n\t\t\ttemp, length\n\n\t\tfunction encode (num) {\n\t\t\treturn lookup.charAt(num)\n\t\t}\n\n\t\tfunction tripletToBase64 (num) {\n\t\t\treturn encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)\n\t\t}\n\n\t\t// go through the array every three bytes, we'll deal with trailing stuff later\n\t\tfor (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {\n\t\t\ttemp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n\t\t\toutput += tripletToBase64(temp)\n\t\t}\n\n\t\t// pad the end with zeros, but make sure to not forget the extra bytes\n\t\tswitch (extraBytes) {\n\t\t\tcase 1:\n\t\t\t\ttemp = uint8[uint8.length - 1]\n\t\t\t\toutput += encode(temp >> 2)\n\t\t\t\toutput += encode((temp << 4) & 0x3F)\n\t\t\t\toutput += '=='\n\t\t\t\tbreak\n\t\t\tcase 2:\n\t\t\t\ttemp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])\n\t\t\t\toutput += encode(temp >> 10)\n\t\t\t\toutput += encode((temp >> 4) & 0x3F)\n\t\t\t\toutput += encode((temp << 2) & 0x3F)\n\t\t\t\toutput += '='\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn output\n\t}\n\n\texports.toByteArray = b64ToByteArray\n\texports.fromByteArray = uint8ToBase64\n}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))\n", "import UnicodeTrie from 'unicode-trie';\nimport fs from 'fs';\nimport base64 from 'base64-js';\nimport { BK, CR, LF, NL, SG, WJ, SP, ZWJ, BA, HY, NS, AI, AL, CJ, HL, RI, SA, XX } from './classes';\nimport { DI_BRK, IN_BRK, CI_BRK, CP_BRK, PR_BRK, pairTable } from './pairs';\n\nconst data = base64.toByteArray(fs.readFileSync(__dirname + '/classes.trie', 'base64'));\nconst classTrie = new UnicodeTrie(data);\n\nconst mapClass = function (c) {\n switch (c) {\n case AI:\n return AL;\n\n case SA:\n case SG:\n case XX:\n return AL;\n\n case CJ:\n return NS;\n\n default:\n return c;\n }\n};\n\nconst mapFirst = function (c) {\n switch (c) {\n case LF:\n case NL:\n return BK;\n\n case SP:\n return WJ;\n\n default:\n return c;\n }\n};\n\nclass Break {\n constructor(position, required = false) {\n this.position = position;\n this.required = required;\n }\n}\n\nclass LineBreaker {\n constructor(string) {\n this.string = string;\n this.pos = 0;\n this.lastPos = 0;\n this.curClass = null;\n this.nextClass = null;\n this.LB8a = false;\n this.LB21a = false;\n this.LB30a = 0;\n }\n\n nextCodePoint() {\n const code = this.string.charCodeAt(this.pos++);\n const next = this.string.charCodeAt(this.pos);\n\n // If a surrogate pair\n if ((0xd800 <= code && code <= 0xdbff) && (0xdc00 <= next && next <= 0xdfff)) {\n this.pos++;\n return ((code - 0xd800) * 0x400) + (next - 0xdc00) + 0x10000;\n }\n\n return code;\n }\n\n nextCharClass() {\n return mapClass(classTrie.get(this.nextCodePoint()));\n }\n\n getSimpleBreak() {\n // handle classes not handled by the pair table\n switch (this.nextClass) {\n case SP:\n return false;\n\n case BK:\n case LF:\n case NL:\n this.curClass = BK;\n return false;\n\n case CR:\n this.curClass = CR;\n return false;\n }\n\n return null;\n }\n\n getPairTableBreak(lastClass) {\n // if not handled already, use the pair table\n let shouldBreak = false;\n switch (pairTable[this.curClass][this.nextClass]) {\n case DI_BRK: // Direct break\n shouldBreak = true;\n break;\n\n case IN_BRK: // possible indirect break\n shouldBreak = lastClass === SP;\n break;\n\n case CI_BRK:\n shouldBreak = lastClass === SP;\n if (!shouldBreak) {\n shouldBreak = false;\n return shouldBreak;\n }\n break;\n\n case CP_BRK: // prohibited for combining marks\n if (lastClass !== SP) {\n return shouldBreak;\n }\n break;\n\n case PR_BRK:\n break;\n }\n\n if (this.LB8a) {\n shouldBreak = false;\n }\n\n // Rule LB21a\n if (this.LB21a && (this.curClass === HY || this.curClass === BA)) {\n shouldBreak = false;\n this.LB21a = false;\n } else {\n this.LB21a = (this.curClass === HL);\n }\n\n // Rule LB30a\n if (this.curClass === RI) {\n this.LB30a++;\n if (this.LB30a == 2 && (this.nextClass === RI)) {\n shouldBreak = true;\n this.LB30a = 0;\n }\n } else {\n this.LB30a = 0;\n }\n\n this.curClass = this.nextClass;\n\n return shouldBreak;\n }\n\n nextBreak() {\n // get the first char if we're at the beginning of the string\n if (this.curClass == null) {\n let firstClass = this.nextCharClass();\n this.curClass = mapFirst(firstClass);\n this.nextClass = firstClass;\n this.LB8a = (firstClass === ZWJ);\n this.LB30a = 0;\n }\n\n while (this.pos < this.string.length) {\n this.lastPos = this.pos;\n const lastClass = this.nextClass;\n this.nextClass = this.nextCharClass();\n\n // explicit newline\n if ((this.curClass === BK) || ((this.curClass === CR) && (this.nextClass !== LF))) {\n this.curClass = mapFirst(mapClass(this.nextClass));\n return new Break(this.lastPos, true);\n }\n\n let shouldBreak = this.getSimpleBreak();\n\n if (shouldBreak === null) {\n shouldBreak = this.getPairTableBreak(lastClass);\n }\n\n // Rule LB8a\n this.LB8a = (this.nextClass === ZWJ);\n\n if (shouldBreak) {\n return new Break(this.lastPos);\n }\n }\n\n if (this.lastPos < this.string.length) {\n this.lastPos = this.string.length;\n return new Break(this.string.length);\n }\n\n return null;\n }\n}\n\nmodule.exports = LineBreaker;\n", "\"use strict\";", "// The following break classes are handled by the pair table\nexport const OP = 0; // Opening punctuation\nexport const CL = 1; // Closing punctuation\nexport const CP = 2; // Closing parenthesis\nexport const QU = 3; // Ambiguous quotation\nexport const GL = 4; // Glue\nexport const NS = 5; // Non-starters\nexport const EX = 6; // Exclamation/Interrogation\nexport const SY = 7; // Symbols allowing break after\nexport const IS = 8; // Infix separator\nexport const PR = 9; // Prefix\nexport const PO = 10; // Postfix\nexport const NU = 11; // Numeric\nexport const AL = 12; // Alphabetic\nexport const HL = 13; // Hebrew Letter\nexport const ID = 14; // Ideographic\nexport const IN = 15; // Inseparable characters\nexport const HY = 16; // Hyphen\nexport const BA = 17; // Break after\nexport const BB = 18; // Break before\nexport const B2 = 19; // Break on either side (but not pair)\nexport const ZW = 20; // Zero-width space\nexport const CM = 21; // Combining marks\nexport const WJ = 22; // Word joiner\nexport const H2 = 23; // Hangul LV\nexport const H3 = 24; // Hangul LVT\nexport const JL = 25; // Hangul L Jamo\nexport const JV = 26; // Hangul V Jamo\nexport const JT = 27; // Hangul T Jamo\nexport const RI = 28; // Regional Indicator\nexport const EB = 29; // Emoji Base\nexport const EM = 30; // Emoji Modifier\nexport const ZWJ = 31; // Zero Width Joiner\nexport const CB = 32; // Contingent break\n\n// The following break classes are not handled by the pair table\nexport const AI = 33; // Ambiguous (Alphabetic or Ideograph)\nexport const BK = 34; // Break (mandatory)\nexport const CJ = 35; // Conditional Japanese Starter\nexport const CR = 36; // Carriage return\nexport const LF = 37; // Line feed\nexport const NL = 38; // Next line\nexport const SA = 39; // South-East Asian\nexport const SG = 40; // Surrogates\nexport const SP = 41; // Space\nexport const XX = 42; // Unknown\n", "export const DI_BRK = 0; // Direct break opportunity\nexport const IN_BRK = 1; // Indirect break opportunity\nexport const CI_BRK = 2; // Indirect break opportunity for combining marks\nexport const CP_BRK = 3; // Prohibited break for combining marks\nexport const PR_BRK = 4; // Prohibited break\n\n// Based on example pair table from https://www.unicode.org/reports/tr14/tr14-37.html#Table2\n// - ZWJ special processing for LB8a of Revision 41\n// - CB manually added as per Rule LB20\n// - CL, CP, NS, SY, IS, PR, PO, HY, BA, B2 and RI manually adjusted as per LB22 of Revision 45\nexport const pairTable = [\n //OP , CL , CP , QU , GL , NS , EX , SY , IS , PR , PO , NU , AL , HL , ID , IN , HY , BA , BB , B2 , ZW , CM , WJ , H2 , H3 , JL , JV , JT , RI , EB , EM , ZWJ , CB\n [PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, CP_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK], // OP\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CP\n [PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // QU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // GL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NS\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EX\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // SY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IS\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // PR\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // PO\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // NU\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // AL\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ID\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // IN\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // HY\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, DI_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // BA\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK], // BB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // B2\n [DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK], // ZW\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // CM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK], // WJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H2\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // H3\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JL\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JV\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // JT\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // RI\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, DI_BRK], // EB\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, IN_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // EM\n [IN_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, PR_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, IN_BRK, IN_BRK, IN_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK], // ZWJ\n [DI_BRK, PR_BRK, PR_BRK, IN_BRK, IN_BRK, DI_BRK, PR_BRK, PR_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, PR_BRK, CI_BRK, PR_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, DI_BRK, IN_BRK, DI_BRK] // CB\n];", "/**\n * \u30E9\u30C6\u30F3\u6587\u5B57\u3001\u6570\u5B57\u3001\u57FA\u672C\u7684\u306A\u8A18\u53F7\u985E\n */\nexport const latinRegex = /[A-Za-z0-9!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]+/\n\n/**\n * \u65E5\u672C\u8A9E\n */\nexport const japaneseRegex = /[\\p{scx=Hiragana}\\p{scx=Katakana}|\uFF66-\uFF9F\\p{scx=Han}]+/u\n\n/**\n * \u521D\u3081\u62EC\u5F27\u985E\n */\nexport const openingsRegex = /\uFF08|\uFF3B|\uFF5B|\u3014|\u3008|\u300A|\u300C|\u300E|\u3010|\u3018|\u3016|\u201C|\u2018/\n\n/**\n * \u7D42\u308F\u308A\u62EC\u5F27\u985E\u3001\u53E5\u70B9\u985E\u3001\u8AAD\u70B9\u985E\n */\nexport const closingsRegex = /\uFF09|\uFF3D|\uFF5D|\u3015|\u3009|\u300B|\u300D|\u300F|\u3011|\u3019|\u3017|\u201D|\u2019|\u3001|\uFF0C|\u3002|\uFF0E/\n\n/**\n * \u4E2D\u70B9\u985E\n */\nexport const middleDotsRegex = /\u30FB|\uFF1A|\uFF1B/\n\n/**\n * \u5206\u96E2\u7981\u5247\u6587\u5B57\n */\nexport const noBreakRulesRegex = new RegExp(\n `[${'\u2014\u2025\u2026\uFF3F'}${String.fromCharCode(0x2500)}-${String.fromCharCode(0x257f)}]+`\n)\n", "import * as utils from './utils-regex'\n\n/**\n * \u6587\u5B57\u30AF\u30E9\u30B9\u95A2\u9023\u306E\u51E6\u7406\u3092\u63D0\u4F9B\u3059\u308B\u30AF\u30E9\u30B9\u3067\u3059\u3002\n * \u6587\u7AE0\u5185\u306E\u7279\u5B9A\u306E\u6587\u5B57\u3084\u6587\u5B57\u30AF\u30E9\u30B9\u306B\u57FA\u3065\u3044\u3066\u3001\n * \u5206\u96E2\u7981\u5247\u51E6\u7406\u3084\u56DB\u5206\u30A2\u30AD\u306E\u8FFD\u52A0\u306E\u5224\u5B9A\u3092\u884C\u3044\u307E\u3059\u3002\n */\nconst CharClass = {\n /**\n * \u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u5206\u96E2\u7981\u5247\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u5224\u5B9A\u3057\u307E\u3059\u3002\n * @param segment - \u5224\u5B9A\u3059\u308B\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u5206\u96E2\u7981\u5247\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306Ftrue\u3001\u305D\u3046\u3067\u306A\u3044\u5834\u5408\u306Ffalse\n */\n shouldNotBreak: (segment: string): boolean => {\n return utils.noBreakRulesRegex.test(segment)\n },\n\n /**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u9593\u306B\u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3092\u5224\u65AD\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3069\u3046\u304B\n */\n shouldAddThinSpace: (current: string, next: string): boolean => {\n const settings = {\n openings: {\n regex: utils.openingsRegex,\n hasSpaceBefore: true,\n hasSpaceAfter: false,\n },\n closings: {\n regex: utils.closingsRegex,\n hasSpaceBefore: false,\n hasSpaceAfter: true,\n },\n middleDots: {\n regex: utils.middleDotsRegex,\n hasSpaceBefore: true,\n hasSpaceAfter: true,\n },\n }\n\n for (const { regex, hasSpaceBefore, hasSpaceAfter } of Object.values(settings)) {\n // \u540C\u3058\u6587\u5B57\u30AF\u30E9\u30B9\u306E\u8A18\u53F7\u304C\u9023\u7D9A\u3059\u308B\u5834\u5408\u306F\u30A2\u30AD\u3092\u5165\u308C\u306A\u3044\n if (hasSpaceBefore && regex.test(next) && !regex.test(current)) {\n return true\n }\n\n if (hasSpaceAfter && regex.test(current) && !regex.test(next)) {\n return true\n }\n }\n\n return false\n },\n}\n\n/**\n * \u8A00\u8A9E\u30AF\u30E9\u30B9\u306B\u95A2\u9023\u3059\u308B\u51E6\u7406\u3092\u63D0\u4F9B\u3059\u308B\u30AF\u30E9\u30B9\u3067\u3059\u3002\n * \u6587\u7AE0\u5185\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u3069\u306E\u8A00\u8A9E\u30AF\u30E9\u30B9\u306B\u5C5E\u3059\u308B\u304B\u3092\u5224\u5B9A\u3057\u3001\n * \u305D\u308C\u306B\u5FDC\u3058\u305F\u30C6\u30AD\u30B9\u30C8\u51E6\u7406\u3092\u884C\u3046\u305F\u3081\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002\n */\nconst LanguageClass = {\n /**\n * \u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u30E9\u30C6\u30F3\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u5224\u5B9A\u3057\u307E\u3059\u3002\n * @param segment - \u5224\u5B9A\u3059\u308B\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u30E9\u30C6\u30F3\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306Ftrue\u3001\u305D\u3046\u3067\u306A\u3044\u5834\u5408\u306Ffalse\n */\n isLatin: (segment: string): boolean => {\n return utils.latinRegex.test(segment)\n },\n\n /**\n * \u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u65E5\u672C\u8A9E\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u5224\u5B9A\u3057\u307E\u3059\u3002\n * @param segment - \u5224\u5B9A\u3059\u308B\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u65E5\u672C\u8A9E\u6587\u5B57\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306Ftrue\u3001\u305D\u3046\u3067\u306A\u3044\u5834\u5408\u306Ffalse\n */\n isJapanese: (segment: string): boolean => {\n return utils.japaneseRegex.test(segment)\n },\n\n /**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u7570\u306A\u308B\u8A00\u8A9E\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u5224\u5B9A\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u7570\u306A\u308B\u8A00\u8A9E\u304C\u3069\u3046\u304B\n */\n isDifferentLanguageClass: (current: string, next: string): boolean => {\n return (\n (LanguageClass.isJapanese(current) && LanguageClass.isLatin(next)) ||\n (LanguageClass.isLatin(current) && LanguageClass.isJapanese(next))\n )\n },\n\n /**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u9593\u306B\u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3092\u5224\u65AD\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3069\u3046\u304B\n */\n shouldAddThinSpace: (current: string, next: string): boolean => {\n return LanguageClass.isDifferentLanguageClass(current, next)\n },\n}\n\nexport { CharClass, LanguageClass }\n", "/**\n * \u30E6\u30FC\u30B6\u30FC\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u306E\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u3068\u691C\u7D22\u30A8\u30F3\u30B8\u30F3\u306E\u6700\u9069\u5316\u306B\u95A2\u9023\u3059\u308B\u8A2D\u5B9A\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u3002\n * - preventSelectStyle: \u30E6\u30FC\u30B6\u30FC\u304C\u30C6\u30AD\u30B9\u30C8\u3092\u9078\u629E\u3057\u3066\u30B3\u30D4\u30FC\u3059\u308B\u3053\u3068\u3092\u9632\u6B62\u3057\u307E\u3059\u3002\n * - hiddenFromReader: \u30B9\u30AF\u30EA\u30FC\u30F3\u30EA\u30FC\u30C0\u30FC\u306A\u3069\u306E\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u30C4\u30FC\u30EB\u304B\u3089\u3053\u306E\u8981\u7D20\u3092\u96A0\u3057\u307E\u3059\u3002\n * - noIndex: \u691C\u7D22\u30A8\u30F3\u30B8\u30F3\u304C\u3053\u306E\u8981\u7D20\u306E\u5185\u5BB9\u3092\u691C\u7D22\u7D50\u679C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3068\u3057\u3066\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\u3002\n */\nconst uiIgnoreSettings = {\n preventSelectStyle: 'user-select:none;',\n hiddenFromReader: 'aria-hidden=\"true\"',\n noIndex: 'data-nosnippet=\"\"',\n}\n\n/**\n * `<wbr>`\u30BF\u30B0\u306FHTML\u6587\u66F8\u5185\u3067\u5358\u8A9E\u306E\u533A\u5207\u308A\u3092\u793A\u3057\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u6539\u884C\u306E\u633F\u5165\u3092\u8A31\u53EF\u3059\u308B\u30BF\u30B0\u3067\u3059\u3002\n */\nconst wbr = '<wbr>'\n\n/**\n * THIN SPACE\u3092\u6307\u5B9A\u3057\u305F\u5E45\u3067\u751F\u6210\u3059\u308B\u95A2\u6570\u3067\u3059\u3002\n * @param thisSpaceWidth - THIN SPACE\u306E\u5E45\u3002\n * @param classNamePrefix - \u9069\u7528\u3059\u308BCSS\u30AF\u30E9\u30B9\u540D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F 'typeset'\u3002\n * @return \u30B9\u30BF\u30A4\u30EB\u9069\u7528\u3055\u308C\u305FTHIN SPACE\u3092\u542B\u3080span\u30BF\u30B0\u3002\n */\nconst thinSpace = (thisSpaceWidth: string, classNamePrefix: string): string => {\n const THIN_SPACE = String.fromCharCode(0x2009) // U+2009 THIN SPACE\n const className = classNamePrefix + '-thin-space'\n const style = `font-size: ${thisSpaceWidth}; ${uiIgnoreSettings.preventSelectStyle}`\n return `<span class=\"${className}\" style=\"${style}\" ${uiIgnoreSettings.hiddenFromReader} ${uiIgnoreSettings.noIndex}>${THIN_SPACE}</span>`\n}\n\n/**\n * \u6307\u5B9A\u3055\u308C\u305F\u6587\u5B57\u306B\u30AB\u30FC\u30CB\u30F3\u30B0\uFF08\u6587\u5B57\u9593\u9694\u8ABF\u6574\uFF09\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n *\n * @param char - \u30AB\u30FC\u30CB\u30F3\u30B0\u3092\u9069\u7528\u3059\u308B\u6587\u5B57\u3002\n * @param kerningValue - \u30AB\u30FC\u30CB\u30F3\u30B0\u5024\uFF08\u5343\u5206\u7387\uFF09\u3002\u4F8B: 1000 \u306F 1em \u306E\u30AB\u30FC\u30CB\u30F3\u30B0\u3092\u610F\u5473\u3057\u307E\u3059\u3002\n * @param classNamePrefix - \u9069\u7528\u3059\u308BCSS\u30AF\u30E9\u30B9\u540D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F 'typeset'\u3002\n * @return \u30AB\u30FC\u30CB\u30F3\u30B0\u9069\u7528\u5F8C\u306EHTML\u30B3\u30F3\u30C6\u30F3\u30C4\u3002\n */\nconst applyKerning = (char: string, kerningValue: number, classNamePrefix: string): string => {\n const emValue = kerningValue / 1000 / 2 + 'em'\n const className = classNamePrefix + '-kerning'\n const style = `margin: ${emValue}; ${uiIgnoreSettings.preventSelectStyle}`\n return `${char}<span class=\"${className}\" style=\"${style}\" ${uiIgnoreSettings.hiddenFromReader} ${uiIgnoreSettings.noIndex}></span>`\n}\n\n/**\n * \u4E0E\u3048\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306Bword-break\u3068overflow-wrap\u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n * @param text - \u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3059\u308B\u30C6\u30AD\u30B9\u30C8\u3002\n * @param classNamePrefix - \u9069\u7528\u3059\u308BCSS\u30AF\u30E9\u30B9\u540D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F 'typeset'\u3002\n * @param useWordBreak - \u5358\u8A9E\u3084\u52A9\u8A5E\u306A\u3069\u3001\u8A9E\u5358\u4F4D\u3067\u306E\u6539\u884C\u3092\u884C\u3046\u304B\u3069\u3046\u304B\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F true\u3002\n * @return \u30B9\u30BF\u30A4\u30EB\u9069\u7528\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u542B\u3080span\u30BF\u30B0\u3002\n */\nconst applyWrapperStyle = (text: string, classNamePrefix: string, useWordBreak: boolean): string => {\n // <wbr> \u4EE5\u5916\u306E\u7B87\u6240\u3067\u6539\u884C\u3057\u306A\u3044\u305F\u3081\u306E\u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\n const style = useWordBreak ? 'word-break: keep-all; overflow-wrap: anywhere;' : ''\n return `<span class=\"${classNamePrefix}\" style=\"${style}\">${text}</span>`\n}\n\n/**\n * \u4E0E\u3048\u3089\u308C\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u30AF\u30E9\u30B9\u540D\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n * @param segment - \u30AF\u30E9\u30B9\u3092\u9069\u7528\u3059\u308B\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\n * @param classNamePrefix - \u9069\u7528\u3059\u308BCSS\u30AF\u30E9\u30B9\u540D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F 'typeset'\u3002\n * @return \u30AF\u30E9\u30B9\u9069\u7528\u3055\u308C\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u542B\u3080span\u30BF\u30B0\u3002\n */\nconst applyLatinStyle = (segment: string, classNamePrefix: string): string => {\n const className = classNamePrefix + '-latin'\n return `<span class=\"${className}\">${segment}</span>`\n}\n\n/**\n * \u4E0E\u3048\u3089\u308C\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u306Bno-break\u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n * @param segment - \u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3059\u308B\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\n * @param classNamePrefix - \u9069\u7528\u3059\u308BCSS\u30AF\u30E9\u30B9\u540D\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306F 'typeset'\u3002\n * @return \u30B9\u30BF\u30A4\u30EB\u9069\u7528\u3055\u308C\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u542B\u3080span\u30BF\u30B0\u3002\n */\nconst applyNoBreakStyle = (segment: string, classNamePrefix: string): string => {\n const className = classNamePrefix + '-no-breaks'\n return `<span class=\"${className}\" style=\"letter-spacing: 0\">${segment}</span>`\n}\n\nexport { wbr, thinSpace, applyKerning, applyWrapperStyle, applyLatinStyle, applyNoBreakStyle }\n", "import LineBreaker from 'linebreak'\nimport { CharClass, LanguageClass } from './utils-text-classes'\nimport { wbr, thinSpace } from './utils-tags'\nimport { TypesettingOptions } from './types'\n\n/**\n * HTML\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\u306B\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\uFF08\u56DB\u5206\u30A2\u30AD\u3001<wbr>\uFF09\u3092\u633F\u5165\u3057\u307E\u3059\u3002\n * @param currentText - \u73FE\u5728\u306E\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\n * @param nextText - \u6B21\u306E\u30C6\u30AD\u30B9\u30C8\u30CE\u30FC\u30C9\n * @return \u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u633F\u5165\u3057\u305FHTML\u6587\u5B57\u5217\n */\nconst insertSeparatorsToText = (currentText: string, nextText: string, options: TypesettingOptions): string => {\n const currentSegments = generateSegments(currentText)\n const nextSegments = generateSegments(nextText)\n\n const formattedText = currentSegments.reduce((accumulatedText, segment, index, array) => {\n const current = segment\n const next = array[index + 1] || nextSegments[0]\n return accumulatedText + addSeparatorsToSegment(current, next, options)\n }, '')\n\n return formattedText\n}\n\n/**\n * \u6587\u7AE0\u304B\u3089\u6587\u7BC0\u533A\u5207\u308A\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u914D\u5217\u3092\u751F\u6210\u3057\u307E\u3059\u3002\n * @param src - \u30BD\u30FC\u30B9\u30C6\u30AD\u30B9\u30C8\n * @return \u6587\u7AE0\u304B\u3089\u751F\u6210\u3055\u308C\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u914D\u5217\n */\nconst generateSegments = (src: string): string[] => {\n const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' })\n return Array.from(segmenter.segment(src), ({ segment }) => segment)\n}\n\n/**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u9593\u306B\u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\uFF08\u56DB\u5206\u30A2\u30AD\u3001<wbr>\uFF09\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u30BB\u30D1\u30EC\u30FC\u30BF\u30FC\u3092\u8FFD\u52A0\u3057\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\n */\nconst addSeparatorsToSegment = (current: string, next = '', options: TypesettingOptions): string => {\n if (!next) return current\n\n const addWbr = options.useWordBreak && shouldAddWbr(current, next)\n const addSpace = options.addThinSpaces && shouldAddThinSpace(current, next)\n return current + (addSpace ? thinSpace(options.thinSpaceWidth, options.classNamePrefix) : '') + (addWbr ? wbr : '')\n}\n\n/**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u9593\u306B<wbr>\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3092\u5224\u65AD\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return <wbr>\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3069\u3046\u304B\n */\nconst shouldAddWbr = (current: string, next: string): boolean | null => {\n const combinedText = current.slice(-1) + next.slice(0, 1)\n const lb = new LineBreaker(combinedText)\n const breakOpportunity = lb.nextBreak()\n return breakOpportunity && breakOpportunity.position === 1\n}\n\n/**\n * 2\u3064\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u9593\u306B\u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3092\u5224\u65AD\u3057\u307E\u3059\u3002\n * @param current - \u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @param next - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\n * @return \u56DB\u5206\u30A2\u30AD\u3092\u8FFD\u52A0\u3059\u3079\u304D\u304B\u3069\u3046\u304B\n */\nconst shouldAddThinSpace = (current: string, next: string): boolean => {\n return LanguageClass.shouldAddThinSpace(current, next) || CharClass.shouldAddThinSpace(current, next)\n}\n\nexport default insertSeparatorsToText\nexport { generateSegments, addSeparatorsToSegment, shouldAddWbr, shouldAddThinSpace }\n", "import { CharClass, LanguageClass } from './utils-text-classes'\nimport { applyWrapperStyle, applyLatinStyle, applyNoBreakStyle, applyKerning } from './utils-tags'\nimport { TypesettingOptions } from './types'\n\n/**\n * \u4E0E\u3048\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u306B\u5BFE\u3057\u3066\u3001word-break\u3068overflow-wrap\u30B9\u30BF\u30A4\u30EB\u3092\u6301\u3064span\u30BF\u30B0\u3067\u30E9\u30C3\u30D7\u3057\u307E\u3059\u3002\n *\n * @param text - \u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3055\u308C\u308B\u30C6\u30AD\u30B9\u30C8\u3002\n * @return \u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3002\u30C6\u30AD\u30B9\u30C8\u304C\u7A7A\u306E\u5834\u5408\u306F\u3001\u305D\u306E\u307E\u307E\u8FD4\u3055\u308C\u307E\u3059\u3002\n */\nconst applyStyleToText = (currentNodeValue: string, nextNodeValue: string, options: TypesettingOptions): string => {\n // \u3053\u3053\u3067\u306F nextNodeValue \u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u305B\u3093\u304C\u3001\u95A2\u6570\u306E\u30B7\u30B0\u30CD\u30C1\u30E3\u306FTransformFunction\u306B\u5408\u308F\u305B\u3066\u3044\u307E\u3059\u3002\n if (currentNodeValue === ' ') {\n return currentNodeValue\n }\n\n return applyWrapperStyle(currentNodeValue, options.classNamePrefix, options.useWordBreak)\n}\n\n/**\n * \u4E0E\u3048\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3092\u9069\u7528\u3057\u307E\u3059\u3002\u3053\u308C\u306B\u306F\u3001\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u3001\n * \u7279\u5B9A\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30B9\u30BF\u30A4\u30EB\u3067HTML\u306Espan\u30BF\u30B0\u3067\u30BB\u30B0\u30E1\u30F3\u30C8\u3092\u30E9\u30C3\u30D7\u3059\u308B\u3053\u3068\u304C\u542B\u307E\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\n *\n * @param segment - \u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3055\u308C\u308B\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\n * @return \u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3055\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u30B9\u30DA\u30FC\u30B9\u3067\u3042\u308B\u304B\u3001\u7279\u5225\u306A\u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u304C\u4E0D\u8981\u3067\u3042\u308C\u3070\u3001\n * \u305D\u306E\u307E\u307E\u8FD4\u3055\u308C\u307E\u3059\u3002\u305D\u308C\u4EE5\u5916\u306E\u5834\u5408\u306F\u3001\u9069\u5207\u306A\u30B9\u30BF\u30A4\u30EA\u30F3\u30B0\u3067span\u30BF\u30B0\u3067\u30E9\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002\n */\nconst applyStyleToSegment = (currentSegment: string, nextSegment: string, options: TypesettingOptions): string => {\n // \u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u30B9\u30DA\u30FC\u30B9\u3067\u3042\u308C\u3070\u305D\u306E\u307E\u307E\u8FD4\u3059\n if (currentSegment === ' ') {\n return currentSegment\n }\n\n const kernedSegment = applyKerningToSegment(currentSegment, nextSegment, options)\n\n // \u30E9\u30C6\u30F3\u6587\u5B57\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u306F 'latin' \u30AF\u30E9\u30B9\u3092\u9069\u7528\n if (options.wrapLatin && LanguageClass.isLatin(currentSegment)) {\n return applyLatinStyle(kernedSegment, options.classNamePrefix)\n }\n\n // \u6539\u884C\u3092\u3057\u306A\u3044\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u306F\u30BC\u30ED\u306E\u6587\u5B57\u9593\u9694\u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\n if (options.noSpaceBetweenNoBreaks && CharClass.shouldNotBreak(currentSegment)) {\n return applyNoBreakStyle(kernedSegment, options.classNamePrefix)\n }\n\n return kernedSegment\n}\n\n/**\n * \u30AB\u30FC\u30CB\u30F3\u30B0\u30EB\u30FC\u30EB\u306B\u57FA\u3065\u304D\u3001\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u30AB\u30FC\u30CB\u30F3\u30B0\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n *\n * @param currentSegment - \u30AB\u30FC\u30CB\u30F3\u30B0\u3092\u9069\u7528\u3059\u308B\u73FE\u5728\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\n * @param nextSegment - \u6B21\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\uFF08\u30AB\u30FC\u30CB\u30F3\u30B0\u9069\u7528\u306E\u5224\u65AD\u306B\u4F7F\u7528\uFF09\u3002\n * @param kerningRules - \u9069\u7528\u3059\u308B\u30AB\u30FC\u30CB\u30F3\u30B0\u30EB\u30FC\u30EB\u306E\u914D\u5217\u3002\n * @return \u30AB\u30FC\u30CB\u30F3\u30B0\u9069\u7528\u5F8C\u306E\u30C6\u30AD\u30B9\u30C8\u30BB\u30B0\u30E1\u30F3\u30C8\u3002\n */\nconst applyKerningToSegment = (currentSegment: string, nextSegment: string, options: TypesettingOptions): string => {\n const chars = [...currentSegment]\n\n const kernedChars = chars.map((currentChar, i) => {\n const nextChar = chars[i + 1] || nextSegment[0] || ''\n const kerningRule = options.kerningRules.find(\n rule => rule.between[0] === currentChar && rule.between[1] === nextChar\n )\n\n if (kerningRule) {\n const kerningValue = typeof kerningRule.value === 'number' ? kerningRule.value : parseInt(kerningRule.value, 10)\n return applyKerning(currentChar, kerningValue, options.classNamePrefix)\n }\n\n return currentChar\n })\n\n return kernedChars.join('')\n}\n\nexport { applyStyleToText, applyStyleToSegment }\n", "import HTMLProcessor from './html-processor'\nimport insertSeparatorsToText from './insert-separators'\nimport { applyStyleToText, applyStyleToSegment } from './apply-style'\nimport win from './win'\nimport type { TypesettingOptions, KerningRule } from './types'\n\n/**\n * HTML\u30C6\u30AD\u30B9\u30C8\u3092\u51E6\u7406\u3057\u3001\u30AB\u30B9\u30BF\u30E0\u30B9\u30BF\u30A4\u30EB\u3068\u533A\u5207\u308A\u6587\u5B57\u3092\u9069\u7528\u3059\u308B\u305F\u3081\u306E\u30AF\u30E9\u30B9\u3002\n * HTMLProcessor \u30AF\u30E9\u30B9\u3092\u62E1\u5F35\u3057\u3001\u7279\u5B9A\u306E\u5909\u63DB\u95A2\u6570\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n */\nclass Typesetter extends HTMLProcessor {\n /**\n * Typesetter \u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8A2D\u5B9A\u3067\u3059\u3002\n */\n static defaultOptions: TypesettingOptions = {\n classNamePrefix: 'typeset',\n useWordBreak: true,\n wrapLatin: true,\n noSpaceBetweenNoBreaks: true,\n addThinSpaces: true,\n thinSpaceWidth: '50%',\n kerningRules: [],\n }\n\n /**\n * Intl.Segmenter API \u304C\u73FE\u5728\u306E\u5B9F\u884C\u74B0\u5883\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u793A\u3057\u307E\u3059\u3002\n */\n private isIntlSegmenterSupported: boolean\n\n constructor(options: Partial<TypesettingOptions> = {}) {\n const transformFunctions = [applyStyleToText, insertSeparatorsToText, applyStyleToSegment]\n const validatedOptions = Typesetter.validateOptions(options)\n\n super(transformFunctions, validatedOptions)\n\n /**\n * \u73FE\u5728\u306E\u5B9F\u884C\u74B0\u5883\u3067 Intl.Segmenter \u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u304B\u3069\u3046\u304B\u3092\u78BA\u8A8D\u3057\u307E\u3059\u3002\n * Intl.Segmenter \u306F\u3001\u30C6\u30AD\u30B9\u30C8\u3092\u8A00\u8A9E\u56FA\u6709\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u5206\u5272\u3059\u308B\u6A5F\u80FD\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002\n * \u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u8B66\u544A\u3092\u30B3\u30F3\u30BD\u30FC\u30EB\u306B\u8868\u793A\u3057\u307E\u3059\u3002\n */\n this.isIntlSegmenterSupported = typeof Intl.Segmenter !== 'undefined'\n if (!this.isIntlSegmenterSupported) {\n console.warn(`\n Intl.Segmenter is not supported in this environment. \n The original HTML string will be returned. \n For more information, see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter\n `)\n }\n }\n\n /**\n * \u4E0E\u3048\u3089\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u691C\u8A3C\u3057\u3001\u4FEE\u6B63\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8FD4\u3057\u307E\u3059\u3002\n *\n * @param options - \u691C\u8A3C\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3002\n * @return \u4FEE\u6B63\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u3002\n */\n private static validateOptions(options: Partial<TypesettingOptions>): TypesettingOptions {\n if (options.kerningRules) {\n options.kerningRules = options.kerningRules.filter(Typesetter.isValidKerningRule)\n }\n\n // \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u30DE\u30FC\u30B8\n return {\n ...Typesetter.defaultOptions,\n ...options,\n }\n }\n\n /**\n * \u30AB\u30FC\u30CB\u30F3\u30B0\u30EB\u30FC\u30EB\u304C\u9069\u5207\u304B\u3069\u3046\u304B\u3092\u691C\u8A3C\u3057\u307E\u3059\u3002\n *\n * @param kerningRule - \u691C\u8A3C\u3059\u308B\u30AB\u30FC\u30CB\u30F3\u30B0\u30EB\u30FC\u30EB\u3002\n * @return \u30EB\u30FC\u30EB\u304C\u6709\u52B9\u306A\u5834\u5408\u306Ftrue\u3001\u305D\u3046\u3067\u306A\u3044\u5834\u5408\u306Ffalse\u3002\n */\n private static isValidKerningRule(kerningRule: KerningRule): boolean {\n if (kerningRule.between[0].length !== 1 || kerningRule.between[1].length !== 1) {\n console.warn(\n `Kerning rule between '${kerningRule.between[0]}' and '${kerningRule.between[1]}' must be single characters.`\n )\n return false\n }\n\n return true\n }\n\n /**\n * \u4E0E\u3048\u3089\u308C\u305FHTML\u6587\u5B57\u5217\u3092\u51E6\u7406\u3057\u3001\u6307\u5B9A\u3055\u308C\u305F\u30B9\u30BF\u30A4\u30EB\u3068\u533A\u5207\u308A\u6587\u5B57\u3092\u9069\u7528\u3057\u305F\u7D50\u679C\u3092\u8FD4\u3057\u307E\u3059\u3002\n *\n * @param srcHtml - \u51E6\u7406\u3059\u308BHTML\u6587\u5B57\u5217\u3002\n * @return \u51E6\u7406\u5F8C\u306EHTML\u6587\u5B57\u5217\u3002\n */\n render(srcHtml: string): string {\n if (!this.isIntlSegmenterSupported || !srcHtml) {\n return srcHtml\n }\n\n return this.processHtmlWithFunctions(srcHtml)\n }\n\n /**\n * \u4E0E\u3048\u3089\u308C\u305FElement\u307E\u305F\u306FElement\u306E\u914D\u5217\u306B\u5BFE\u3057\u3066\u3001\u30B9\u30BF\u30A4\u30EB\u3068\u533A\u5207\u308A\u6587\u5B57\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n * \u5404\u8981\u7D20\u306EinnerHTML\u3092\u53D6\u5F97\u3057\u3001\u5909\u63DB\u51E6\u7406\u3092\u9069\u7528\u3057\u305F\u5F8C\u3001\u5909\u63DB\u3055\u308C\u305FHTML\u3067\u5143\u306E\u5185\u5BB9\u3092\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002\n *\n * @param elements - \u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3059\u308BElement\u307E\u305F\u306FHTMLElement\u306E\u914D\u5217\u3002\n */\n renderToElements(elements: Element | Element[] | null): void {\n if (!this.isIntlSegmenterSupported || !elements) {\n return\n }\n\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n elements.forEach(element => {\n const processedHtml = this.render(element.innerHTML)\n element.innerHTML = processedHtml\n })\n }\n\n /**\n * \u6307\u5B9A\u3055\u308C\u305FCSS\u30BB\u30EC\u30AF\u30BF\u306B\u4E00\u81F4\u3059\u308B\u3059\u3079\u3066\u306E\u8981\u7D20\u306B\u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3057\u307E\u3059\u3002\n * document.querySelectorAll\u3092\u4F7F\u7528\u3057\u3066\u8981\u7D20\u3092\u53D6\u5F97\u3057\u3001\u305D\u308C\u305E\u308C\u306B\u5BFE\u3057\u3066\u30B9\u30BF\u30A4\u30EB\u9069\u7528\u51E6\u7406\u3092\u884C\u3044\u307E\u3059\u3002\n *\n * @param selector - \u30B9\u30BF\u30A4\u30EB\u3092\u9069\u7528\u3059\u308B\u8981\u7D20\u3092\u9078\u629E\u3059\u308BCSS\u30BB\u30EC\u30AF\u30BF\u3002\n */\n renderToSelector(selector: string | null): void {\n if (!this.isIntlSegmenterSupported || !selector) {\n return\n }\n\n const elements = win.document.querySelectorAll(selector)\n this.renderToElements(Array.from(elements))\n }\n}\n\nexport default Typesetter\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["win", "exports", "win_1", "__importDefault", "HTMLProcessor", "transformFunctions", "options", "node", "transformedHtml", "range", "fragment", "srcHtml", "currentHtml", "transformFunction", "html", "doc", "parseFromString", "textNodes", "getTextNodes", "currentNode", "index", "nextNode", "exports", "element", "walk", "textNode", "require_tiny_inflate", "__commonJSMin", "exports", "module", "TINF_OK", "TINF_DATA_ERROR", "Tree", "Data", "source", "dest", "sltree", "sdtree", "length_bits", "length_base", "dist_bits", "dist_base", "clcidx", "code_tree", "lengths", "tinf_build_bits_base", "bits", "base", "delta", "first", "i", "sum", "tinf_build_fixed_trees", "lt", "dt", "offs", "tinf_build_tree", "t", "off", "num", "tinf_getbit", "d", "bit", "tinf_read_bits", "val", "tinf_decode_symbol", "cur", "len", "tag", "tinf_decode_trees", "hlit", "hdist", "hclen", "length", "clen", "sym", "prev", "tinf_inflate_block_data", "dist", "tinf_inflate_uncompressed_block", "invlength", "tinf_uncompress", "bfinal", "btype", "res", "require_swap", "__commonJSMin", "exports", "module", "isBigEndian", "swap", "b", "n", "m", "swap32", "array", "len", "i", "swap32LE", "require_unicode_trie", "__commonJSMin", "exports", "module", "inflate", "swap32LE", "SHIFT_1", "SHIFT_2", "SHIFT_1_2", "OMITTED_BMP_INDEX_1_LENGTH", "INDEX_2_BLOCK_LENGTH", "INDEX_2_MASK", "INDEX_SHIFT", "DATA_BLOCK_LENGTH", "DATA_MASK", "LSCP_INDEX_2_OFFSET", "LSCP_INDEX_2_LENGTH", "INDEX_2_BMP_LENGTH", "UTF8_2B_INDEX_2_OFFSET", "UTF8_2B_INDEX_2_LENGTH", "INDEX_1_OFFSET", "DATA_GRANULARITY", "UnicodeTrie", "data", "isBuffer", "uncompressedLength", "view", "codePoint", "index", "require_b64", "__commonJSMin", "exports", "lookup", "Arr", "PLUS", "SLASH", "NUMBER", "LOWER", "UPPER", "PLUS_URL_SAFE", "SLASH_URL_SAFE", "decode", "elt", "code", "b64ToByteArray", "b64", "i", "j", "l", "tmp", "placeHolders", "arr", "len", "L", "push", "v", "uint8ToBase64", "uint8", "extraBytes", "output", "temp", "length", "encode", "num", "tripletToBase64", "$60ff486a304db230$export$fb4028874a74450", "$60ff486a304db230$export$1bb1140fe1358b00", "$60ff486a304db230$export$f3e416a182673355", "$60ff486a304db230$export$24aa617c849a894a", "$60ff486a304db230$export$a73c4d14459b698d", "$60ff486a304db230$export$9e5d732f3676a9ba", "$60ff486a304db230$export$1dff41d5c0caca01", "$60ff486a304db230$export$30a74a373318dec6", "$60ff486a304db230$export$d710c5f50fc7496a", "$60ff486a304db230$export$66498d28055820a9", "$60ff486a304db230$export$eb6c6d0b7c8826f2", "$60ff486a304db230$export$de92be486109a1df", "$60ff486a304db230$export$606cfc2a8896c91f", "$60ff486a304db230$export$e51d3c675bb0140d", "$60ff486a304db230$export$da51c6332ad11d7b", "$60ff486a304db230$export$bea437c40441867d", "$60ff486a304db230$export$c4c7eecbfed13dc9", "$60ff486a304db230$export$98e1f8a379849661", "$1b6fba3281342923$export$98f50d781a474745", "$1b6fba3281342923$export$12ee1f8f5315ca7e", "$1b6fba3281342923$export$e4965ce242860454", "$1b6fba3281342923$export$8f14048969dcd45e", "$1b6fba3281342923$export$133eb141bf58aff4", "$1b6fba3281342923$export$5bdb8ccbf5c57afc", "$f898ea50f3b38ab8$var$data", "$parcel$interopDefault", "$kQ2hT$base64js", "$f898ea50f3b38ab8$var$classTrie", "$kQ2hT$unicodetrie", "$f898ea50f3b38ab8$var$mapClass", "c", "$f898ea50f3b38ab8$var$mapFirst", "$f898ea50f3b38ab8$var$Break", "position", "required", "$f898ea50f3b38ab8$var$LineBreaker", "code", "next", "lastClass", "shouldBreak", "firstClass", "string", "module", "exports", "utils", "__importStar", "CharClass", "segment", "current", "next", "settings", "regex", "hasSpaceBefore", "hasSpaceAfter", "exports", "LanguageClass", "uiIgnoreSettings", "wbr", "exports", "thinSpace", "thisSpaceWidth", "classNamePrefix", "THIN_SPACE", "className", "style", "applyKerning", "char", "kerningValue", "emValue", "applyWrapperStyle", "text", "useWordBreak", "applyLatinStyle", "segment", "applyNoBreakStyle", "linebreak_1", "__importDefault", "utils_text_classes_1", "utils_tags_1", "insertSeparatorsToText", "currentText", "nextText", "options", "currentSegments", "generateSegments", "nextSegments", "accumulatedText", "segment", "index", "array", "current", "next", "addSeparatorsToSegment", "src", "segmenter", "exports", "addWbr", "shouldAddWbr", "addSpace", "shouldAddThinSpace", "combinedText", "breakOpportunity", "utils_text_classes_1", "utils_tags_1", "applyStyleToText", "currentNodeValue", "nextNodeValue", "options", "exports", "applyStyleToSegment", "currentSegment", "nextSegment", "kernedSegment", "applyKerningToSegment", "chars", "currentChar", "i", "nextChar", "kerningRule", "rule", "kerningValue", "html_processor_1", "__importDefault", "insert_separators_1", "apply_style_1", "win_1", "Typesetter", "_Typesetter", "options", "transformFunctions", "validatedOptions", "kerningRule", "srcHtml", "elements", "element", "processedHtml", "selector", "exports"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palt-typesetting",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "A Japanese typesetting library, primarily focused on proportional spacing (font-feature-settings: 'palt').",
5
5
  "main": "./dist/index.js",
6
6
  "files": [
@@ -16,7 +16,7 @@
16
16
  "copy": "mkdir -p ./dist/types && cp -R ./src/types/* ./dist/types",
17
17
  "prebuild": "npm run clean && npm run copy",
18
18
  "build": "tsc && npm run bundle",
19
- "bundle": "esbuild ./dist/index.js --bundle --outfile=bundle/palt-typesetting.min.js --minify --sourcemap --platform=browser --target=es2016",
19
+ "bundle": "esbuild ./dist/index.js --bundle --outfile=bundle/palt-typesetting.min.js --minify --sourcemap --platform=browser --target=es2016 --global-name=Typesetter",
20
20
  "test": "jest",
21
21
  "lint": "eslint ./src/** --no-error-on-unmatched-pattern",
22
22
  "lint:fix": "eslint ./src/** --fix"