palt-typesetting 0.7.3 → 0.8.0

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
@@ -43,12 +43,12 @@ WordPress や jQuery などの環境で使用する場合
43
43
  ```html
44
44
  <head>
45
45
  <!-- head タグ内でスタイルの読み込み -->
46
- <link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.7.3/bundle/typesetter.min.css" />
46
+ <link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.8.0/bundle/typesetter.min.css" />
47
47
  </head>
48
48
 
49
49
  <body>
50
50
  <!-- body 閉じタグの前でスクリプトの読み込み -->
51
- <script src="https://unpkg.com/palt-typesetting@0.7.3/bundle/typesetter.min.js"></script>
51
+ <script src="https://unpkg.com/palt-typesetting@0.8.0/bundle/typesetter.min.js"></script>
52
52
  </body>
53
53
  ```
54
54
 
@@ -201,14 +201,14 @@ console.log('output: ' + typesetter.render(srcHtml))
201
201
 
202
202
  ### オプション
203
203
 
204
- | オプション名 | 説明 | オプションの型 | デフォルト値 |
205
- | ------------------------ | ------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------ |
206
- | `useWordBreak` | 単語や助詞など、単語区切りでの改行を行います。 | `boolean` | `true` |
207
- | `wrapLatin` | 英数を `span.typesetting-latin` でラップします。 | `boolean` | `true` |
208
- | `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typesetting-no-breaks` でラップし、文字間を 0 に設定します。 | `boolean` | `true` |
209
- | `insertThinSpaces` | 四分アキスペースを自動で挿入します。 | `boolean` | `true` |
210
- | `thinSpaceWidth` | 四分アキスペースの幅を設定します。 | `string` | `'0.2em' ` |
211
- | `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
204
+ | オプション名 | 説明 | オプションの型 | デフォルト値 |
205
+ | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------ |
206
+ | `useWordBreak` | 単語や助詞など、単語区切りでの改行を行います。 | `boolean` | `true` |
207
+ | `wrapLatin` | 英数を `span.typesetting-latin` でラップします。 | `boolean` | `true` |
208
+ | `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typesetting-no-breaks` でラップし、文字間を 0 に設定します。 | `boolean` | `true` |
209
+ | `insertThinSpaces` | 四分アキスペースを自動で挿入します。 | `boolean` | `true` |
210
+ | `thinSpaceWidth` | 四分アキスペースの幅を設定します。 <br>※四分アキは本来 0.25em ですが、視覚上の補正としてデフォルト値を 0.2 em に設定しています。 | `string` | `'0.2em'` |
211
+ | `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
212
212
 
213
213
  ### 生成される CSS クラス
214
214
 
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),o="0".charCodeAt(0),a="a".charCodeAt(0),u="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<o?-1:e<o+10?e-o+26+26:e<u+26?e-u:e<a+26?e-a+26:void 0}t.toByteArray=function(t){var r,n,o,a,u,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;u="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-u),o=u>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<o;r+=4,n+=3)l((16711680&(a=c(t.charAt(r))<<18|c(t.charAt(r+1))<<12|c(t.charAt(r+2))<<6|c(t.charAt(r+3))))>>16),l((65280&a)>>8),l(255&a);return 2===u?l(255&(a=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===u&&(l((a=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&a)),i},t.fromByteArray=function(t){var e,r,n,o,a=t.length%3,u="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-a;e<n;e+=3)u+=i((o=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(o>>12&63)+i(o>>6&63)+i(63&o);switch(a){case 1:u+=i((r=t[t.length-1])>>2),u+=i(r<<4&63),u+="==";break;case 2:u+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),u+=i(r>>4&63),u+=i(r<<2&63),u+="="}return u}}(e)},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,o=new e,a=new Uint8Array(30),u=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new e,l=new Uint8Array(320);function h(t,e,r,n){var o,a;for(o=0;o<r;++o)t[o]=0;for(o=0;o<30-r;++o)t[o+r]=o/r|0;for(a=n,o=0;o<30;++o)e[o]=a,a+=1<<t[o]}var d=new Uint16Array(16);function p(t,e,r,n){var o,a;for(o=0;o<16;++o)t.table[o]=0;for(o=0;o<n;++o)t.table[e[r+o]]++;for(t.table[0]=0,a=0,o=0;o<16;++o)d[o]=a,a+=t.table[o];for(o=0;o<n;++o)e[r+o]&&(t.trans[d[e[r+o]]++]=o)}function b(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function v(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function y(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,o=0,a=t.tag;do{n=2*n+(1&a),a>>>=1,++o,r+=e.table[o],n-=e.table[o]}while(n>=0);return t.tag=a,t.bitcount-=o,e.trans[r+n]}function g(t,e,r){var n,o,a,u,i,s;for(n=v(t,5,257),o=v(t,5,1),a=v(t,4,4),u=0;u<19;++u)l[u]=0;for(u=0;u<a;++u){var h=v(t,3,0);l[c[u]]=h}for(p(f,l,0,19),i=0;i<n+o;){var d=y(t,f);switch(d){case 16:var b=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=b;break;case 17:for(s=v(t,3,3);s;--s)l[i++]=0;break;case 18:for(s=v(t,7,11);s;--s)l[i++]=0;break;default:l[i++]=d}}p(e,l,0,n),p(r,l,n,o)}function A(t,e,r){for(;;){var n,o,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,a[l-=257],u[l]),o=y(t,r),f=c=t.destLen-v(t,i[o],s[o]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function w(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,o),h(a,u,4,3),h(i,s,2,1),a[28]=0,u[28]=258,t.exports=function(t,e){var a,u,i=new r(t,e);do{switch(a=b(i),v(i,2,0)){case 0:u=w(i);break;case 1:u=A(i,n,o);break;case 2:g(i,i.ltree,i.dtree),u=A(i,i.ltree,i.dtree);break;default:u=-3}if(0!==u)throw new Error("Data error")}while(!a);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:o}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),o(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";r.d(n,{default:()=>M});var t=window;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,a(n.key),n)}}function a(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,"string");if("object"!=e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}var u,i=function(){return e=function e(r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.replaceNode=function(e,r){var n=t.document.createRange();n.selectNode(e);var o=n.createContextualFragment(r);e.parentNode&&(e.parentNode.insertBefore(o,e),e.parentNode.removeChild(e))},this.transformFunctions=r,this.options=n},(r=[{key:"processHtmlWithFunctions",value:function(t){var e=this;return""===t?t:this.transformFunctions.reduce((function(t,r){return e.processHtml(t,r)}),t)}},{key:"processHtml",value:function(t,e){var r=this;if(""===t)return t;var n=s(t),o=c(n.body);return o.forEach((function(t,n){var a=o[n+1]||null,u=r.getTransformedHtml(t,a,e);r.replaceNode(t,u)})),n.body.innerHTML}},{key:"getTransformedHtml",value:function(t,e,r){return r(t.nodeValue||"",e&&e.nodeValue||"",this.options)}}])&&o(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r}(),s=function(e){return(new t.DOMParser).parseFromString(e,"text/html")},c=function(e){for(var r=t.document.createTreeWalker(e,t.NodeFilter.SHOW_TEXT),n=r.nextNode(),o=[];n;)n.nodeValue&&""!==n.nodeValue.trim()&&o.push(n),n=r.nextNode();return o},f=i,l=r(667),h=r(954);const d=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],p=new l(h.toByteArray("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")),b=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},v=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class y{constructor(t,e=!1){this.position=t,this.required=e}}u=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return b(p.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(d[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=v(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=v(b(this.nextClass)),new y(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new y(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new y(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var g=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,A=/,/,w=/\./,m=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,P=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,x=/・|:|;/,B=/、|,/,O=/。|./,S=new RegExp("[\\p{scx=Hiragana}\\p{scx=Katakana}|ヲ-゚\\p{scx=Han}".concat(m.source).concat(P.source).concat(x.source).concat(B.source).concat(O.source,"]+"),"u"),L=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),j=/[\s\u00A0]/,F={isLatin:function(t){return g.test(t)},isJapanese:function(t){return S.test(t)},hasLanguageTransition:function(t,e){return F.isJapanese(t)!==F.isJapanese(e)},shouldAddThinSpace:function(t,e){return F.hasLanguageTransition(t,e)&&(r=e,!new RegExp("^[".concat(O.source).concat(B.source).concat(w.source).concat(A.source,"]")).test(r));var r}},C="typesetting",H=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(o).concat(n,">").concat(t,"</span>")},D=function(t,e,r,n){var o="letter-spacing: ".concat(r,";"),a=' data-content="'.concat(n?" ":"&nbsp;",'"');return H(t,e,o,a)},X=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},k=function(t,e){return!j.test(t)&&!j.test(e)&&(F.shouldAddThinSpace(t,e)||function(t,e){for(var r=new RegExp("(".concat(P.source,"|").concat(B.source,"|").concat(O.source,")")),n={spaceBefore:{regex:m,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:x,hasSpaceBefore:!0,hasSpaceAfter:!0}},o=0,a=Object.values(n);o<a.length;o++){var u=a[o],i=u.regex,s=u.hasSpaceBefore,c=u.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(c&&i.test(t)&&!i.test(e))return!0}return!1}(t,e))},W=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new u(r).nextBreak();return!!n&&1===n.position},z=function(t,e,r){var n=X(t),o=X(e);return n.reduce((function(t,e,n,a){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n,o=r.insertThinSpaces&&k(t,e),a=W(t,e);return o?t+function(t,e){var r="".concat(C,"-thin-space");return D("",r,t,e)}(x.test(t)||x.test(e)?"calc(".concat(r.thinSpaceWidth," / 2.0)"):null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",a):r.useWordBreak&&a?t+"<wbr>":t}(e,a[n+1]||o[0],r)}),"")};function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var U=function(t,e,r){return" "===t?t:(n=t,o=r.useWordBreak,a="".concat(C,"-wrapper"),u="".concat(C,"-word-break"),i=o?"".concat(a," ").concat(u):a,H(n,i));var n,o,a,u,i},V=function(t,e,r){return" "===t?t:r.wrapLatin&&F.isLatin(t)?t.replace(g,(function(t){return e=t,r="".concat(C,"-latin"),H(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,L.test(n))?t.replace(L,(function(t){return e=t,r="".concat(C,"-no-breaks"),H(e,r);var e,r})):t;var n},E=function(t,e,r){var n,o=function(t){if(Array.isArray(t))return T(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return T(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?T(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return o.map((function(t,n){var a,u=o[n+1]||e[0]||"",i=null===(a=r.kerningRules)||void 0===a?void 0:a.find((function(e){return e.between[0]===t&&e.between[1]===u}));if(i){var s="number"==typeof i.value?i.value:parseInt(i.value,10),c=!r.useWordBreak&&W(t,u);return t+function(t,e){if(0===t)return"";var r="".concat(C,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return H("",r,n)}return D("",r,t/1e3+"em",e)}(s,c)}return t})).join("")};function N(t){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},N(t)}function I(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Z(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?I(Object(r),!0).forEach((function(e){var n,o,a;n=t,o=e,a=r[e],(o=R(o))in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function q(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,R(n.key),n)}}function R(t){var e=function(t,e){if("object"!=N(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=N(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==N(e)?e:e+""}function K(t,e,r){return e=Q(e),function(t,e){if(e&&("object"===N(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,J()?Reflect.construct(e,r||[],Q(t).constructor):e.apply(t,r))}function J(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(J=function(){return!!t})()}function Q(t){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Q(t)}function G(t,e){return G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},G(t,e)}var M=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var e=void 0!==Intl.Segmenter;e||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=e?[U,z,V,E]:[V,E],o=r.validateOptions(t);return K(this,r,[n,o])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&G(t,e)}(r,e),n=r,a=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(r.isValidKerningRule)),Z(Z({},r.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(o=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(e){if(e){var r=t.document.querySelectorAll(e);this.renderToElements(Array.from(r))}}}])&&q(n.prototype,o),a&&q(n,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o,a}(f)})(),n.default})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),o="0".charCodeAt(0),a="a".charCodeAt(0),u="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<o?-1:e<o+10?e-o+26+26:e<u+26?e-u:e<a+26?e-a+26:void 0}t.toByteArray=function(t){var r,n,o,a,u,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;u="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-u),o=u>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<o;r+=4,n+=3)l((16711680&(a=c(t.charAt(r))<<18|c(t.charAt(r+1))<<12|c(t.charAt(r+2))<<6|c(t.charAt(r+3))))>>16),l((65280&a)>>8),l(255&a);return 2===u?l(255&(a=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===u&&(l((a=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&a)),i},t.fromByteArray=function(t){var e,r,n,o,a=t.length%3,u="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-a;e<n;e+=3)u+=i((o=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(o>>12&63)+i(o>>6&63)+i(63&o);switch(a){case 1:u+=i((r=t[t.length-1])>>2),u+=i(r<<4&63),u+="==";break;case 2:u+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),u+=i(r>>4&63),u+=i(r<<2&63),u+="="}return u}}(e)},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,o=new e,a=new Uint8Array(30),u=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new e,l=new Uint8Array(320);function h(t,e,r,n){var o,a;for(o=0;o<r;++o)t[o]=0;for(o=0;o<30-r;++o)t[o+r]=o/r|0;for(a=n,o=0;o<30;++o)e[o]=a,a+=1<<t[o]}var p=new Uint16Array(16);function b(t,e,r,n){var o,a;for(o=0;o<16;++o)t.table[o]=0;for(o=0;o<n;++o)t.table[e[r+o]]++;for(t.table[0]=0,a=0,o=0;o<16;++o)p[o]=a,a+=t.table[o];for(o=0;o<n;++o)e[r+o]&&(t.trans[p[e[r+o]]++]=o)}function d(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function v(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function y(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,o=0,a=t.tag;do{n=2*n+(1&a),a>>>=1,++o,r+=e.table[o],n-=e.table[o]}while(n>=0);return t.tag=a,t.bitcount-=o,e.trans[r+n]}function g(t,e,r){var n,o,a,u,i,s;for(n=v(t,5,257),o=v(t,5,1),a=v(t,4,4),u=0;u<19;++u)l[u]=0;for(u=0;u<a;++u){var h=v(t,3,0);l[c[u]]=h}for(b(f,l,0,19),i=0;i<n+o;){var p=y(t,f);switch(p){case 16:var d=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=d;break;case 17:for(s=v(t,3,3);s;--s)l[i++]=0;break;case 18:for(s=v(t,7,11);s;--s)l[i++]=0;break;default:l[i++]=p}}b(e,l,0,n),b(r,l,n,o)}function A(t,e,r){for(;;){var n,o,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,a[l-=257],u[l]),o=y(t,r),f=c=t.destLen-v(t,i[o],s[o]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function w(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,o),h(a,u,4,3),h(i,s,2,1),a[28]=0,u[28]=258,t.exports=function(t,e){var a,u,i=new r(t,e);do{switch(a=d(i),v(i,2,0)){case 0:u=w(i);break;case 1:u=A(i,n,o);break;case 2:g(i,i.ltree,i.dtree),u=A(i,i.ltree,i.dtree);break;default:u=-3}if(0!==u)throw new Error("Data error")}while(!a);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:o}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),o(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,a(n.key),n)}}function a(e){var r=function(e,r){if("object"!=t(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,"string");if("object"!=t(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}r.d(n,{default:()=>Q});var u,i=function(){return t=function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.transformFunctions=e,this.options=r},(r=[{key:"processHtmlWithFunctions",value:function(t){if(""===t)return t;var r,n=t,o=function(t,r){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){n&&(t=n);var o=0,a=function(){};return{s:a,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,i=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){s=!0,u=t},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw u}}}}(this.transformFunctions);try{for(o.s();!(r=o.n()).done;){var a=r.value;n=this.processHtml(n,a)}}catch(t){o.e(t)}finally{o.f()}return n}},{key:"processHtml",value:function(t,e){if(""===t)return t;for(var r,n=/(<[^>]+>)|([^<]+)/g,o=[];null!==(r=n.exec(t));)r[1]?o.push({type:"tag",value:r[1]}):r[2]&&o.push({type:"text",value:r[2]});for(var a=0;a<o.length;a++)if("text"===o[a].type){for(var u="",i=a+1;i<o.length;i++)if("text"===o[i].type){u=o[i].value;break}var s=o[a].value;s=e(s,u,this.options),o[a].value=s}return o.map((function(t){return t.value})).join("")}}])&&o(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r}(),s=r(667),c=r(954);const f=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],l=new s(c.toByteArray("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")),h=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},p=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class b{constructor(t,e=!1){this.position=t,this.required=e}}u=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return h(l.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(f[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=p(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=p(h(this.nextClass)),new b(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new b(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new b(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var d=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,v=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,y=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,g=/・|:|;/,A=/、|,/,w=/。|./,m=new RegExp("[\\p{scx=Hiragana}\\p{scx=Katakana}|ヲ-゚\\p{scx=Han}".concat(v.source).concat(y.source).concat(g.source).concat(A.source).concat(w.source,"]+"),"u"),P=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),x=/[\s\u00A0]/,B=new RegExp("".concat(/,/.source,"|").concat(/\./.source,"|").concat(v.source,"|").concat(y.source,"|").concat(g.source,"|").concat(A.source,"|").concat(w.source),"u"),S={isLatin:function(t){return d.test(t)},isJapanese:function(t){return m.test(t)},hasLanguageTransition:function(t,e){return S.isJapanese(t)!==S.isJapanese(e)},shouldAddThinSpace:function(t,e){return S.hasLanguageTransition(t,e)}},O="typesetting",j=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(o).concat(n,">").concat(t,"</span>")},L=function(t,e,r,n){var o="letter-spacing: ".concat(r,";"),a=' data-content="'.concat(n?" ":"&nbsp;",'"');return j(t,e,o,a)},F=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},C=function(t,e){return!x.test(t)&&!x.test(e)&&(function(t,e){return B.test(t)||B.test(e)}(t,e)?function(t,e){for(var r=new RegExp("(".concat(y.source,"|").concat(A.source,"|").concat(w.source,")")),n={spaceBefore:{regex:v,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:g,hasSpaceBefore:!0,hasSpaceAfter:!0}},o=0,a=Object.values(n);o<a.length;o++){var u=a[o],i=u.regex,s=u.hasSpaceBefore,c=u.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(c&&i.test(t)&&!i.test(e))return!0}return!1}(t,e):S.shouldAddThinSpace(t,e))},D=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new u(r).nextBreak();return!!n&&1===n.position},X=function(t,e,r){var n=F(t),o=F(e);return n.reduce((function(t,e,n,a){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n,o=r.insertThinSpaces&&C(t,e),a=D(t,e);return o?t+function(t,e){var r="".concat(O,"-thin-space");return L("",r,t,e)}(g.test(t)||g.test(e)?"calc(".concat(r.thinSpaceWidth," / 2.0)"):null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",a):r.useWordBreak&&a?t+"<wbr>":t}(e,a[n+1]||o[0],r)}),"")};function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var H=function(t,e,r){return" "===t?t:(n=t,o=r.useWordBreak,a="".concat(O,"-wrapper"),u="".concat(O,"-word-break"),i=o?"".concat(a," ").concat(u):a,j(n,i));var n,o,a,u,i},z=function(t,e,r){return" "===t?t:r.wrapLatin&&S.isLatin(t)?t.replace(d,(function(t){return e=t,r="".concat(O,"-latin"),j(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,P.test(n))?t.replace(P,(function(t){return e=t,r="".concat(O,"-no-breaks"),j(e,r);var e,r})):t;var n},W=function(t,e,r){var n,o=function(t){if(Array.isArray(t))return k(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return o.map((function(t,n){var a,u=o[n+1]||e[0]||"",i=null===(a=r.kerningRules)||void 0===a?void 0:a.find((function(e){return e.between[0]===t&&e.between[1]===u}));if(i){var s="number"==typeof i.value?i.value:parseInt(i.value,10),c=!r.useWordBreak&&D(t,u);return t+function(t,e){if(0===t)return"";var r="".concat(O,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return j("",r,n)}return L("",r,t/1e3+"em",e)}(s,c)}return t})).join("")},U=window;function T(t){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},T(t)}function V(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function E(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?V(Object(r),!0).forEach((function(e){I(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function I(t,e,r){return(e=Z(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function N(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function Z(t){var e=function(t,e){if("object"!=T(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==T(e)?e:e+""}function q(t,e,r){return e=K(e),function(t,e){if(e&&("object"==T(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,R()?Reflect.construct(e,r||[],K(t).constructor):e.apply(t,r))}function R(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(R=function(){return!!t})()}function K(t){return K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},K(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}var Q=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var r=void 0!==Intl.Segmenter;r||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=r?[H,X,z,W]:[z,W],o=e.validateOptions(t);return q(this,e,[n,o])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(e,t),r=e,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(e.isValidKerningRule)),E(E({},e.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(n=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(t){if(t){var e=U.document.querySelectorAll(t);this.renderToElements(Array.from(e))}}}])&&N(r.prototype,n),o&&N(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(i)})(),n.default})()));
@@ -5,11 +5,7 @@ declare class HTMLProcessor {
5
5
  constructor(transformFunctions: TransformFunction[], options: TypesettingOptions);
6
6
  processHtmlWithFunctions(srcHtml: string): string;
7
7
  private processHtml;
8
- private getTransformedHtml;
9
- private replaceNode;
10
8
  }
11
- declare const parseFromString: (html: string) => Document;
12
- declare const getTextNodes: (element: HTMLElement) => Node[];
13
9
  export default HTMLProcessor;
14
- export { parseFromString, getTextNodes };
10
+ export type { TransformFunction, TypesettingOptions };
15
11
  //# sourceMappingURL=html-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAOrE,cAAM,aAAa;IACjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAoB;gBAEvB,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,kBAAkB;IAahF,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAmBjD,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,WAAW,CASlB;CACF;AAQD,QAAA,MAAM,eAAe,SAAU,MAAM,aAEpC,CAAA;AAQD,QAAA,MAAM,YAAY,YAAa,WAAW,KAAG,IAAI,EAahD,CAAA;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAKrE,cAAM,aAAa;IACjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAoB;gBAEvB,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,kBAAkB;IAYhF,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAiBjD,OAAO,CAAC,WAAW;CAoCpB;AAED,eAAe,aAAa,CAAA;AAC5B,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,97 +1,60 @@
1
- import win from "./win.js";
2
1
  class HTMLProcessor {
3
2
  constructor(transformFunctions, options) {
4
- /**
5
- * 指定されたノードを、新しいHTMLコンテンツで置き換えます。
6
- *
7
- * @param node - 置き換えるノード。
8
- * @param transformedHtml - ノードに挿入される変換後のHTMLコンテンツ。
9
- */
10
- this.replaceNode = (node, transformedHtml) => {
11
- const range = win.document.createRange();
12
- range.selectNode(node);
13
- const fragment = range.createContextualFragment(transformedHtml);
14
- if (node.parentNode) {
15
- node.parentNode.insertBefore(fragment, node);
16
- node.parentNode.removeChild(node);
17
- }
18
- };
19
3
  this.transformFunctions = transformFunctions;
20
4
  this.options = options;
21
5
  }
22
6
  /**
23
- * 与えられたHTML文字列に対して、指定された変換関数の配列を順番に適用し、
24
- * 変換されたHTMLを生成します。
7
+ * 与えられたHTML文字列に対して、各変換関数を順次適用し、変換されたHTML文字列を返します。
8
+ * DOM パーサやツリー操作は用いず、すべての処理を文字列操作で実現しています。
25
9
  *
26
10
  * @param srcHtml - 変換を適用する元のHTML文字列。
27
- * @param functions - 順番に適用する変換関数の配列。
28
11
  * @return 変換後のHTML文字列。
29
12
  */
30
13
  processHtmlWithFunctions(srcHtml) {
31
- if (srcHtml === "") {
32
- return srcHtml;
14
+ if (srcHtml === "") return srcHtml;
15
+ let processedHtml = srcHtml;
16
+ for (const transformFunction of this.transformFunctions) {
17
+ processedHtml = this.processHtml(processedHtml, transformFunction);
33
18
  }
34
- return this.transformFunctions.reduce(
35
- (currentHtml, transformFunction) => this.processHtml(currentHtml, transformFunction),
36
- srcHtml
37
- );
19
+ return processedHtml;
38
20
  }
39
21
  /**
40
- * HTML文字列を解析し、特定の変換関数を使用してその内容を変換し、
41
- * 変換されたHTMLを文字列として返します。
22
+ * HTML文字列を正規表現で「タグ」と「テキスト」に分割し、テキスト部分に対して指定された変換関数を適用します。
42
23
  *
43
24
  * @param html - 解析および変換するHTML文字列。
44
- * @param transformFunction - 各テキストノードに適用される変換関数。
45
- * @return 変換後のHTML内容を含む文字列。テキストが空の場合は、そのまま返されます。
25
+ * @param transformFunction - テキスト部分に適用する変換関数。
26
+ * @return 変換後のHTML文字列。
46
27
  */
47
28
  processHtml(html, transformFunction) {
48
- if (html === "") {
49
- return html;
29
+ if (html === "") return html;
30
+ const tokenRegex = /(<[^>]+>)|([^<]+)/g;
31
+ const tokens = [];
32
+ let match;
33
+ while ((match = tokenRegex.exec(html)) !== null) {
34
+ if (match[1]) {
35
+ tokens.push({ type: "tag", value: match[1] });
36
+ } else if (match[2]) {
37
+ tokens.push({ type: "text", value: match[2] });
38
+ }
50
39
  }
51
- const doc = parseFromString(html);
52
- const textNodes = getTextNodes(doc.body);
53
- textNodes.forEach((currentNode, index) => {
54
- const nextNode = textNodes[index + 1] || null;
55
- const transformedHtml = this.getTransformedHtml(currentNode, nextNode, transformFunction);
56
- this.replaceNode(currentNode, transformedHtml);
57
- });
58
- return doc.body.innerHTML;
59
- }
60
- /**
61
- * 与えられたノードと、その次のノードに基づいて変換されたHTMLを生成します。
62
- *
63
- * @param currentNode - 現在のノード。
64
- * @param nextNode - 次のノード、または存在しない場合は null。
65
- * @param transformFunction - ノードの値を変換するための関数。
66
- * @return 変換されたHTMLコンテンツを含む文字列。
67
- */
68
- getTransformedHtml(currentNode, nextNode, transformFunction) {
69
- const transformedHtml = transformFunction(
70
- currentNode.nodeValue || "",
71
- nextNode ? nextNode.nodeValue || "" : "",
72
- this.options
73
- );
74
- return transformedHtml;
75
- }
76
- }
77
- const parseFromString = (html) => {
78
- return new win.DOMParser().parseFromString(html, "text/html");
79
- };
80
- const getTextNodes = (element) => {
81
- const walk = win.document.createTreeWalker(element, win.NodeFilter.SHOW_TEXT);
82
- let textNode = walk.nextNode();
83
- const textNodes = [];
84
- while (textNode) {
85
- if (textNode.nodeValue && textNode.nodeValue.trim() !== "") {
86
- textNodes.push(textNode);
40
+ for (let i = 0; i < tokens.length; i++) {
41
+ if (tokens[i].type === "text") {
42
+ let nextText = "";
43
+ for (let j = i + 1; j < tokens.length; j++) {
44
+ if (tokens[j].type === "text") {
45
+ nextText = tokens[j].value;
46
+ break;
47
+ }
48
+ }
49
+ let transformed = tokens[i].value;
50
+ transformed = transformFunction(transformed, nextText, this.options);
51
+ tokens[i].value = transformed;
52
+ }
87
53
  }
88
- textNode = walk.nextNode();
54
+ return tokens.map((token) => token.value).join("");
89
55
  }
90
- return textNodes;
91
- };
56
+ }
92
57
  var html_processor_default = HTMLProcessor;
93
58
  export {
94
- html_processor_default as default,
95
- getTextNodes,
96
- parseFromString
59
+ html_processor_default as default
97
60
  };
package/dist/index.js CHANGED
@@ -95,7 +95,7 @@ class Typesetter extends HTMLProcessor {
95
95
  this.renderToElements(Array.from(elements));
96
96
  }
97
97
  }
98
- var src_default = Typesetter;
98
+ var index_default = Typesetter;
99
99
  export {
100
- src_default as default
100
+ index_default as default
101
101
  };
@@ -1 +1 @@
1
- {"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAkBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAK3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAKpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAkBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAO3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAKpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
@@ -32,7 +32,7 @@ const addSeparatorsToSegment = (current, next = "", options) => {
32
32
  };
33
33
  const shouldAddThinSpace = (current, next) => {
34
34
  if (whitespaceRegex.test(current) || whitespaceRegex.test(next)) return false;
35
- return LanguageClass.shouldAddThinSpace(current, next) || CharClass.shouldAddThinSpace(current, next);
35
+ return CharClass.includesPunctuation(current, next) ? CharClass.shouldAddThinSpace(current, next) : LanguageClass.shouldAddThinSpace(current, next);
36
36
  };
37
37
  const isBreakable = (current, next) => {
38
38
  const combinedText = current.slice(-1) + next.slice(0, 1);
@@ -9,4 +9,5 @@ export declare const periodsRegex: RegExp;
9
9
  export declare const japaneseRegex: RegExp;
10
10
  export declare const noBreakRulesRegex: RegExp;
11
11
  export declare const whitespaceRegex: RegExp;
12
+ export declare const punctuationRegex: RegExp;
12
13
  //# sourceMappingURL=util-regex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util-regex.d.ts","sourceRoot":"","sources":["../src/util-regex.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAC6E,CAAA;AAKpG,eAAO,MAAM,eAAe,QAAM,CAAA;AAKlC,eAAO,MAAM,gBAAgB,QAAO,CAAA;AAKpC,eAAO,MAAM,aAAa,QAA8B,CAAA;AAKxD,eAAO,MAAM,aAAa,QAA8B,CAAA;AAKxD,eAAO,MAAM,eAAe,QAAU,CAAA;AAKtC,eAAO,MAAM,WAAW,QAAQ,CAAA;AAKhC,eAAO,MAAM,YAAY,QAAQ,CAAA;AAKjC,eAAO,MAAM,aAAa,QAGzB,CAAA;AAKD,eAAO,MAAM,iBAAiB,QAG7B,CAAA;AAKD,eAAO,MAAM,eAAe,QAAe,CAAA"}
1
+ {"version":3,"file":"util-regex.d.ts","sourceRoot":"","sources":["../src/util-regex.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAC6E,CAAA;AAKpG,eAAO,MAAM,eAAe,QAAM,CAAA;AAKlC,eAAO,MAAM,gBAAgB,QAAO,CAAA;AAKpC,eAAO,MAAM,aAAa,QAA8B,CAAA;AAKxD,eAAO,MAAM,aAAa,QAA8B,CAAA;AAKxD,eAAO,MAAM,eAAe,QAAU,CAAA;AAKtC,eAAO,MAAM,WAAW,QAAQ,CAAA;AAKhC,eAAO,MAAM,YAAY,QAAQ,CAAA;AAKjC,eAAO,MAAM,aAAa,QAGzB,CAAA;AAKD,eAAO,MAAM,iBAAiB,QAG7B,CAAA;AAKD,eAAO,MAAM,eAAe,QAAe,CAAA;AAK3C,eAAO,MAAM,gBAAgB,QAG5B,CAAA"}
@@ -15,6 +15,10 @@ const noBreakRulesRegex = new RegExp(
15
15
  "g"
16
16
  );
17
17
  const whitespaceRegex = /[\s\u00A0]/;
18
+ const punctuationRegex = new RegExp(
19
+ `${latinCommaRegex.source}|${latinPeriodRegex.source}|${openingsRegex.source}|${closingsRegex.source}|${middleDotsRegex.source}|${commasRegex.source}|${periodsRegex.source}`,
20
+ "u"
21
+ );
18
22
  export {
19
23
  closingsRegex,
20
24
  commasRegex,
@@ -26,5 +30,6 @@ export {
26
30
  noBreakRulesRegex,
27
31
  openingsRegex,
28
32
  periodsRegex,
33
+ punctuationRegex,
29
34
  whitespaceRegex
30
35
  };
@@ -1,7 +1,7 @@
1
1
  declare const CharClass: {
2
2
  shouldNotBreak: (segment: string) => boolean;
3
3
  shouldAddThinSpace: (current: string, next: string) => boolean;
4
- startsWithPunctuation: (segment: string) => boolean;
4
+ includesPunctuation: (current: string, next: string) => boolean;
5
5
  };
6
6
  declare const LanguageClass: {
7
7
  isLatin: (segment: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"util-text-classes.d.ts","sourceRoot":"","sources":["../src/util-text-classes.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,SAAS;8BAMa,MAAM,KAAG,OAAO;kCAUZ,MAAM,QAAQ,MAAM,KAAG,OAAO;qCA8C3B,MAAM,KAAG,OAAO;CAQlD,CAAA;AAOD,QAAA,MAAM,aAAa;uBAME,MAAM,KAAG,OAAO;0BASb,MAAM,KAAG,OAAO;qCAWL,MAAM,QAAQ,MAAM,KAAG,OAAO;kCAUjC,MAAM,QAAQ,MAAM,KAAG,OAAO;CAG7D,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"util-text-classes.d.ts","sourceRoot":"","sources":["../src/util-text-classes.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,SAAS;8BAMa,MAAM,KAAG,OAAO;kCAUZ,MAAM,QAAQ,MAAM,KAAG,OAAO;mCA+C7B,MAAM,QAAQ,MAAM,KAAG,OAAO;CAG9D,CAAA;AAOD,QAAA,MAAM,aAAa;uBAME,MAAM,KAAG,OAAO;0BASb,MAAM,KAAG,OAAO;qCAWL,MAAM,QAAQ,MAAM,KAAG,OAAO;kCAUjC,MAAM,QAAQ,MAAM,KAAG,OAAO;CAG7D,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA"}
@@ -46,15 +46,13 @@ const CharClass = {
46
46
  return false;
47
47
  },
48
48
  /**
49
- * 与えられた文字列の最初の文字が句読点に一致するかどうか判断します。
50
- * @param {string} segment - 判断対象の文字列
51
- * @return {boolean} 最初の文字が句読点であればtrueを返します。
49
+ * セグメントの少なくとも一方に約物が含まれているかどうかを判定します。
50
+ * @param {string} current - 現在のセグメント
51
+ * @param {string} next - 次のセグメント
52
+ * @return {boolean} 約物が含まれている場合はtrue、そうでない場合はfalse
52
53
  */
53
- startsWithPunctuation: (segment) => {
54
- const combinedRegex = new RegExp(
55
- `^[${util.periodsRegex.source}${util.commasRegex.source}${util.latinPeriodRegex.source}${util.latinCommaRegex.source}]`
56
- );
57
- return combinedRegex.test(segment);
54
+ includesPunctuation: (current, next) => {
55
+ return util.punctuationRegex.test(current) || util.punctuationRegex.test(next);
58
56
  }
59
57
  };
60
58
  const LanguageClass = {
@@ -91,7 +89,7 @@ const LanguageClass = {
91
89
  * @return 四分アキを追加すべきかどうか
92
90
  */
93
91
  shouldAddThinSpace: (current, next) => {
94
- return LanguageClass.hasLanguageTransition(current, next) && !CharClass.startsWithPunctuation(next);
92
+ return LanguageClass.hasLanguageTransition(current, next);
95
93
  }
96
94
  };
97
95
  export {
package/dist/win.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="jsdom" />
2
- /// <reference types="jsdom" />
3
1
  declare const win: import("jsdom").DOMWindow;
4
2
  export default win;
5
3
  //# sourceMappingURL=win.d.ts.map
package/dist/win.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"win.d.ts","sourceRoot":"","sources":["../src/win.ts"],"names":[],"mappings":";;AAQA,QAAA,MAAM,GAAG,2BAAqB,CAAA;AAE9B,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"win.d.ts","sourceRoot":"","sources":["../src/win.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,GAAG,2BAAqB,CAAA;AAE9B,eAAe,GAAG,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palt-typesetting",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "Typesetting Library for Proportional Spacing",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,22 +34,22 @@
34
34
  "./dist/win.js": "./dist/win-browser.js"
35
35
  },
36
36
  "dependencies": {
37
- "jsdom": "^24.0.0",
37
+ "jsdom": "^25.0.0",
38
38
  "linebreak": "^1.1.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@babel/core": "^7.23.9",
42
42
  "@babel/preset-env": "^7.23.9",
43
43
  "@types/jsdom": "^21.1.6",
44
- "@types/node": "^20",
45
- "@typescript-eslint/eslint-plugin": "^7.1.0",
46
- "@typescript-eslint/parser": "^7.1.0",
44
+ "@types/node": "^22",
45
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
46
+ "@typescript-eslint/parser": "^8.0.0",
47
47
  "babel-loader": "^9.1.3",
48
48
  "clean-css-cli": "^5.6.3",
49
- "esbuild": "^0.21.2",
50
- "eslint": "^8",
49
+ "esbuild": "^0.25.0",
50
+ "eslint": "^9",
51
51
  "typescript": "^5",
52
- "vitest": "^1.2.2",
52
+ "vitest": "^3.0.5",
53
53
  "webpack": "^5.90.3",
54
54
  "webpack-cli": "^5.1.4"
55
55
  }