@richscripts/richtexteditor 2.14.1 → 2.15.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.
Files changed (237) hide show
  1. package/README.md +173 -10
  2. package/angular/build-manifest.json +23 -0
  3. package/angular/index.d.ts +71 -76
  4. package/angular/index.mjs +2 -0
  5. package/angular/package.json +4 -0
  6. package/headless/index.d.ts +3 -1
  7. package/headless/index.js +72 -16
  8. package/index.d.ts +33 -54
  9. package/integrations/initialization-scope.js +27 -0
  10. package/integrations/native-mount.js +30 -0
  11. package/integrations/shared.d.ts +23 -1
  12. package/integrations/shared.js +58 -22
  13. package/package.json +25 -3
  14. package/react/index.js +118 -37
  15. package/react/index.mjs +29 -0
  16. package/richtexteditor/all_plugins.js +7001 -1078
  17. package/richtexteditor/all_plugins.min.js +62 -59
  18. package/richtexteditor/lang/emoji/LICENSE-CLDR.txt +41 -0
  19. package/richtexteditor/lang/emoji/rte-emoji-de.js +3 -0
  20. package/richtexteditor/lang/emoji/rte-emoji-es.js +3 -0
  21. package/richtexteditor/lang/emoji/rte-emoji-fr.js +3 -0
  22. package/richtexteditor/lang/emoji/rte-emoji-it.js +3 -0
  23. package/richtexteditor/lang/emoji/rte-emoji-ja.js +3 -0
  24. package/richtexteditor/lang/emoji/rte-emoji-ko.js +3 -0
  25. package/richtexteditor/lang/emoji/rte-emoji-nl.js +3 -0
  26. package/richtexteditor/lang/emoji/rte-emoji-pt-pt.js +3 -0
  27. package/richtexteditor/lang/emoji/rte-emoji-pt.js +3 -0
  28. package/richtexteditor/lang/emoji/rte-emoji-ru.js +3 -0
  29. package/richtexteditor/lang/emoji/rte-emoji-zh-Hans.js +3 -0
  30. package/richtexteditor/lang/emoji/rte-emoji-zh-Hant.js +3 -0
  31. package/richtexteditor/lang/rte-lang-af.js +1 -0
  32. package/richtexteditor/lang/rte-lang-ar.js +1 -0
  33. package/richtexteditor/lang/rte-lang-bg.js +1 -0
  34. package/richtexteditor/lang/rte-lang-bn.js +1 -0
  35. package/richtexteditor/lang/rte-lang-bs.js +1 -0
  36. package/richtexteditor/lang/rte-lang-ca.js +1 -0
  37. package/richtexteditor/lang/rte-lang-cs.js +1 -0
  38. package/richtexteditor/lang/rte-lang-cy.js +1 -0
  39. package/richtexteditor/lang/rte-lang-da.js +1 -0
  40. package/richtexteditor/lang/rte-lang-de.js +1017 -2
  41. package/richtexteditor/lang/rte-lang-el.js +1 -0
  42. package/richtexteditor/lang/rte-lang-en.js +1 -0
  43. package/richtexteditor/lang/rte-lang-es.js +1023 -2
  44. package/richtexteditor/lang/rte-lang-et.js +1 -0
  45. package/richtexteditor/lang/rte-lang-fa.js +1 -0
  46. package/richtexteditor/lang/rte-lang-fi.js +1 -0
  47. package/richtexteditor/lang/rte-lang-fil.js +1 -0
  48. package/richtexteditor/lang/rte-lang-fj.js +1 -0
  49. package/richtexteditor/lang/rte-lang-fr.js +1023 -2
  50. package/richtexteditor/lang/rte-lang-ga.js +1 -0
  51. package/richtexteditor/lang/rte-lang-gu.js +1 -0
  52. package/richtexteditor/lang/rte-lang-he.js +1 -0
  53. package/richtexteditor/lang/rte-lang-hi.js +1 -0
  54. package/richtexteditor/lang/rte-lang-hr.js +1 -0
  55. package/richtexteditor/lang/rte-lang-ht.js +1 -0
  56. package/richtexteditor/lang/rte-lang-hu.js +1 -0
  57. package/richtexteditor/lang/rte-lang-id.js +1 -0
  58. package/richtexteditor/lang/rte-lang-is.js +1 -0
  59. package/richtexteditor/lang/rte-lang-it.js +1023 -2
  60. package/richtexteditor/lang/rte-lang-ja.js +1023 -2
  61. package/richtexteditor/lang/rte-lang-kn.js +1 -0
  62. package/richtexteditor/lang/rte-lang-ko.js +1023 -2
  63. package/richtexteditor/lang/rte-lang-lt.js +1 -0
  64. package/richtexteditor/lang/rte-lang-lv.js +1 -0
  65. package/richtexteditor/lang/rte-lang-mg.js +1 -0
  66. package/richtexteditor/lang/rte-lang-mi.js +1 -0
  67. package/richtexteditor/lang/rte-lang-ml.js +1 -0
  68. package/richtexteditor/lang/rte-lang-mr.js +1 -0
  69. package/richtexteditor/lang/rte-lang-ms.js +1 -0
  70. package/richtexteditor/lang/rte-lang-mt.js +1 -0
  71. package/richtexteditor/lang/rte-lang-mww.js +1 -0
  72. package/richtexteditor/lang/rte-lang-nb.js +1 -0
  73. package/richtexteditor/lang/rte-lang-nl.js +1023 -2
  74. package/richtexteditor/lang/rte-lang-otq.js +1 -0
  75. package/richtexteditor/lang/rte-lang-pa.js +1 -0
  76. package/richtexteditor/lang/rte-lang-pl.js +1 -0
  77. package/richtexteditor/lang/rte-lang-pt-pt.js +1023 -2
  78. package/richtexteditor/lang/rte-lang-pt.js +1023 -2
  79. package/richtexteditor/lang/rte-lang-ro.js +1 -0
  80. package/richtexteditor/lang/rte-lang-ru.js +1023 -2
  81. package/richtexteditor/lang/rte-lang-sk.js +1 -0
  82. package/richtexteditor/lang/rte-lang-sl.js +1 -0
  83. package/richtexteditor/lang/rte-lang-sm.js +1 -0
  84. package/richtexteditor/lang/rte-lang-sr-Cyrl.js +1 -0
  85. package/richtexteditor/lang/rte-lang-sr-Latn.js +1 -0
  86. package/richtexteditor/lang/rte-lang-sv.js +1 -0
  87. package/richtexteditor/lang/rte-lang-sw.js +1 -0
  88. package/richtexteditor/lang/rte-lang-ta.js +1 -0
  89. package/richtexteditor/lang/rte-lang-te.js +1 -0
  90. package/richtexteditor/lang/rte-lang-th.js +1 -0
  91. package/richtexteditor/lang/rte-lang-tlh-Latn.js +1 -0
  92. package/richtexteditor/lang/rte-lang-tlh-Piqd.js +1 -0
  93. package/richtexteditor/lang/rte-lang-to.js +1 -0
  94. package/richtexteditor/lang/rte-lang-tr.js +1 -0
  95. package/richtexteditor/lang/rte-lang-ty.js +1 -0
  96. package/richtexteditor/lang/rte-lang-uk.js +1 -0
  97. package/richtexteditor/lang/rte-lang-ur.js +1 -0
  98. package/richtexteditor/lang/rte-lang-vi.js +1 -0
  99. package/richtexteditor/lang/rte-lang-yua.js +1 -0
  100. package/richtexteditor/lang/rte-lang-zh-Hans.js +1017 -2
  101. package/richtexteditor/lang/rte-lang-zh-Hant.js +1017 -2
  102. package/richtexteditor/plugins/a11yenhance.js +2 -1
  103. package/richtexteditor/plugins/a11yenhance.min.js +1 -1
  104. package/richtexteditor/plugins/accessibilitychecker.js +252 -60
  105. package/richtexteditor/plugins/accessibilitychecker.min.js +1 -1
  106. package/richtexteditor/plugins/aitoolkit.js +966 -303
  107. package/richtexteditor/plugins/aitoolkit.min.js +7 -7
  108. package/richtexteditor/plugins/all_plugins.js +7001 -1078
  109. package/richtexteditor/plugins/all_plugins.min.js +62 -59
  110. package/richtexteditor/plugins/autocorrect.js +66 -31
  111. package/richtexteditor/plugins/autocorrect.min.js +1 -1
  112. package/richtexteditor/plugins/autoembed.js +17 -0
  113. package/richtexteditor/plugins/autoembed.min.js +1 -1
  114. package/richtexteditor/plugins/blocktypes.js +18 -9
  115. package/richtexteditor/plugins/blocktypes.min.js +1 -1
  116. package/richtexteditor/plugins/bookmarkcard.js +12 -5
  117. package/richtexteditor/plugins/bookmarkcard.min.js +2 -2
  118. package/richtexteditor/plugins/changecase.js +72 -19
  119. package/richtexteditor/plugins/changecase.min.js +1 -1
  120. package/richtexteditor/plugins/charlimit.js +62 -2
  121. package/richtexteditor/plugins/charlimit.min.js +2 -2
  122. package/richtexteditor/plugins/comments.js +458 -59
  123. package/richtexteditor/plugins/comments.min.js +4 -3
  124. package/richtexteditor/plugins/contentminimap.js +25 -6
  125. package/richtexteditor/plugins/contentminimap.min.js +1 -1
  126. package/richtexteditor/plugins/crossreference.js +1 -1
  127. package/richtexteditor/plugins/crossreference.min.js +1 -1
  128. package/richtexteditor/plugins/dialoga11y.js +26 -4
  129. package/richtexteditor/plugins/dialoga11y.min.js +1 -1
  130. package/richtexteditor/plugins/dictation.js +1 -1
  131. package/richtexteditor/plugins/documentimport.js +220 -51
  132. package/richtexteditor/plugins/documentimport.min.js +4 -4
  133. package/richtexteditor/plugins/documentoutline.js +47 -8
  134. package/richtexteditor/plugins/documentoutline.min.js +1 -1
  135. package/richtexteditor/plugins/docxexport.js +204 -32
  136. package/richtexteditor/plugins/docxexport.min.js +2 -2
  137. package/richtexteditor/plugins/draghandle.js +267 -3
  138. package/richtexteditor/plugins/draghandle.min.js +1 -1
  139. package/richtexteditor/plugins/emailtoolkit.js +28 -14
  140. package/richtexteditor/plugins/emailtoolkit.min.js +1 -1
  141. package/richtexteditor/plugins/emojiautocomplete.js +110 -56
  142. package/richtexteditor/plugins/emojiautocomplete.min.js +1 -1
  143. package/richtexteditor/plugins/footnotes.js +65 -11
  144. package/richtexteditor/plugins/footnotes.min.js +1 -1
  145. package/richtexteditor/plugins/formatpainter.js +10 -0
  146. package/richtexteditor/plugins/formatpainter.min.js +1 -1
  147. package/richtexteditor/plugins/formattingmarks.js +6 -6
  148. package/richtexteditor/plugins/formattingmarks.min.js +1 -1
  149. package/richtexteditor/plugins/gapcursor.js +60 -0
  150. package/richtexteditor/plugins/gapcursor.min.js +1 -1
  151. package/richtexteditor/plugins/ghostcomplete.js +1 -1
  152. package/richtexteditor/plugins/html2pdf.js +1 -1
  153. package/richtexteditor/plugins/html2pdf.min.js +1 -1
  154. package/richtexteditor/plugins/imageeditor.js +12 -6
  155. package/richtexteditor/plugins/imageeditor.min.js +1 -1
  156. package/richtexteditor/plugins/importstyles.js +1 -1
  157. package/richtexteditor/plugins/inlinecode.js +25 -0
  158. package/richtexteditor/plugins/inlinecode.min.js +1 -1
  159. package/richtexteditor/plugins/insertcode.js +21 -3
  160. package/richtexteditor/plugins/insertcode.min.js +4 -4
  161. package/richtexteditor/plugins/insertemoji.js +112 -15
  162. package/richtexteditor/plugins/insertemoji.min.js +1 -1
  163. package/richtexteditor/plugins/insertgallery.js +42 -36
  164. package/richtexteditor/plugins/insertgallery.min.js +1 -1
  165. package/richtexteditor/plugins/inserttemplate.js +33 -17
  166. package/richtexteditor/plugins/inserttemplate.min.js +1 -1
  167. package/richtexteditor/plugins/keyboarda11y.js +66 -3
  168. package/richtexteditor/plugins/keyboarda11y.min.js +1 -1
  169. package/richtexteditor/plugins/layouttable.js +20 -0
  170. package/richtexteditor/plugins/layouttable.min.js +1 -1
  171. package/richtexteditor/plugins/linkchecker.js +29 -9
  172. package/richtexteditor/plugins/linkchecker.min.js +1 -1
  173. package/richtexteditor/plugins/localdraft.js +51 -7
  174. package/richtexteditor/plugins/localdraft.min.js +1 -1
  175. package/richtexteditor/plugins/markdownexport.js +159 -0
  176. package/richtexteditor/plugins/markdownexport.min.js +2 -2
  177. package/richtexteditor/plugins/mathdialog.js +11 -5
  178. package/richtexteditor/plugins/mathdialog.min.js +1 -1
  179. package/richtexteditor/plugins/mentionplugin.js +88 -25
  180. package/richtexteditor/plugins/mentionplugin.min.js +1 -1
  181. package/richtexteditor/plugins/mermaiddiagram.js +9 -3
  182. package/richtexteditor/plugins/mermaiddiagram.min.js +2 -2
  183. package/richtexteditor/plugins/multilevellist.js +4 -0
  184. package/richtexteditor/plugins/multilevellist.min.js +1 -1
  185. package/richtexteditor/plugins/pdfexport.js +235 -35
  186. package/richtexteditor/plugins/pdfexport.min.js +12 -12
  187. package/richtexteditor/plugins/permanentpen.js +3 -3
  188. package/richtexteditor/plugins/permanentpen.min.js +1 -1
  189. package/richtexteditor/plugins/readabilitystats.js +25 -11
  190. package/richtexteditor/plugins/readabilitystats.min.js +1 -1
  191. package/richtexteditor/plugins/readaloud.js +29 -15
  192. package/richtexteditor/plugins/readaloud.min.js +1 -1
  193. package/richtexteditor/plugins/restrictedediting.js +166 -0
  194. package/richtexteditor/plugins/restrictedediting.min.js +2 -2
  195. package/richtexteditor/plugins/revisionhistory.js +169 -37
  196. package/richtexteditor/plugins/revisionhistory.min.js +3 -3
  197. package/richtexteditor/plugins/rubyannotation.js +19 -9
  198. package/richtexteditor/plugins/rubyannotation.min.js +1 -1
  199. package/richtexteditor/plugins/sanitizer.js +62 -3
  200. package/richtexteditor/plugins/sanitizer.min.js +1 -1
  201. package/richtexteditor/plugins/slashcommand.js +30 -16
  202. package/richtexteditor/plugins/slashcommand.min.js +2 -2
  203. package/richtexteditor/plugins/smartchips.js +36 -22
  204. package/richtexteditor/plugins/smartchips.min.js +2 -2
  205. package/richtexteditor/plugins/spellcheck.js +17 -8
  206. package/richtexteditor/plugins/spellcheck.min.js +2 -2
  207. package/richtexteditor/plugins/stateinspector.js +19 -9
  208. package/richtexteditor/plugins/stateinspector.min.js +2 -2
  209. package/richtexteditor/plugins/structured-content-bridge.js +56 -24
  210. package/richtexteditor/plugins/structured-content-bridge.min.js +7 -7
  211. package/richtexteditor/plugins/tableofcontents.js +5 -2
  212. package/richtexteditor/plugins/tableofcontents.min.js +1 -1
  213. package/richtexteditor/plugins/tabletools.js +388 -3
  214. package/richtexteditor/plugins/tabletools.min.js +1 -1
  215. package/richtexteditor/plugins/textdirection.js +18 -5
  216. package/richtexteditor/plugins/textdirection.min.js +1 -1
  217. package/richtexteditor/plugins/textpartlanguage.js +161 -32
  218. package/richtexteditor/plugins/textpartlanguage.min.js +1 -1
  219. package/richtexteditor/plugins/todolist.js +90 -6
  220. package/richtexteditor/plugins/todolist.min.js +1 -1
  221. package/richtexteditor/plugins/trackedchanges.js +1812 -25
  222. package/richtexteditor/plugins/trackedchanges.min.js +5 -3
  223. package/richtexteditor/plugins/wordexport.js +2 -2
  224. package/richtexteditor/plugins/yjscollab.js +9 -4
  225. package/richtexteditor/plugins/yjscollab.min.js +1 -1
  226. package/richtexteditor/plugins/zz_richtextbox_dialog_style.js +22 -13
  227. package/richtexteditor/plugins/zz_richtextbox_dialog_style.min.js +1 -1
  228. package/richtexteditor/rte-config.js +130 -50
  229. package/richtexteditor/rte-headless.js +19 -4
  230. package/richtexteditor/rte-webcomponent.js +89 -16
  231. package/richtexteditor/rte.js +132 -52
  232. package/scripts/build-angular.mjs +97 -0
  233. package/svelte/index.d.ts +2 -1
  234. package/svelte/index.js +80 -9
  235. package/vue/index.js +130 -34
  236. package/angular/component.ts +0 -297
  237. package/angular/index.ts +0 -24
@@ -1,19 +1,19 @@
1
- window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_pdfexport=RTE_Plugin_PdfExport,typeof RTE_DefaultConfig.pdfExport>"u"&&(RTE_DefaultConfig.pdfExport=!0);function RTE_Plugin_PdfExport(){var ae=this,M,N;ae.PluginName="PdfExport",ae.InitConfig=function(e){M=e},ae.InitEditor=function(e){N=e,M.pdfExport!==!1&&(N.getPdfBytes=function(t){return de(t||{})},N.exportToPdf=function(t,r){var n=de(r||{}),i=we(t)||we(M.pdfExportFileName)||Me();return We(n,i+".pdf")},N.downloadPdf=N.exportToPdf,N.attachEvent("exec_command_exportpdf",function(t){t.returnValue=!0,t.stopBubble=!0;try{N.exportToPdf()}catch(r){window.console&&console.error("pdfexport:",r)}}))};var G=72,se={letter:[612,792],legal:[612,1008],tabloid:[792,1224],a3:[842,1191],a4:[595,842],a5:[420,595]};function V(e,t){if(typeof e=="number"&&isFinite(e))return e*G;if(typeof e!="string")return t;var r=/^\s*(-?[\d.]+)\s*(mm|cm|in|px|pt)?\s*$/.exec(e);if(!r)return t;var n=parseFloat(r[1]);if(!isFinite(n))return t;switch(r[2]){case"mm":return n*G/25.4;case"cm":return n*G/2.54;case"pt":return n;case"px":return n*.75;default:return n*G}}function be(e){var t=null;try{typeof N.getDocumentPageSetup=="function"&&(t=N.getDocumentPageSetup())}catch{t=null}t=t||{};var r=String(e.format||t.format||"letter").toLowerCase(),n=se[r]||se.letter,i=String(e.orientation||t.orientation||"").toLowerCase()==="landscape",f=i?n[1]:n[0],s=i?n[0]:n[1],a=e.margins||t.margins||{},o=G/2;return{width:f,height:s,margin:{top:V(a.top,o),right:V(a.right,o),bottom:V(a.bottom,o),left:V(a.left,o)}}}var Q={helvetica:{css:"Arial, Helvetica, sans-serif",faces:["Helvetica","Helvetica-Bold","Helvetica-Oblique","Helvetica-BoldOblique"]},times:{css:'"Times New Roman", Times, serif',faces:["Times-Roman","Times-Bold","Times-Italic","Times-BoldItalic"]},courier:{css:'"Courier New", Courier, monospace',faces:["Courier","Courier-Bold","Courier-Oblique","Courier-BoldOblique"]}},te=32,oe=255,le={};function re(e,t){var r=e+":"+t;if(le[r])return le[r];var n=Q[e]||Q.helvetica,i=re.canvas||(re.canvas=document.createElement("canvas")),f=i.getContext("2d"),s=t&1?"bold ":"",a=t&2?"italic ":"";f.font=s+a+"100px "+n.css;for(var o=[],u=te;u<=oe;u++){var l=f.measureText(String.fromCharCode(u)).width;o.push(Math.round(l*10))}return le[r]=o,o}function Te(e,t,r){return(r<te||r>oe)&&(r=63),re(e,t)[r-te]||500}function ue(e,t,r,n){for(var i=0,f=0;f<e.length;f++)i+=Te(t,r,e.charCodeAt(f));return i*n/1e3}var Ce={8364:128,8218:130,402:131,8222:132,8230:133,8224:134,8225:135,710:136,8240:137,352:138,8249:139,338:140,381:142,8216:145,8217:146,8220:147,8221:148,8226:149,8211:150,8212:151,732:152,8482:153,353:154,8250:155,339:156,382:158,376:159};function W(e){for(var t="",r=0;r<e.length;r++){var n=e.charCodeAt(r);if(n<256){t+=String.fromCharCode(n);continue}var i=Ce[n];if(i){t+=String.fromCharCode(i);continue}if(n===160){t+=" ";continue}if(n>=8192&&n<=8202){t+=" ";continue}if(n===8722){t+="-";continue}t+="?"}return t}function H(e){return e.replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")}function Y(){this.objects=[]}Y.prototype.alloc=function(){return this.objects.push(null),this.objects.length},Y.prototype.set=function(e,t){this.objects[e-1]=t},Y.prototype.add=function(e){var t=this.alloc();return this.set(t,e),t},Y.prototype.build=function(e,t){var r=[],n=0;function i(m){var d=typeof m=="string"?he(m):m;return r.push(d),n+=d.length,n}i(`%PDF-1.4
2
- `),i(new Uint8Array([37,226,227,207,211,10]));for(var f=[],s=0;s<this.objects.length;s++){f[s]=n,i(s+1+` 0 obj
3
- `);var a=this.objects[s];if(a&&a.stream){var o=typeof a.stream=="string"?he(a.stream):a.stream;i(a.dict.replace("/Length 0","/Length "+o.length)+`
1
+ window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_pdfexport=RTE_Plugin_PdfExport,typeof RTE_DefaultConfig.pdfExport>"u"&&(RTE_DefaultConfig.pdfExport=!0);function RTE_Plugin_PdfExport(){function De(e,t){if(t==="a"||t==="A"){for(var r="",l=e;l>0;l=Math.floor((l-1)/26))r=String.fromCharCode(97+(l-1)%26)+r;return r?t==="A"?r.toUpperCase():r:String(e)}if((t==="i"||t==="I")&&e>0&&e<4e3){for(var a="",s=[1e3,900,500,400,100,90,50,40,10,9,5,4,1],f=["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"],n=0;n<s.length;n++)for(;e>=s[n];)a+=f[n],e-=s[n];return t==="I"?a.toUpperCase():a}return String(e)}var de=this,te,V;de.PluginName="PdfExport",de.InitConfig=function(e){te=e},de.InitEditor=function(e){V=e,te.pdfExport!==!1&&(V.getPdfBytes=function(t){return Le(t||{})},V.exportToPdf=function(t,r){var l=Le(r||{}),a=Ie(t)||Ie(te.pdfExportFileName)||Qe();return Ye(l,a+".pdf")},V.downloadPdf=V.exportToPdf,V.attachEvent("exec_command_exportpdf",function(t){t.returnValue=!0,t.stopBubble=!0;try{V.exportToPdf()}catch(r){window.console&&console.error("pdfexport:",r)}}))};var oe=72,Te={letter:[612,792],legal:[612,1008],tabloid:[792,1224],a3:[842,1191],a4:[595,842],a5:[420,595]};function le(e,t){if(typeof e=="number"&&isFinite(e))return e*oe;if(typeof e!="string")return t;var r=/^\s*(-?[\d.]+)\s*(mm|cm|in|px|pt)?\s*$/.exec(e);if(!r)return t;var l=parseFloat(r[1]);if(!isFinite(l))return t;switch(r[2]){case"mm":return l*oe/25.4;case"cm":return l*oe/2.54;case"pt":return l;case"px":return l*.75;default:return l*oe}}function Be(e){var t=null;try{typeof V.getDocumentPageSetup=="function"&&(t=V.getDocumentPageSetup())}catch{t=null}t=t||{};var r=String(e.format||t.format||"letter").toLowerCase(),l=Te[r]||Te.letter,a=String(e.orientation||t.orientation||"").toLowerCase()==="landscape",s=a?l[1]:l[0],f=a?l[0]:l[1],n=e.margins||t.margins||{},i=oe/2;return{width:s,height:f,margin:{top:le(n.top,i),right:le(n.right,i),bottom:le(n.bottom,i),left:le(n.left,i)}}}var se={helvetica:{css:"Arial, Helvetica, sans-serif",faces:["Helvetica","Helvetica-Bold","Helvetica-Oblique","Helvetica-BoldOblique"]},times:{css:'"Times New Roman", Times, serif',faces:["Times-Roman","Times-Bold","Times-Italic","Times-BoldItalic"]},courier:{css:'"Courier New", Courier, monospace',faces:["Courier","Courier-Bold","Courier-Oblique","Courier-BoldOblique"]}},he=32,ge=255,ye={};function ve(e,t){var r=e+":"+t;if(ye[r])return ye[r];var l=se[e]||se.helvetica,a=ve.canvas||(ve.canvas=document.createElement("canvas")),s=a.getContext("2d"),f=t&1?"bold ":"",n=t&2?"italic ":"";s.font=f+n+"100px "+l.css;for(var i=[],u=he;u<=ge;u++){var o=s.measureText(String.fromCharCode(u)).width;i.push(Math.round(o*10))}return ye[r]=i,i}function Pe(e,t,r){return(r<he||r>ge)&&(r=63),ve(e,t)[r-he]||500}function me(e,t,r,l){for(var a=0,s=0;s<e.length;s++)a+=Pe(t,r,e.charCodeAt(s));return a*l/1e3}var Fe={8364:128,8218:130,402:131,8222:132,8230:133,8224:134,8225:135,710:136,8240:137,352:138,8249:139,338:140,381:142,8216:145,8217:146,8220:147,8221:148,8226:149,8211:150,8212:151,732:152,8482:153,353:154,8250:155,339:156,382:158,376:159};function J(e){for(var t="",r=0;r<e.length;r++){var l=e.charCodeAt(r);if(l<256){t+=String.fromCharCode(l);continue}var a=Fe[l];if(a){t+=String.fromCharCode(a);continue}if(l===160){t+=" ";continue}if(l>=8192&&l<=8202){t+=" ";continue}if(l===8722){t+="-";continue}t+="?"}return t}function K(e){return e.replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")}function ue(){this.objects=[]}ue.prototype.alloc=function(){return this.objects.push(null),this.objects.length},ue.prototype.set=function(e,t){this.objects[e-1]=t},ue.prototype.add=function(e){var t=this.alloc();return this.set(t,e),t},ue.prototype.build=function(e,t){var r=[],l=0;function a(y){var p=typeof y=="string"?Se(y):y;return r.push(p),l+=p.length,l}a(`%PDF-1.4
2
+ `),a(new Uint8Array([37,226,227,207,211,10]));for(var s=[],f=0;f<this.objects.length;f++){s[f]=l,a(f+1+` 0 obj
3
+ `);var n=this.objects[f];if(n&&n.stream){var i=typeof n.stream=="string"?Se(n.stream):n.stream;a(n.dict.replace("/Length 0","/Length "+i.length)+`
4
4
  stream
5
- `),i(o),i(`
5
+ `),a(i),a(`
6
6
  endstream
7
- `)}else i(a+`
8
- `);i(`endobj
9
- `)}for(var u=n,l=`xref
7
+ `)}else a(n+`
8
+ `);a(`endobj
9
+ `)}for(var u=l,o=`xref
10
10
  0 `+(this.objects.length+1)+`
11
11
  0000000000 65535 f
12
- `,c=0;c<f.length;c++)l+=Se(f[c])+` 00000 n
13
- `;i(l),i(`trailer
12
+ `,v=0;v<s.length;v++)o+=Me(s[v])+` 00000 n
13
+ `;a(o),a(`trailer
14
14
  << /Size `+(this.objects.length+1)+" /Root "+e+" 0 R /Info "+t+` 0 R >>
15
- `),i(`startxref
15
+ `),a(`startxref
16
16
  `+u+`
17
17
  %%EOF
18
- `);for(var h=new Uint8Array(n),v=0,p=0;p<r.length;p++)h.set(r[p],v),v+=r[p].length;return h};function Se(e){for(var t=String(e);t.length<10;)t="0"+t;return t}function he(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)&255;return t}function _(e,t){var r={bold:t.bold,italic:t.italic,underline:t.underline,strike:t.strike,size:t.size,color:t.color,mono:t.mono,link:t.link},n=e.tagName?e.tagName.toLowerCase():"";(n==="b"||n==="strong")&&(r.bold=!0),(n==="i"||n==="em")&&(r.italic=!0),(n==="u"||n==="ins")&&(r.underline=!0),(n==="s"||n==="strike"||n==="del")&&(r.strike=!0),(n==="code"||n==="kbd"||n==="samp"||n==="pre")&&(r.mono=!0),n==="a"&&e.getAttribute("href")&&(r.link=e.getAttribute("href"),r.color=[0,.33,.8],r.underline=!0),(n==="sup"||n==="sub")&&(r.size=r.size*.75);var i=e.style;if(i){if(/bold|^[6-9]00$/.test(i.fontWeight||"")&&(r.bold=!0),(i.fontStyle==="italic"||i.fontStyle==="oblique")&&(r.italic=!0),(i.textDecorationLine||i.textDecoration||"").indexOf("underline")>=0&&(r.underline=!0),(i.textDecorationLine||i.textDecoration||"").indexOf("line-through")>=0&&(r.strike=!0),i.color){var f=ke(i.color);f&&(r.color=f)}if(i.fontSize){var s=V(i.fontSize,null);s&&(r.size=s)}}return r}function ke(e){var t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.replace(/\s/g,""));if(t){var r=t[1];return r.length===3&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]),[parseInt(r.substr(0,2),16)/255,parseInt(r.substr(2,2),16)/255,parseInt(r.substr(4,2),16)/255]}var n=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i.exec(e);return n?[n[1]/255,n[2]/255,n[3]/255]:null}var q={h1:2,h2:1.6,h3:1.35,h4:1.15,h5:1,h6:.9};function Z(e,t,r){this.geom=e,this.baseSize=t,this.family=r,this.contentWidth=e.width-e.margin.left-e.margin.right,this.blocks=[]}Z.prototype.runsOf=function(e,t){var r=[],n=this;return(function i(f,s){for(var a=0;a<f.childNodes.length;a++){var o=f.childNodes[a];if(o.nodeType===3){var u=(o.nodeValue||"").replace(/\s+/g," ");u&&r.push({text:u,style:s});continue}if(o.nodeType===1){var l=o.tagName.toLowerCase();if(l==="br"){r.push({br:!0,style:s});continue}if(l==="img"){r.push({img:o,style:s});continue}l==="script"||l==="style"||i(o,_(o,s))}}})(e,t),r},Z.prototype.wrap=function(e,t,r){var n=[],i=[],f=0,s=this,a=this.baseSize;function o(){for(;i.length&&/^\s+$/.test(i[i.length-1].text||"");)i.pop();n.push({parts:i,width:f,size:a}),i=[],f=0,a=s.baseSize}for(var u=0;u<e.length;u++){var l=e[u];if(l.br){o();continue}if(l.img){var c=ce(l.img,t);i.length&&o(),n.push({parts:[{img:l.img,w:c.w,h:c.h,style:l.style}],width:c.w,size:c.h,image:!0});continue}for(var h=(l.style.bold?1:0)|(l.style.italic?2:0),v=l.style.mono?"courier":this.family,p=l.text.split(/(\s+)/),m=0;m<p.length;m++){var d=p[m];if(d){var x=ue(W(d),v,h,l.style.size);f+x>t&&i.length&&!/^\s+$/.test(d)&&(o(),/^\s+$/.test(d))||(i.push({text:d,style:l.style,family:v,styleIndex:h,w:x}),f+=x,l.style.size>a&&(a=l.style.size))}}}i.length&&o(),n.length||n.push({parts:[],width:0,size:this.baseSize});for(var w=0;w<n.length;w++)n[w].height=n[w].image?n[w].size:n[w].size*r;return n};function ce(e,t){var r=e.naturalWidth||e.width||0,n=e.naturalHeight||e.height||0;if(!r||!n)return{w:0,h:0};var i=r*.75,f=n*.75;return i>t&&(f=f*t/i,i=t),{w:i,h:f}}Z.prototype.run=function(e){var t=this,r={bold:!1,italic:!1,underline:!1,strike:!1,size:this.baseSize,color:[0,0,0],mono:!1,link:null};function n(a){if(!a||!a.style)return 0;var o=a.style.marginLeft||a.style.paddingLeft||"",u=/^\s*(-?[\d.]+)\s*([a-z%]*)\s*$/i.exec(o);if(!u)return 0;var l=parseFloat(u[1]);if(!l||l<=0)return 0;var c=(u[2]||"px").toLowerCase(),h=c==="px"?l:c==="pt"?l*(4/3):c==="in"?l*96:c==="cm"?l*37.795:c==="mm"?l*3.7795:c==="em"||c==="rem"?l*16:0;return h*.75}function i(a,o,u,l,c,h,v){var p=a.tagName.toLowerCase(),m=_(a,o),d="left",x=a.style&&a.style.textAlign||"";(x==="center"||x==="right"||x==="justify")&&(d=x),q[p]&&(m.size=t.baseSize*q[p],m.bold=!0),p==="pre"&&(m.mono=!0);var w=t.contentWidth-u,y=t.runsOf(a,m),k=t.wrap(y,w,p==="pre"?1.25:1.4);t.blocks.push({type:"text",lines:k,indent:u,align:d,spaceBefore:q[p]?m.size*.6:t.baseSize*.35,spaceAfter:q[p]?m.size*.3:t.baseSize*.35,marker:l||null,markerStyle:m,keepWithNext:!!q[p],rule:p==="blockquote"?"quote":null,role:v||(q[p]?"H"+p.charAt(1):p==="blockquote"?"BlockQuote":"P"),listId:c||null,listOrdered:!!h})}function f(a,o,u,l){for(var c=0;c<a.childNodes.length;c++){var h=a.childNodes[c];if(h.nodeType===3){if(!(h.nodeValue||"").trim())continue;t.blocks.push({type:"text",lines:t.wrap([{text:h.nodeValue.replace(/\s+/g," "),style:o}],t.contentWidth-u,1.4),indent:u,align:"left",spaceBefore:0,spaceAfter:t.baseSize*.35});continue}if(h.nodeType===1){var v=h.tagName.toLowerCase();if(!(v==="script"||v==="style"||v==="noscript")){if(h.getAttribute&&h.getAttribute("data-rte-page-break")!==null){t.blocks.push({type:"pagebreak"});continue}if(h.style&&/always|page/.test(h.style.pageBreakBefore||h.style.breakBefore||"")&&t.blocks.push({type:"pagebreak"}),v==="hr"){t.blocks.push({type:"rule",indent:u});continue}if(v==="ul"||v==="ol"){for(var p=parseInt(h.getAttribute("start")||"1",10)||1,m="L"+(t.listSeq=(t.listSeq||0)+1),d=0;d<h.childNodes.length;d++){var x=h.childNodes[d];if(!(x.nodeType!==1||x.tagName.toLowerCase()!=="li")){var w=v==="ol"?p+++".":"\u2022";i(x,_(x,o),u+t.baseSize*1.6,w,m,v==="ol"),s(x,_(x,o),u+t.baseSize*1.6)}}continue}if(v==="table"){t.table(h,_(h,o),u);continue}if(v==="img"){var y=ce(h,t.contentWidth-u);y.w&&t.blocks.push({type:"text",role:"Figure",alt:h.getAttribute("alt")||"",lines:[{parts:[{img:h,w:y.w,h:y.h,style:o}],width:y.w,size:y.h,height:y.h,image:!0}],indent:u,align:"left",spaceBefore:4,spaceAfter:4});continue}if(ve(v)){var k=(v==="blockquote"?t.baseSize*1.5:0)+n(h),C=v==="blockquote"?"BlockQuote":l;if(ze(h)){f(h,_(h,o),u+k,C);continue}i(h,o,u+k,null,null,!1,C);continue}i(h,o,u,null)}}}}function s(a,o,u){for(var l=0;l<a.childNodes.length;l++){var c=a.childNodes[l];if(c.nodeType===1){var h=c.tagName.toLowerCase();(h==="ul"||h==="ol")&&f({childNodes:[c]},o,u)}}}return f(e,r,0),this.blocks};function ve(e){return/^(p|div|h[1-6]|blockquote|pre|section|article|header|footer|main|aside|figure|figcaption|dl|dd|dt|li|address)$/.test(e)}function ze(e){for(var t=0;t<e.childNodes.length;t++){var r=e.childNodes[t];if(r.nodeType===1&&(ve(r.tagName.toLowerCase())||/^(ul|ol|table|hr)$/.test(r.tagName.toLowerCase())))return!0}return!1}Z.prototype.table=function(e,t,r){for(var n=this,i=[],f=e.getElementsByTagName("tr"),s=0,a=0;a<f.length;a++){for(var o=[],u=0;u<f[a].childNodes.length;u++){var l=f[a].childNodes[u];if(l.nodeType===1){var c=l.tagName.toLowerCase();c!=="td"&&c!=="th"||o.push({node:l,header:c==="th"})}}o.length&&(i.push(o),o.length>s&&(s=o.length))}if(i.length){for(var h=this.contentWidth-r,v=h/s,p=4,m=[],d=0;d<i.length;d++){for(var x=[],w=0,y=0;y<i[d].length;y++){var k=_(i[d][y].node,t);i[d][y].header&&(k.bold=!0);for(var C=n.wrap(n.runsOf(i[d][y].node,k),v-p*2,1.35),z=0,I=0;I<C.length;I++)z+=C[I].height;z>w&&(w=z),x.push({lines:C,header:i[d][y].header})}m.push({cells:x,height:w+p*2,header:i[d][0]&&i[d][0].header})}this.blocks.push({type:"table",rows:m,colWidth:v,cols:s,indent:r,pad:p,spaceBefore:this.baseSize*.5,spaceAfter:this.baseSize*.5})}};function de(e){var t=String(e.font||M.pdfExportFont||"helvetica").toLowerCase();Q[t]||(t="helvetica");var r=Number(e.fontSize||M.pdfExportBaseFontSize||11);(!isFinite(r)||r<=0)&&(r=11);var n=be(e),i=document.createElement("div");i.innerHTML=N.getHTMLCode()||"";var f=new Z(n,r,t),s=f.run(i),a=Ee(s,n,r);return Re(a,n,t,r,e)}function Ee(e,t,r){var n=t.height-t.margin.top,i=t.margin.bottom,f=[],s=[],a=n;function o(){f.push(s),s=[],a=n}for(var u=0;u<e.length;u++){var l=e[u];if(l.type==="pagebreak"){s.length&&o();continue}if(l.type==="rule"){a-r<i&&o(),a-=r*.6,s.push({op:"rule",y:a,indent:l.indent}),a-=r*.6;continue}if(l.type==="table"){a-=l.spaceBefore;for(var c=0;c<l.rows.length;c++){var h=l.rows[c];a-h.height<i&&(o(),l.rows[0]&&l.rows[0].header&&c>0&&(s.push({op:"row",row:l.rows[0],y:a,block:l}),a-=l.rows[0].height)),s.push({op:"row",row:h,y:a,block:l}),a-=h.height}a-=l.spaceAfter;continue}a-=l.spaceBefore;for(var v=0;v<l.lines.length;v++){var p=l.lines[v];a-p.height<i&&o(),s.push({op:"line",line:p,y:a,block:l,first:v===0}),a-=p.height}if(a-=l.spaceAfter,l.keepWithNext&&s.length&&e[u+1]&&e[u+1].type!=="pagebreak"){var m=Ae(e[u+1]);if(a-m<i){for(var d=[];s.length&&s[s.length-1].block===l;)d.unshift(s.pop());if(s.length){o();for(var x=0;x<d.length;x++)d[x].y=a,s.push(d[x]),a-=d[x].line.height}else for(var w=0;w<d.length;w++)s.push(d[w])}}}return(s.length||!f.length)&&f.push(s),f}function Ae(e){return e.type==="table"?e.rows[0]?e.rows[0].height:0:e.lines&&e.lines[0]?e.lines[0].height:0}function Re(e,t,r,n,i){var f=new Y,s=Q[r],a=Q.courier,o={},u=[];function l(B,F,O,T){var A=re(F,O),P=f.add("<< /Type /Font /Subtype /Type1 /BaseFont /"+B+" /Encoding /WinAnsiEncoding /FirstChar "+te+" /LastChar "+oe+" /Widths ["+A.join(" ")+"] >>");o[T]=P,u.push("/"+T+" "+P+" 0 R")}for(var c=0;c<4;c++)l(s.faces[c],r,c,"F"+c),l(a.faces[c],"courier",c,"M"+c);var h={},v=[];function p(B){var F=B.getAttribute("src")||"";if(h[F])return h[F];var O=Fe(B);if(!O)return null;var T=f.add({dict:"<< /Type /XObject /Subtype /Image /Width "+O.width+" /Height "+O.height+" /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length 0 >>",stream:O.bytes}),A="Im"+(v.length+1);return h[F]={id:T,alias:A},v.push("/"+A+" "+T+" 0 R"),h[F]}for(var m=[],d=[],x=[],w=0;w<e.length;w++)m.push(f.alloc()),d.push(f.alloc()),x.push([]);for(var y=f.alloc(),k=[],C=0;C<e.length;C++){var z=new ne(C),I=De(e[C],t,r,n,p,C+1,e.length,i,z);f.set(d[C],{dict:"<< /Length 0 >>",stream:I.content}),k.push(I.marks);for(var S=0;S<I.links.length;S++){var L=I.links[S];x[C].push(f.add("<< /Type /Annot /Subtype /Link /Rect ["+g(L.x0)+" "+g(L.y0)+" "+g(L.x1)+" "+g(L.y1)+"] /Border [0 0 0] /A << /S /URI /URI ("+H(W(L.href))+") >> >>"))}}for(var b=Ie(f,k,m),R=0;R<e.length;R++)f.set(m[R],"<< /Type /Page /Parent "+y+" 0 R /MediaBox [0 0 "+g(t.width)+" "+g(t.height)+"] /Resources << /Font << "+u.join(" ")+" >>"+(v.length?" /XObject << "+v.join(" ")+" >>":"")+" >> /Contents "+d[R]+" 0 R /StructParents "+R+(x[R].length?" /Annots ["+x[R].map(function(B){return B+" 0 R"}).join(" ")+"]":"")+" >>");f.set(y,"<< /Type /Pages /Count "+e.length+" /Kids ["+m.map(function(B){return B+" 0 R"}).join(" ")+"] >>");var E=i.title||M.pdfExportTitle||document.title||"Document",J=i.author||M.pdfExportAuthor||"",U=f.add("<< /Type /Catalog /Pages "+y+" 0 R /Lang ("+H(String(i.lang||document.documentElement.lang||"en"))+") /MarkInfo << /Marked true >> /StructTreeRoot "+b.rootId+" 0 R /ViewerPreferences << /DisplayDocTitle true >> >>"),ie=f.add("<< /Title ("+H(W(String(E)))+")"+(J?" /Author ("+H(W(String(J)))+")":"")+" /Producer (RichTextEditor) /Creator (RichTextEditor) /CreationDate ("+Le(new Date)+") >>");return f.build(U,ie)}function Ie(e,t,r){var n=e.alloc(),i=[],f=[];function s(T,A){var P={id:e.alloc(),role:T,kids:[],extra:A||"",children:[],parent:null};return i.push(P),P}for(var a=s("Document"),o=new Map,u=new Map,l=new Map,c=new Map,h=new Map,v=new Map,p=new Map,m=0;m<t.length;m++){var d=t[m];f[m]=[];for(var x=0;x<d.length;x++){var w=d[x].owner,y=d[x].mcid,k=z(w);k.kids.push({page:m,mcid:y}),f[m][y]=k.id}}function C(T,A){A.parent||(A.parent=T,T.children.push(A))}function z(T){if(T.kind==="cell"){var A=h.get(T.block);A||(A=s("Table"),h.set(T.block,A),C(a,A));var P=v.get(T.row);P||(P=s("TR"),v.set(T.row,P),C(A,P));var j=p.get(T.row);return j||(j={},p.set(T.row,j)),j[T.col]||(j[T.col]=s(T.header?"TH":"TD",T.header?" /Scope /Column":""),C(P,j[T.col])),j[T.col]}var D=T.block,fe=a;if(D.listId){var K=o.get(D.listId);K||(K=s("L"),o.set(D.listId,K),C(a,K));var X=u.get(D);X||(X=s("LI"),u.set(D,X),C(K,X)),fe=X}if(T.kind==="lbl"){var ee=l.get(D);return ee||(ee=s("Lbl"),l.set(D,ee),C(fe,ee)),ee}var $=c.get(D);if(!$){if(D.listId)$=s("LBody");else{var He=D.role==="Figure"?" /Alt ("+H(W(D.alt||"Image"))+")":"";$=s(D.role||"P",He)}c.set(D,$),C(fe,$)}return $}for(var I=0;I<i.length;I++){for(var S=i[I],L=[],b=0;b<S.children.length;b++)L.push(S.children[b].id+" 0 R");for(var R=0;R<S.kids.length;R++)L.push("<< /Type /MCR /Pg "+r[S.kids[R].page]+" 0 R /MCID "+S.kids[R].mcid+" >>");var E=S.parent?S.parent.id:n;e.set(S.id,"<< /Type /StructElem /S /"+S.role+" /P "+E+" 0 R"+S.extra+(L.length?" /K ["+L.join(" ")+"]":"")+" >>")}for(var J=[],U=0;U<f.length;U++){for(var ie=f[U]||[],B=[],F=0;F<ie.length;F++)B.push((ie[F]||a.id)+" 0 R");J.push(U+" ["+B.join(" ")+"]")}var O=e.add("<< /Nums ["+J.join(" ")+"] >>");return e.set(n,"<< /Type /StructTreeRoot /K ["+a.id+" 0 R] /ParentTree "+O+" 0 R /ParentTreeNextKey "+f.length+" >>"),{rootId:n}}function Le(e){function t(r){return(r<10?"0":"")+r}return"D:"+e.getFullYear()+t(e.getMonth()+1)+t(e.getDate())+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())+"Z"}function g(e){return(Math.round(e*100)/100).toString()}function ne(e){this.pageIndex=e,this.next=0,this.marks=[]}ne.prototype.open=function(e,t,r){var n=this.next++;return this.marks.push({owner:r,mcid:n,role:t}),e.push("/"+t+" << /MCID "+n+" >> BDC"),n},ne.prototype.close=function(e){e.push("EMC")},ne.prototype.artifact=function(e,t){e.push("/Artifact BMC"),t(),e.push("EMC")};function De(e,t,r,n,i,f,s,a,o){for(var u=[],l=[],c=t.margin.left,h=0;h<e.length;h++){var v=e[h];if(v.op==="rule"){o.artifact(u,function(){u.push("0.8 0.8 0.8 RG 0.5 w "+g(c+v.indent)+" "+g(v.y)+" m "+g(t.width-t.margin.right)+" "+g(v.y)+" l S")});continue}if(v.op==="row"){Pe(v,t,u,c,i,l,o);continue}xe(v,t,u,c,r,i,l,o)}var p=Ne(a);return(p.header||p.footer)&&o.artifact(u,function(){p.header&&ge(u,p.header,t,t.height-t.margin.top*.55,r,n*.85,f,s),p.footer&&ge(u,p.footer,t,t.margin.bottom*.55,r,n*.85,f,s)}),{content:u.join(`
19
- `),links:l,marks:o.marks}}function Ne(e){var t=null;try{typeof N.getDocumentPageSetup=="function"&&(t=N.getDocumentPageSetup())}catch{}return t=t||{},{header:e.headerText||M.pdfExportHeader||pe(t.headerHtml)||"",footer:e.footerText||M.pdfExportFooter||pe(t.footerHtml)||""}}function pe(e){if(!e||typeof e!="string")return"";var t=document.createElement("div");return t.innerHTML=e,(t.textContent||"").replace(/\s+/g," ").trim()}function ge(e,t,r,n,i,f,s,a){var o=String(t).replace(/\{page\}/g,s).replace(/\{total\}/g,a),u=W(o),l=ue(u,i,0,f),c=(r.width-l)/2;e.push("BT /F0 "+g(f)+" Tf 0.4 0.4 0.4 rg "+g(c)+" "+g(n)+" Td ("+H(u)+") Tj ET")}function xe(e,t,r,n,i,f,s,a){var o=e.line,u=e.block,l=n+(u.indent||0),c=t.width-t.margin.right-l;if(u.align==="center"?l+=(c-o.width)/2:u.align==="right"&&(l+=c-o.width),u.rule==="quote"&&!o.image){var h=g(n+u.indent-8),v=function(){r.push("0.8 0.8 0.85 RG 2 w "+h+" "+g(e.y-o.height+4)+" m "+h+" "+g(e.y+o.size*.8)+" l S")};a?a.artifact(r,v):v()}if(e.first&&u.marker){var p=u.markerStyle||{size:o.size,color:[0,0,0]},m=ue(u.marker,i,0,p.size);a&&a.open(r,"Lbl",{kind:"lbl",block:u}),r.push("BT /F0 "+g(p.size)+" Tf "+me(p.color)+" "+g(l-m-6)+" "+g(e.y-o.size*.85)+" Td ("+H(W(u.marker))+") Tj ET"),a&&a.close(r)}a&&a.open(r,o.image?"Figure":"Span",e.cell||{kind:"body",block:u});for(var d=[],x=l,w=0;w<o.parts.length;w++){var y=o.parts[w];if(y.img){d.push({img:y,x,w:y.w}),x+=y.w;continue}var k=y.style,C=(k.mono?"M":"F")+y.styleIndex,z=d.length?d[d.length-1]:null,I=z&&!z.img&&z.alias===C&&z.style.size===k.size&&Be(z.style.color,k.color)&&z.style.underline===k.underline&&z.style.strike===k.strike&&z.style.link===k.link;I?(z.text+=y.text,z.w+=y.w):d.push({text:y.text,style:k,alias:C,x,w:y.w}),x+=y.w}for(var S=e.y-o.size*.85,L=0;L<d.length;L++){var b=d[L];if(b.img){var R=f(b.img.img);R&&r.push("q "+g(b.w)+" 0 0 "+g(b.img.h)+" "+g(b.x)+" "+g(e.y-b.img.h)+" cm /"+R.alias+" Do Q");continue}if(!(!b.text||/^\s+$/.test(b.text))){var E=b.style;r.push("BT /"+b.alias+" "+g(E.size)+" Tf "+me(E.color)+" "+g(b.x)+" "+g(S)+" Td ("+H(W(b.text))+") Tj ET"),E.underline&&r.push(ye(E.color)+" 0.5 w "+g(b.x)+" "+g(S-E.size*.12)+" m "+g(b.x+b.w)+" "+g(S-E.size*.12)+" l S"),E.strike&&r.push(ye(E.color)+" 0.5 w "+g(b.x)+" "+g(S+E.size*.28)+" m "+g(b.x+b.w)+" "+g(S+E.size*.28)+" l S"),E.link&&s.push({href:E.link,x0:b.x,y0:S-2,x1:b.x+b.w,y1:S+E.size})}}a&&a.close(r)}function Be(e,t){return e=e||[0,0,0],t=t||[0,0,0],e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Pe(e,t,r,n,i,f,s){for(var a=e.block,o=e.row,u=n+a.indent,l=e.y,c=e.y-o.height,h=0;h<o.cells.length;h++){var v=u+h*a.colWidth,p=function(){o.header&&r.push("0.94 0.95 0.97 rg "+g(v)+" "+g(c)+" "+g(a.colWidth)+" "+g(o.height)+" re f"),r.push("0.75 0.78 0.82 RG 0.5 w "+g(v)+" "+g(c)+" "+g(a.colWidth)+" "+g(o.height)+" re S")};s?s.artifact(r,p):p();for(var m={kind:"cell",block:a,row:o,col:h,header:!!o.cells[h].header},d=l-a.pad,x=o.cells[h].lines,w=0;w<x.length;w++)xe({line:x[w],y:d,block:{indent:0,align:"left"},first:w===0,cell:m},{width:v+a.colWidth+t.margin.right,margin:{right:t.margin.right}},r,v+a.pad,"helvetica",i,f,s),d-=x[w].height}}function me(e){return e=e||[0,0,0],g(e[0])+" "+g(e[1])+" "+g(e[2])+" rg"}function ye(e){return e=e||[0,0,0],g(e[0])+" "+g(e[1])+" "+g(e[2])+" RG"}function Fe(e){try{var t=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(!t||!r)return null;var n=2e3,i=Math.min(1,n/Math.max(t,r)),f=Math.max(1,Math.round(t*i)),s=Math.max(1,Math.round(r*i)),a=document.createElement("canvas");a.width=f,a.height=s;var o=a.getContext("2d");o.fillStyle="#ffffff",o.fillRect(0,0,f,s),o.drawImage(e,0,0,f,s);var u=a.toDataURL("image/jpeg",.92),l=u.indexOf(",");if(l<0)return null;for(var c=atob(u.slice(l+1)),h=new Uint8Array(c.length),v=0;v<c.length;v++)h[v]=c.charCodeAt(v);return{bytes:h,width:f,height:s}}catch{return null}}function we(e){return!e||typeof e!="string"?"":e.replace(/\.pdf$/i,"").replace(/[\\/:*?"<>|]+/g,"").trim().slice(0,120)}function Me(){var e=new Date;function t(r){return(r<10?"0":"")+r}return"Export-"+String(e.getFullYear()).slice(2)+t(e.getMonth()+1)+t(e.getDate())+"-"+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())}function We(e,t){var r=new Blob([e],{type:"application/pdf"}),n=URL.createObjectURL(r),i=document.createElement("a");return i.href=n,i.download=t,document.body.appendChild(i),i.click(),document.body.removeChild(i),setTimeout(function(){URL.revokeObjectURL(n)},4e3),t}}
18
+ `);for(var c=new Uint8Array(l),h=0,d=0;d<r.length;d++)c.set(r[d],h),h+=r[d].length;return c};function Me(e){for(var t=String(e);t.length<10;)t="0"+t;return t}function Se(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)&255;return t}function ae(e,t){var r={bold:t.bold,italic:t.italic,underline:t.underline,strike:t.strike,size:t.size,color:t.color,mono:t.mono,link:t.link,lang:t.lang},l=e.getAttribute?e.getAttribute("lang"):"";l&&(r.lang=l);var a=e.tagName?e.tagName.toLowerCase():"";(a==="b"||a==="strong")&&(r.bold=!0),(a==="i"||a==="em")&&(r.italic=!0),(a==="u"||a==="ins")&&(r.underline=!0),(a==="s"||a==="strike"||a==="del")&&(r.strike=!0),(a==="code"||a==="kbd"||a==="samp"||a==="pre")&&(r.mono=!0),a==="a"&&e.getAttribute("href")&&(r.link=e.getAttribute("href"),r.color=[0,.33,.8],r.underline=!0),(a==="sup"||a==="sub")&&(r.size=r.size*.75);var s=e.style;if(s){if(/bold|^[6-9]00$/.test(s.fontWeight||"")&&(r.bold=!0),(s.fontStyle==="italic"||s.fontStyle==="oblique")&&(r.italic=!0),(s.textDecorationLine||s.textDecoration||"").indexOf("underline")>=0&&(r.underline=!0),(s.textDecorationLine||s.textDecoration||"").indexOf("line-through")>=0&&(r.strike=!0),s.color){var f=Oe(s.color);f&&(r.color=f)}if(s.fontSize){var n=le(s.fontSize,null);n&&(r.size=n)}}return r}function Oe(e){var t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.replace(/\s/g,""));if(t){var r=t[1];return r.length===3&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]),[parseInt(r.substr(0,2),16)/255,parseInt(r.substr(2,2),16)/255,parseInt(r.substr(4,2),16)/255]}var l=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i.exec(e);return l?[l[1]/255,l[2]/255,l[3]/255]:null}var ie={h1:2,h2:1.6,h3:1.35,h4:1.15,h5:1,h6:.9};function fe(e,t,r){this.geom=e,this.baseSize=t,this.family=r,this.contentWidth=e.width-e.margin.left-e.margin.right,this.blocks=[]}fe.prototype.runsOf=function(e,t){var r=[],l=this;return(function a(s,f){for(var n=0;n<s.childNodes.length;n++){var i=s.childNodes[n];if(i.nodeType===3){var u=(i.nodeValue||"").replace(/\s+/g," ");u&&r.push({text:u,style:f});continue}if(i.nodeType===1){var o=i.tagName.toLowerCase();if(o==="br"){r.push({br:!0,style:f});continue}if(o==="img"){r.push({img:i,style:f});continue}o==="script"||o==="style"||a(i,ae(i,f))}}})(e,t),r},fe.prototype.wrap=function(e,t,r){var l=[],a=[],s=0,f=this,n=this.baseSize;function i(){for(;a.length&&/^\s+$/.test(a[a.length-1].text||"");)a.pop();l.push({parts:a,width:s,size:n}),a=[],s=0,n=f.baseSize}for(var u=0;u<e.length;u++){var o=e[u];if(o.br){i();continue}if(o.img){var v=xe(o.img,t);a.length&&i(),l.push({parts:[{img:o.img,w:v.w,h:v.h,style:o.style}],width:v.w,size:v.h,image:!0});continue}for(var c=(o.style.bold?1:0)|(o.style.italic?2:0),h=o.style.mono?"courier":this.family,d=o.text.split(/(\s+)/),y=0;y<d.length;y++){var p=d[y];if(p){var g=me(J(p),h,c,o.style.size);s+g>t&&a.length&&!/^\s+$/.test(p)&&(i(),/^\s+$/.test(p))||(a.push({text:p,style:o.style,family:h,styleIndex:c,w:g}),s+=g,o.style.size>n&&(n=o.style.size))}}}a.length&&i(),l.length||l.push({parts:[],width:0,size:this.baseSize});for(var b=0;b<l.length;b++)l[b].height=l[b].image?l[b].size:l[b].size*r;return l};function xe(e,t){var r=e.naturalWidth||e.width||0,l=e.naturalHeight||e.height||0;if(!r||!l)return{w:0,h:0};var a=r*.75,s=l*.75;return a>t&&(s=s*t/a,a=t),{w:a,h:s}}fe.prototype.run=function(e){var t=this,r={bold:!1,italic:!1,underline:!1,strike:!1,size:this.baseSize,color:[0,0,0],mono:!1,link:null};function l(i){if(!i||!i.style)return 0;var u=i.style.marginLeft||i.style.paddingLeft||"",o=/^\s*(-?[\d.]+)\s*([a-z%]*)\s*$/i.exec(u);if(!o)return 0;var v=parseFloat(o[1]);if(!v||v<=0)return 0;var c=(o[2]||"px").toLowerCase(),h=c==="px"?v:c==="pt"?v*(4/3):c==="in"?v*96:c==="cm"?v*37.795:c==="mm"?v*3.7795:c==="em"||c==="rem"?v*16:0;return h*.75}function a(i){for(var u=i;u&&u.nodeType===1&&u.tagName.toLowerCase()!=="body";u=u.parentNode)if(u.getAttribute("lang"))return u.getAttribute("lang");for(var o=null,v=i.childNodes,c=0;c<v.length;c++){if(v[c].nodeType===3&&v[c].nodeValue.replace(/[\s\u200b\u00a0]/g,""))return"";if(v[c].nodeType===1){if(o)return"";o=v[c]}}return o&&o.getAttribute("lang")?o.getAttribute("lang"):""}function s(i,u,o,v,c,h,d){var y=i.tagName.toLowerCase(),p=ae(i,u),g="left",b=i.style&&i.style.textAlign||"";(b==="center"||b==="right"||b==="justify")&&(g=b),ie[y]&&(p.size=t.baseSize*ie[y],p.bold=!0),y==="pre"&&(p.mono=!0);var k=t.contentWidth-o,D=t.runsOf(i,p),T=t.wrap(D,k,y==="pre"?1.25:1.4);t.blocks.push({type:"text",lines:T,indent:o,align:g,lang:a(i),spaceBefore:ie[y]?p.size*.6:t.baseSize*.35,spaceAfter:ie[y]?p.size*.3:t.baseSize*.35,marker:v||null,markerStyle:p,keepWithNext:!!ie[y],rule:y==="blockquote"?"quote":null,role:d||(ie[y]?"H"+y.charAt(1):y==="blockquote"?"BlockQuote":"P"),listId:c||null,listOrdered:!!h})}function f(i,u,o,v){for(var c=0;c<i.childNodes.length;c++){var h=i.childNodes[c];if(h.nodeType===3){if(!(h.nodeValue||"").trim())continue;t.blocks.push({type:"text",lines:t.wrap([{text:h.nodeValue.replace(/\s+/g," "),style:u}],t.contentWidth-o,1.4),indent:o,align:"left",spaceBefore:0,spaceAfter:t.baseSize*.35});continue}if(h.nodeType===1){var d=h.tagName.toLowerCase();if(!(d==="script"||d==="style"||d==="noscript")){if(h.getAttribute&&h.getAttribute("data-rte-page-break")!==null){t.blocks.push({type:"pagebreak"});continue}if(h.style&&/always|page/.test(h.style.pageBreakBefore||h.style.breakBefore||"")&&t.blocks.push({type:"pagebreak"}),d==="hr"){t.blocks.push({type:"rule",indent:o});continue}if(d==="ul"||d==="ol"){var y=parseInt(h.getAttribute("start"),10);isNaN(y)&&(y=1);for(var p=String(h.style&&h.style.listStyleType||"").toLowerCase(),g=h.getAttribute("type")||"",b=/^(lower-alpha|lower-latin)$/.test(p)||g==="a"?"a":/^(upper-alpha|upper-latin)$/.test(p)||g==="A"?"A":p==="lower-roman"||g==="i"?"i":p==="upper-roman"||g==="I"?"I":"1",k="L"+(t.listSeq=(t.listSeq||0)+1),D=0;D<h.childNodes.length;D++){var T=h.childNodes[D];if(!(T.nodeType!==1||T.tagName.toLowerCase()!=="li")){var z=d==="ol"?De(y++,b)+".":"\u2022";h.classList&&h.classList.contains("rte-task-list")&&(z=T.getAttribute("data-checked")==="true"?"[x]":"[ ]"),s(T,ae(T,u),o+t.baseSize*1.6,z,k,d==="ol"),n(T,ae(T,u),o+t.baseSize*1.6)}}continue}if(d==="table"){t.table(h,ae(h,u),o);continue}if(d==="img"){var x=xe(h,t.contentWidth-o);x.w&&t.blocks.push({type:"text",role:"Figure",alt:h.getAttribute("alt")||"",lines:[{parts:[{img:h,w:x.w,h:x.h,style:u}],width:x.w,size:x.h,height:x.h,image:!0}],indent:o,align:"left",spaceBefore:4,spaceAfter:4});continue}if(Ce(d)){var A=(d==="blockquote"?t.baseSize*1.5:0)+l(h),E=d==="blockquote"?"BlockQuote":v,C=h.getElementsByTagName("img");if(C.length===1&&!(h.textContent||"").replace(/[\s\u200b\u00a0]/g,"")&&!Ae(h)){var N=xe(C[0],t.contentWidth-o-A);if(N.w){var w=String(h.style&&h.style.textAlign||"").toLowerCase();t.blocks.push({type:"text",role:"Figure",alt:C[0].getAttribute("alt")||"",lines:[{parts:[{img:C[0],w:N.w,h:N.h,style:u}],width:N.w,size:N.h,height:N.h,image:!0}],indent:o+A,align:w==="center"||w==="right"?w:"left",spaceBefore:4,spaceAfter:4});continue}}if(Ae(h)){f(h,ae(h,u),o+A,E);continue}s(h,u,o+A,null,null,!1,E);continue}s(h,u,o,null)}}}}function n(i,u,o){for(var v=0;v<i.childNodes.length;v++){var c=i.childNodes[v];if(c.nodeType===1){var h=c.tagName.toLowerCase();(h==="ul"||h==="ol")&&f({childNodes:[c]},u,o)}}}return f(e,r,0),this.blocks};function Ce(e){return/^(p|div|h[1-6]|blockquote|pre|section|article|header|footer|main|aside|figure|figcaption|dl|dd|dt|li|address)$/.test(e)}function Ae(e){for(var t=0;t<e.childNodes.length;t++){var r=e.childNodes[t];if(r.nodeType===1&&(Ce(r.tagName.toLowerCase())||/^(ul|ol|table|hr)$/.test(r.tagName.toLowerCase())))return!0}return!1}fe.prototype.table=function(e,t,r){for(var l=this,a=[],s=e.getElementsByTagName("tr"),f=0,n={},i=0;i<s.length;i++){for(var u=[],o=0;o<s[i].childNodes.length;o++){var v=s[i].childNodes[o];if(v.nodeType===1){var c=v.tagName.toLowerCase();if(!(c!=="td"&&c!=="th")){var h=Math.max(1,Math.min(50,parseInt(v.getAttribute("colspan"),10)||1)),d=Math.max(1,Math.min(500,parseInt(v.getAttribute("rowspan"),10)||1));u.push({node:v,header:c==="th",span:h,rowspan:d})}}}for(var y=[],p=0,g=0;g<u.length;g++){for(;n[p]>0;)y.push({placeholder:!0,start:p,span:1,header:!1}),p++;if(u[g].start=p,y.push(u[g]),u[g].rowspan>1)for(var b=p;b<p+u[g].span;b++)n[b]=u[g].rowspan;p+=u[g].span}for(var k in n)+k>=p&&n[k]>0&&(y.push({placeholder:!0,start:+k,span:1,header:!1}),+k+1>p&&(p=+k+1));for(var D in n)n[D]--,n[D]<=0&&delete n[D];y.sort(function(H,re){return H.start-re.start}),u=u.length?y:u,u.length&&(a.push(u),p>f&&(f=p))}if(!a.length)return;for(var T=this.contentWidth-r,z=T/f,x=[],A=[],E=0,C=0;C<e.children.length;C++)if(e.children[C].tagName&&e.children[C].tagName.toLowerCase()==="colgroup")for(var N=0;N<e.children[C].children.length;N++)e.children[C].children[N].tagName.toLowerCase()==="col"&&A.push(e.children[C].children[N]);if(A.length===f){for(var w=0;w<A.length;w++){var M=A[w].style&&A[w].style.width||A[w].getAttribute("width")||"",R=/^\s*([\d.]+)(%|px)?\s*$/.exec(M);if(!R||!(parseFloat(R[1])>0)){x=[];break}x.push(parseFloat(R[1]))}for(var U=0;U<x.length;U++)E+=x[U];E>0&&(x=x.map(function(H){return H/E*T}))}if(x.length!==f){x=[];for(var B=0;B<f;B++)x.push(z)}function Z(H,re){for(var F=0,ee=H;ee<H+re&&ee<x.length;ee++)F+=x[ee];return F}for(var Q=4,$=[],I=0;I<a.length;I++){for(var X=[],q=0,P=0;P<a[I].length;P++){if(a[I][P].placeholder){X.push({lines:[],header:!1,start:a[I][P].start,span:1,placeholder:!0});continue}var S=ae(a[I][P].node,t);a[I][P].header&&(S.bold=!0);for(var L=l.wrap(l.runsOf(a[I][P].node,S),Z(a[I][P].start,a[I][P].span)-Q*2,1.35),W=0,G=0;G<L.length;G++)W+=L[G].height;W>q&&(q=W),X.push({lines:L,header:a[I][P].header,start:a[I][P].start,span:a[I][P].span,rowspan:a[I][P].rowspan||1})}$.push({cells:X,height:q+Q*2,header:a[I][0]&&!a[I][0].placeholder&&a[I][0].header})}this.blocks.push({type:"table",rows:$,colWidth:z,colWidths:x,cols:f,indent:r,pad:Q,spaceBefore:this.baseSize*.5,spaceAfter:this.baseSize*.5})};var we="en";function Le(e){we=String(e&&e.lang||document.documentElement.lang||"en").toLowerCase();var t=String(e.font||te.pdfExportFont||"helvetica").toLowerCase();se[t]||(t="helvetica");var r=Number(e.fontSize||te.pdfExportBaseFontSize||11);(!isFinite(r)||r<=0)&&(r=11);var l=Be(e),a=document.createElement("div");a.innerHTML=V.getHTMLCode()||"";var s=V.getEditable().querySelectorAll("ol,ul"),f=a.querySelectorAll("ol,ul");if(s.length===f.length)for(var n=0;n<s.length;n++){var i=s[n].ownerDocument.defaultView.getComputedStyle(s[n]).listStyleType;i&&(f[n].style.listStyleType=i)}var u=new fe(l,r,t),o=u.run(a),v=We(o,l,r);return _e(v,l,t,r,e)}function We(e,t,r){var l=t.height-t.margin.top,a=t.margin.bottom,s=[],f=[],n=l;function i(){s.push(f),f=[],n=l}for(var u=0;u<e.length;u++){var o=e[u];if(o.type==="pagebreak"){f.length&&i();continue}if(o.type==="rule"){n-r<a&&i(),n-=r*.6,f.push({op:"rule",y:n,indent:o.indent}),n-=r*.6;continue}if(o.type==="table"){n-=o.spaceBefore;for(var v=0;v<o.rows.length;v++){var c=o.rows[v];n-c.height<a&&(i(),o.rows[0]&&o.rows[0].header&&v>0&&(f.push({op:"row",row:o.rows[0],y:n,block:o}),n-=o.rows[0].height)),f.push({op:"row",row:c,y:n,block:o}),n-=c.height}n-=o.spaceAfter;continue}n-=o.spaceBefore;for(var h=0;h<o.lines.length;h++){var d=o.lines[h];n-d.height<a&&i(),f.push({op:"line",line:d,y:n,block:o,first:h===0}),n-=d.height}if(n-=o.spaceAfter,o.keepWithNext&&f.length&&e[u+1]&&e[u+1].type!=="pagebreak"){var y=He(e[u+1]);if(n-y<a){for(var p=[];f.length&&f[f.length-1].block===o;)p.unshift(f.pop());if(f.length){i();for(var g=0;g<p.length;g++)p[g].y=n,f.push(p[g]),n-=p[g].line.height}else for(var b=0;b<p.length;b++)f.push(p[b])}}}return(f.length||!s.length)&&s.push(f),s}function He(e){return e.type==="table"?e.rows[0]?e.rows[0].height:0:e.lines&&e.lines[0]?e.lines[0].height:0}function _e(e,t,r,l,a){var s=new ue,f=se[r],n=se.courier,i={},u=[];function o(O,j,_,Y){var ne=ve(j,_),pe=s.add("<< /Type /Font /Subtype /Type1 /BaseFont /"+O+" /Encoding /WinAnsiEncoding /FirstChar "+he+" /LastChar "+ge+" /Widths ["+ne.join(" ")+"] >>");i[Y]=pe,u.push("/"+Y+" "+pe+" 0 R")}for(var v=0;v<4;v++)o(f.faces[v],r,v,"F"+v),o(n.faces[v],"courier",v,"M"+v);var c={},h=[];function d(O){var j=O.getAttribute("src")||"";if(c[j])return c[j];var _=Ze(O);if(!_)return null;var Y=s.add({dict:"<< /Type /XObject /Subtype /Image /Width "+_.width+" /Height "+_.height+" /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length 0 >>",stream:_.bytes}),ne="Im"+(h.length+1);return c[j]={id:Y,alias:ne},h.push("/"+ne+" "+Y+" 0 R"),c[j]}for(var y=[],p=[],g=[],b=0;b<e.length;b++)y.push(s.alloc()),p.push(s.alloc()),g.push([]);for(var k=s.alloc(),D=[],T=[],z=[],x=0;x<e.length;x++){for(var A=new ce(x),E=Ue(e[x],t,r,l,d,x+1,e.length,a,A),C=0;C<(E.headings||[]).length;C++)E.headings[C].page=x,T.push(E.headings[C]);s.set(p[x],{dict:"<< /Length 0 >>",stream:E.content}),D.push(E.marks);for(var N=0;N<E.links.length;N++){var w=E.links[N],M=e.length+z.length,R=s.add("<< /Type /Annot /Subtype /Link /Rect ["+m(w.x0)+" "+m(w.y0)+" "+m(w.x1)+" "+m(w.y1)+"] /Border [0 0 0] /StructParent "+M+" /Contents ("+K(J(String(w.text||w.href).replace(/\s+/g," ").trim()||w.href))+") /A << /S /URI /URI ("+K(J(w.href))+") >> >>");g[x].push(R),z.push({id:R,page:x,key:M,owner:w.owner})}}for(var U=$e(s,D,y,z),B=0;B<e.length;B++)s.set(y[B],"<< /Type /Page /Parent "+k+" 0 R /MediaBox [0 0 "+m(t.width)+" "+m(t.height)+"] /Resources << /Font << "+u.join(" ")+" >>"+(h.length?" /XObject << "+h.join(" ")+" >>":"")+" >> /Contents "+p[B]+" 0 R /StructParents "+B+(g[B].length?" /Annots ["+g[B].map(function(O){return O+" 0 R"}).join(" ")+"] /Tabs /S":"")+" >>");s.set(k,"<< /Type /Pages /Count "+e.length+" /Kids ["+y.map(function(O){return O+" 0 R"}).join(" ")+"] >>");var Z=0;if(T.length){Z=s.alloc();for(var Q={id:Z,kids:[]},$=[Q],I=[],X=0;X<T.length;X++){for(var q={h:T[X],id:s.alloc(),kids:[],parent:null};$.length>1&&$[$.length-1].h.level>=q.h.level;)$.pop();q.parent=$[$.length-1],q.parent.kids.push(q),$.push(q),I.push(q)}for(var P=function(O){for(var j=O.kids.length,_=0;_<O.kids.length;_++)j+=P(O.kids[_]);return j},S=0;S<I.length;S++){var L=I[S],W=L.parent.kids,G=W.indexOf(L);s.set(L.id,"<< /Title ("+K(J(L.h.title))+") /Parent "+L.parent.id+" 0 R"+(G>0?" /Prev "+W[G-1].id+" 0 R":"")+(G<W.length-1?" /Next "+W[G+1].id+" 0 R":"")+(L.kids.length?" /First "+L.kids[0].id+" 0 R /Last "+L.kids[L.kids.length-1].id+" 0 R /Count "+P(L):"")+" /Dest ["+y[L.h.page]+" 0 R /XYZ null "+m(L.h.y)+" null] >>")}s.set(Z,"<< /Type /Outlines /First "+Q.kids[0].id+" 0 R /Last "+Q.kids[Q.kids.length-1].id+" 0 R /Count "+P(Q)+" >>")}var H=a.title||te.pdfExportTitle||document.title||"Document",re=a.author||te.pdfExportAuthor||"",F=s.add("<< /Type /Catalog /Pages "+k+" 0 R /Lang ("+K(String(a.lang||document.documentElement.lang||"en"))+") /MarkInfo << /Marked true >>"+(Z?" /Outlines "+Z+" 0 R":"")+" /StructTreeRoot "+U.rootId+" 0 R /ViewerPreferences << /DisplayDocTitle true >> >>"),ee=s.add("<< /Title ("+K(J(String(H)))+")"+(re?" /Author ("+K(J(String(re)))+")":"")+" /Producer (RichTextEditor) /Creator (RichTextEditor) /CreationDate ("+je(new Date)+") >>");return s.build(F,ee)}function $e(e,t,r,l){var a=e.alloc(),s=[],f=[];function n(S,L){var W={id:e.alloc(),role:S,kids:[],extra:L||"",children:[],parent:null,seq:[]};return s.push(W),W}for(var i=n("Document"),u=new Map,o=new Map,v=new Map,c=new Map,h=new Map,d=new Map,y=new Map,p=new Map,g=0;g<t.length;g++){var b=t[g];f[g]=[];for(var k=0;k<b.length;k++){var D=b[k].owner,T=b[k].mcid,z=N(D);z.kids.push({page:g,mcid:T}),z.seq.push({mcr:{page:g,mcid:T}}),f[g][T]=z.id}}function x(S,L){L.parent||(L.parent=S,S.children.push(L),S.seq.push({elem:L}))}for(var A=[],E=0;E<(l||[]).length;E++){var C;l[E].owner&&l[E].owner.kind==="link"?C=N(l[E].owner):(C=n("Link"),x(N(l[E].owner),C)),C.objr=l[E],A.push(l[E].key+" "+C.id+" 0 R")}function N(S){if(S.kind==="link"){var L=p.get(S);return L||(L=n("Link"),p.set(S,L),x(N(S.parent),L)),L}if(S.kind==="cell"){var W=h.get(S.block);W||(W=n("Table"),h.set(S.block,W),x(i,W));var G=d.get(S.row);G||(G=n("TR"),d.set(S.row,G),x(W,G));var H=y.get(S.row);if(H||(H={},y.set(S.row,H)),!H[S.col]){var re=(S.header?" /Scope /Column":"")+(S.span>1?" /ColSpan "+S.span:"")+(S.rowspan>1?" /RowSpan "+S.rowspan:"");H[S.col]=n(S.header?"TH":"TD",re?" /A << /O /Table"+re+" >>":""),x(G,H[S.col])}return H[S.col]}var F=S.block,ee=i;if(F.listId){var O=u.get(F.listId);O||(O=n("L"),u.set(F.listId,O),x(i,O));var j=o.get(F);j||(j=n("LI"),o.set(F,j),x(O,j)),ee=j}if(S.kind==="lbl"){var _=v.get(F);return _||(_=n("Lbl"),v.set(F,_),x(ee,_)),_}var Y=c.get(F);if(!Y){if(F.listId)Y=n("LBody");else{var ne=F.role==="Figure"?" /Alt ("+K(J(F.alt||"Image"))+")":"",pe=we,be=String(F.lang||"").replace(/[^A-Za-z0-9-]/g,"");be&&be.toLowerCase()!==pe&&(ne+=" /Lang ("+be+")"),Y=n(F.role||"P",ne)}c.set(F,Y),x(ee,Y)}return Y}for(var w=0;w<s.length;w++){for(var M=s[w],R=[],U=0;U<M.seq.length;U++){var B=M.seq[U];B.elem?R.push(B.elem.id+" 0 R"):R.push("<< /Type /MCR /Pg "+r[B.mcr.page]+" 0 R /MCID "+B.mcr.mcid+" >>")}M.objr&&R.push("<< /Type /OBJR /Obj "+M.objr.id+" 0 R /Pg "+r[M.objr.page]+" 0 R >>");var Z=M.parent?M.parent.id:a;e.set(M.id,"<< /Type /StructElem /S /"+M.role+" /P "+Z+" 0 R"+M.extra+(R.length?" /K ["+R.join(" ")+"]":"")+" >>")}for(var Q=[],$=0;$<f.length;$++){for(var I=f[$]||[],X=[],q=0;q<I.length;q++)X.push((I[q]||i.id)+" 0 R");Q.push($+" ["+X.join(" ")+"]")}var P=e.add("<< /Nums ["+Q.concat(A).join(" ")+"] >>");return e.set(a,"<< /Type /StructTreeRoot /K ["+i.id+" 0 R] /ParentTree "+P+" 0 R /ParentTreeNextKey "+(f.length+A.length)+" >>"),{rootId:a}}function je(e){function t(r){return(r<10?"0":"")+r}return"D:"+e.getFullYear()+t(e.getMonth()+1)+t(e.getDate())+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())+"Z"}function m(e){return(Math.round(e*100)/100).toString()}function ce(e){this.pageIndex=e,this.next=0,this.marks=[]}ce.prototype.open=function(e,t,r){var l=this.next++;return this.marks.push({owner:r,mcid:l,role:t}),e.push("/"+t+" << /MCID "+l+" >> BDC"),l},ce.prototype.close=function(e){e.push("EMC")},ce.prototype.artifact=function(e,t){e.push("/Artifact BMC"),t(),e.push("EMC")};function Ue(e,t,r,l,a,s,f,n,i){for(var u=[],o=[],v=[],c=t.margin.left,h=0;h<e.length;h++){var d=e[h];if(d.op==="line"&&d.first&&d.block&&/^H[1-6]$/.test(d.block.role||"")){var y=(d.block.lines||[]).map(function(g){return(g.parts||[]).map(function(b){return b.text||""}).join("")}).join(" ").replace(/\s+/g," ").trim();y&&v.push({level:+d.block.role.charAt(1),title:y,y:d.y})}if(d.op==="rule"){i.artifact(u,function(){u.push("0.8 0.8 0.8 RG 0.5 w "+m(c+d.indent)+" "+m(d.y)+" m "+m(t.width-t.margin.right)+" "+m(d.y)+" l S")});continue}if(d.op==="row"){Ve(d,t,u,c,a,o,i);continue}ze(d,t,u,c,r,a,o,i)}var p=qe(n);return(p.header||p.footer)&&i.artifact(u,function(){p.header&&ke(u,p.header,t,t.height-t.margin.top*.55,r,l*.85,s,f),p.footer&&ke(u,p.footer,t,t.margin.bottom*.55,r,l*.85,s,f)}),{content:u.join(`
19
+ `),links:o,marks:i.marks,headings:v}}function qe(e){var t=null;try{typeof V.getDocumentPageSetup=="function"&&(t=V.getDocumentPageSetup())}catch{}return t=t||{},{header:e.headerText||te.pdfExportHeader||Re(t.headerHtml)||"",footer:e.footerText||te.pdfExportFooter||Re(t.footerHtml)||""}}function Re(e){if(!e||typeof e!="string")return"";var t=document.createElement("div");return t.innerHTML=e,(t.textContent||"").replace(/\s+/g," ").trim()}function ke(e,t,r,l,a,s,f,n){var i=String(t).replace(/\{page\}/g,f).replace(/\{total\}/g,n),u=J(i),o=me(u,a,0,s),v=(r.width-o)/2;e.push("BT /F0 "+m(s)+" Tf 0.4 0.4 0.4 rg "+m(v)+" "+m(l)+" Td ("+K(u)+") Tj ET")}function ze(e,t,r,l,a,s,f,n){var i=e.line,u=e.block,o=l+(u.indent||0),v=t.width-t.margin.right-o;if(u.align==="center"?o+=(v-i.width)/2:u.align==="right"&&(o+=v-i.width),u.rule==="quote"&&!i.image){var c=m(l+u.indent-8),h=function(){r.push("0.8 0.8 0.85 RG 2 w "+c+" "+m(e.y-i.height+4)+" m "+c+" "+m(e.y+i.size*.8)+" l S")};n?n.artifact(r,h):h()}if(e.first&&u.marker){var d=u.markerStyle||{size:i.size,color:[0,0,0]},y=me(u.marker,a,0,d.size);n&&n.open(r,"Lbl",{kind:"lbl",block:u}),r.push("BT /F0 "+m(d.size)+" Tf "+Ee(d.color)+" "+m(o-y-6)+" "+m(e.y-i.size*.85)+" Td ("+K(J(u.marker))+") Tj ET"),n&&n.close(r)}var p=e.cell||{kind:"body",block:u},g=!1;n&&(n.open(r,i.image?"Figure":"Span",p),g=!0);for(var b=[],k=o,D=0;D<i.parts.length;D++){var T=i.parts[D];if(T.img){b.push({img:T,x:k,w:T.w}),k+=T.w;continue}var z=T.style,x=(z.mono?"M":"F")+T.styleIndex,A=b.length?b[b.length-1]:null,E=A&&!A.img&&A.alias===x&&A.style.size===z.size&&Ge(A.style.color,z.color)&&A.style.underline===z.underline&&A.style.strike===z.strike&&A.style.link===z.link&&(A.style.lang||"")===(z.lang||"");E?(A.text+=T.text,A.w+=T.w):b.push({text:T.text,style:z,alias:x,x:k,w:T.w}),k+=T.w}for(var C=e.y-i.size*.85,N=0;N<b.length;N++){var w=b[N];if(w.img){var M=s(w.img.img);M&&r.push("q "+m(w.w)+" 0 0 "+m(w.img.h)+" "+m(w.x)+" "+m(e.y-w.img.h)+" cm /"+M.alias+" Do Q");continue}if(!(!w.text||/^\s+$/.test(w.text))){var R=w.style,U=null;n&&!i.image&&R.link?(g&&(n.close(r),g=!1),U={kind:"link",parent:p},n.open(r,"Span",U)):n&&!g&&(n.open(r,"Span",p),g=!0);var B=String(R.lang||"").replace(/[^A-Za-z0-9-]/g,""),Z=B&&B.toLowerCase()!==String(u.lang||we||"").toLowerCase();Z&&r.push("/Span << /Lang ("+B+") >> BDC"),r.push("BT /"+w.alias+" "+m(R.size)+" Tf "+Ee(R.color)+" "+m(w.x)+" "+m(C)+" Td ("+K(J(w.text))+") Tj ET"),Z&&r.push("EMC"),R.underline&&r.push(Ne(R.color)+" 0.5 w "+m(w.x)+" "+m(C-R.size*.12)+" m "+m(w.x+w.w)+" "+m(C-R.size*.12)+" l S"),R.strike&&r.push(Ne(R.color)+" 0.5 w "+m(w.x)+" "+m(C+R.size*.28)+" m "+m(w.x+w.w)+" "+m(C+R.size*.28)+" l S"),R.link&&f.push({href:R.link,x0:w.x,y0:C-2,x1:w.x+w.w,y1:C+R.size,text:w.text||"",owner:U||p}),U&&n.close(r)}}n&&g&&n.close(r)}function Ge(e,t){return e=e||[0,0,0],t=t||[0,0,0],e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ve(e,t,r,l,a,s,f){for(var n=e.block,i=e.row,u=l+n.indent,o=e.y,v=e.y-i.height,c=0;c<i.cells.length;c++){for(var h=i.cells[c].span||1,d=i.cells[c].start!=null?i.cells[c].start:c,y=u,p=0,g=0;g<d+h;g++){var b=n.colWidths&&n.colWidths[g]!=null?n.colWidths[g]:n.colWidth;g<d?y+=b:p+=b}var k=function(){i.header&&r.push("0.94 0.95 0.97 rg "+m(y)+" "+m(v)+" "+m(p)+" "+m(i.height)+" re f"),r.push("0.75 0.78 0.82 RG 0.5 w "+m(y)+" "+m(v)+" "+m(p)+" "+m(i.height)+" re S")};f?f.artifact(r,k):k();for(var D={kind:"cell",block:n,row:i,col:d,span:h,rowspan:i.cells[c].rowspan||1,header:!!i.cells[c].header},T=o-n.pad,z=i.cells[c].lines,x=0;x<z.length;x++)ze({line:z[x],y:T,block:{indent:0,align:"left"},first:x===0,cell:D},{width:y+p+t.margin.right,margin:{right:t.margin.right}},r,y+n.pad,"helvetica",a,s,f),T-=z[x].height}}function Ee(e){return e=e||[0,0,0],m(e[0])+" "+m(e[1])+" "+m(e[2])+" rg"}function Ne(e){return e=e||[0,0,0],m(e[0])+" "+m(e[1])+" "+m(e[2])+" RG"}function Ze(e){try{var t=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(!t||!r)return null;var l=2e3,a=Math.min(1,l/Math.max(t,r)),s=Math.max(1,Math.round(t*a)),f=Math.max(1,Math.round(r*a)),n=document.createElement("canvas");n.width=s,n.height=f;var i=n.getContext("2d");i.fillStyle="#ffffff",i.fillRect(0,0,s,f),i.drawImage(e,0,0,s,f);var u=n.toDataURL("image/jpeg",.92),o=u.indexOf(",");if(o<0)return null;for(var v=atob(u.slice(o+1)),c=new Uint8Array(v.length),h=0;h<v.length;h++)c[h]=v.charCodeAt(h);return{bytes:c,width:s,height:f}}catch{return null}}function Ie(e){return!e||typeof e!="string"?"":e.replace(/\.pdf$/i,"").replace(/[\\/:*?"<>|]+/g,"").trim().slice(0,120)}function Qe(){var e=new Date;function t(r){return(r<10?"0":"")+r}return"Export-"+String(e.getFullYear()).slice(2)+t(e.getMonth()+1)+t(e.getDate())+"-"+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())}function Ye(e,t){var r=new Blob([e],{type:"application/pdf"}),l=URL.createObjectURL(r),a=document.createElement("a");return a.href=l,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(function(){URL.revokeObjectURL(l)},4e3),t}}
@@ -131,7 +131,7 @@ function RTE_Plugin_PermanentPen() {
131
131
  function tidyRun(run) {
132
132
  if (!run) return;
133
133
  var text = run.textContent || "";
134
- if (text.replace(/​/g, "") === "") {
134
+ if (text.replace(/\u200b/g, "") === "") {
135
135
  // Nothing was ever typed: remove the empty run entirely.
136
136
  if (run.parentNode) run.parentNode.removeChild(run);
137
137
  return;
@@ -139,7 +139,7 @@ function RTE_Plugin_PermanentPen() {
139
139
  var walker = run.ownerDocument.createTreeWalker(run, 4 /* SHOW_TEXT */, null, false);
140
140
  var n;
141
141
  while ((n = walker.nextNode())) {
142
- if (n.nodeValue.indexOf("​") >= 0) n.nodeValue = n.nodeValue.replace(/​/g, "");
142
+ if (n.nodeValue.indexOf("\u200b") >= 0) n.nodeValue = n.nodeValue.replace(/\u200b/g, "");
143
143
  }
144
144
  }
145
145
 
@@ -173,7 +173,7 @@ function RTE_Plugin_PermanentPen() {
173
173
  // A zero-width space gives the caret something real to sit inside; an
174
174
  // empty inline element cannot hold a caret, so the first character would
175
175
  // land outside the span and the pen would appear not to work.
176
- span.appendChild(doc.createTextNode("​"));
176
+ span.appendChild(doc.createTextNode("\u200b"));
177
177
 
178
178
  range.insertNode(span);
179
179
  var r = doc.createRange();
@@ -1 +1 @@
1
- window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_permanentpen=RTE_Plugin_PermanentPen,typeof RTE_DefaultConfig.permanentPenStyle>"u"&&(RTE_DefaultConfig.permanentPenStyle={color:"#c81e1e","font-weight":"700"}),typeof RTE_DefaultConfig.permanentPenClass>"u"&&(RTE_DefaultConfig.permanentPenClass="rte-pen");function RTE_Plugin_PermanentPen(){var c=this,u,a,y=null,o=!1,i=null;c.PluginName="PermanentPen",c.InitConfig=function(t){u=t},c.InitEditor=function(t){a=t,a.attachEvent("exec_command_permanentpen",function(e){e.returnValue=!0,c.Toggle()}),s();try{a.attachEvent("ready",s)}catch{}try{a.attachEvent("aftersethtml",s)}catch{}setTimeout(s,0),a.setPermanentPen=function(e){return P(!!e)},a.togglePermanentPen=function(){return P(!o)},a.isPermanentPenActive=function(){return o},a.setPermanentPenStyle=function(e){return e&&typeof e=="object"&&(u.permanentPenStyle=e,i=null),u.permanentPenStyle},a.getPermanentPenStyle=function(){var e=u.permanentPenStyle||{},n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);return n}};function s(){var t=p();if(!(!t||t===y)){y=t;var e=d();e&&(e.addEventListener("beforeinput",R,!0),e.addEventListener("mouseup",function(){i=null}),e.addEventListener("keydown",function(n){/^Arrow|^Home|^End|^Page/.test(n.key)&&(i=null)}),e.addEventListener("blur",function(){i=null}))}}function p(){try{return a.getDocument()}catch{return null}}function d(){try{return a.getEditable()}catch{return null}}function P(t){var e=o;o=!!t;var n=d();return n&&n.classList&&(o?n.classList.add("rte-pen-active"):n.classList.remove("rte-pen-active")),e&&!o&&C(),i=null,o}function C(){var t=p();if(t){var e;try{e=a.getSelection()}catch{return}if(!(!e||e.rangeCount===0)){var n=h(e.getRangeAt(0).startContainer);if(!(!n||!n.parentNode)){E(n);try{var r=t.createRange();r.setStartAfter(n),r.collapse(!0),e.removeAllRanges(),e.addRange(r)}catch{}}}}}function E(t){if(t){var e=t.textContent||"";if(e.replace(/​/g,"")===""){t.parentNode&&t.parentNode.removeChild(t);return}for(var n=t.ownerDocument.createTreeWalker(t,4,null,!1),r;r=n.nextNode();)r.nodeValue.indexOf("\u200B")>=0&&(r.nodeValue=r.nodeValue.replace(/​/g,""))}}function R(t){if(o&&!(t.inputType&&t.inputType!=="insertText"&&t.inputType!=="insertCompositionText")){var e=p();if(e){var n;try{n=a.getSelection()}catch{return}if(!(!n||n.rangeCount===0)){var r=n.getRangeAt(0);if(r.collapsed&&!(i&&T(i,r.startContainer))){var f=h(r.startContainer);if(f&&S(f)){i=f;return}var l=e.createElement("span");l.className=String(u.permanentPenClass||"rte-pen");var v=u.permanentPenStyle||{};for(var g in v)v.hasOwnProperty(g)&&l.style.setProperty(g,v[g]);l.appendChild(e.createTextNode("\u200B")),r.insertNode(l);var m=e.createRange();m.setStart(l.firstChild,1),m.collapse(!0),n.removeAllRanges(),n.addRange(m),i=l}}}}}function T(t,e){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function h(t){for(var e=d(),n=String(u.permanentPenClass||"rte-pen"),r=t&&t.nodeType===3?t.parentNode:t;r&&r!==e;){if(r.nodeType===1&&r.classList&&r.classList.contains(n))return r;r=r.parentNode}return null}function S(t){var e=u.permanentPenStyle||{};for(var n in e)if(e.hasOwnProperty(n)&&t.style.getPropertyValue(n)!==String(e[n]))return!1;return!0}}
1
+ window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_permanentpen=RTE_Plugin_PermanentPen,typeof RTE_DefaultConfig.permanentPenStyle>"u"&&(RTE_DefaultConfig.permanentPenStyle={color:"#c81e1e","font-weight":"700"}),typeof RTE_DefaultConfig.permanentPenClass>"u"&&(RTE_DefaultConfig.permanentPenClass="rte-pen");function RTE_Plugin_PermanentPen(){var c=this,u,a,y=null,o=!1,i=null;c.PluginName="PermanentPen",c.InitConfig=function(t){u=t},c.InitEditor=function(t){a=t,a.attachEvent("exec_command_permanentpen",function(e){e.returnValue=!0,c.Toggle()}),s();try{a.attachEvent("ready",s)}catch{}try{a.attachEvent("aftersethtml",s)}catch{}setTimeout(s,0),a.setPermanentPen=function(e){return P(!!e)},a.togglePermanentPen=function(){return P(!o)},a.isPermanentPenActive=function(){return o},a.setPermanentPenStyle=function(e){return e&&typeof e=="object"&&(u.permanentPenStyle=e,i=null),u.permanentPenStyle},a.getPermanentPenStyle=function(){var e=u.permanentPenStyle||{},n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);return n}};function s(){var t=p();if(!(!t||t===y)){y=t;var e=d();e&&(e.addEventListener("beforeinput",R,!0),e.addEventListener("mouseup",function(){i=null}),e.addEventListener("keydown",function(n){/^Arrow|^Home|^End|^Page/.test(n.key)&&(i=null)}),e.addEventListener("blur",function(){i=null}))}}function p(){try{return a.getDocument()}catch{return null}}function d(){try{return a.getEditable()}catch{return null}}function P(t){var e=o;o=!!t;var n=d();return n&&n.classList&&(o?n.classList.add("rte-pen-active"):n.classList.remove("rte-pen-active")),e&&!o&&C(),i=null,o}function C(){var t=p();if(t){var e;try{e=a.getSelection()}catch{return}if(!(!e||e.rangeCount===0)){var n=h(e.getRangeAt(0).startContainer);if(!(!n||!n.parentNode)){E(n);try{var r=t.createRange();r.setStartAfter(n),r.collapse(!0),e.removeAllRanges(),e.addRange(r)}catch{}}}}}function E(t){if(t){var e=t.textContent||"";if(e.replace(/\u200b/g,"")===""){t.parentNode&&t.parentNode.removeChild(t);return}for(var n=t.ownerDocument.createTreeWalker(t,4,null,!1),r;r=n.nextNode();)r.nodeValue.indexOf("\u200B")>=0&&(r.nodeValue=r.nodeValue.replace(/\u200b/g,""))}}function R(t){if(o&&!(t.inputType&&t.inputType!=="insertText"&&t.inputType!=="insertCompositionText")){var e=p();if(e){var n;try{n=a.getSelection()}catch{return}if(!(!n||n.rangeCount===0)){var r=n.getRangeAt(0);if(r.collapsed&&!(i&&T(i,r.startContainer))){var f=h(r.startContainer);if(f&&S(f)){i=f;return}var l=e.createElement("span");l.className=String(u.permanentPenClass||"rte-pen");var v=u.permanentPenStyle||{};for(var g in v)v.hasOwnProperty(g)&&l.style.setProperty(g,v[g]);l.appendChild(e.createTextNode("\u200B")),r.insertNode(l);var m=e.createRange();m.setStart(l.firstChild,1),m.collapse(!0),n.removeAllRanges(),n.addRange(m),i=l}}}}}function T(t,e){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function h(t){for(var e=d(),n=String(u.permanentPenClass||"rte-pen"),r=t&&t.nodeType===3?t.parentNode:t;r&&r!==e;){if(r.nodeType===1&&r.classList&&r.classList.contains(n))return r;r=r.parentNode}return null}function S(t){var e=u.permanentPenStyle||{};for(var n in e)if(e.hasOwnProperty(n)&&t.style.getPropertyValue(n)!==String(e[n]))return!1;return!0}}
@@ -26,6 +26,20 @@ function RTE_Plugin_ReadabilityStats() {
26
26
 
27
27
  obj.InitConfig = function (argconfig) { config = argconfig; };
28
28
 
29
+ // 2026-10-18 the dialog's words read config.text_ keys at the display site (getReadabilityStats keeps its English
30
+ // easeLabel / readingTimeText). The title read getLangText("readabilitytitle"), which returns the KEY when a pack
31
+ // lacks it, so every page showed "readabilitytitle". tools/i18n/readability-language.mjs
32
+ function rT(key, en, a) { var s = (config && config["text_" + key]) || en; return a === undefined ? s : s.split("{0}").join(String(a)); }
33
+ function easeText(ease) {
34
+ if (ease >= 90) return rT("rd_e90", "Very easy (5th grade)");
35
+ if (ease >= 80) return rT("rd_e80", "Easy (6th grade)");
36
+ if (ease >= 70) return rT("rd_e70", "Fairly easy (7th grade)");
37
+ if (ease >= 60) return rT("rd_e60", "Standard (8\u20139th grade)");
38
+ if (ease >= 50) return rT("rd_e50", "Fairly difficult (10\u201312th grade)");
39
+ if (ease >= 30) return rT("rd_e30", "Difficult (college)");
40
+ return rT("rd_e0", "Very difficult (college graduate)");
41
+ }
42
+
29
43
  obj.InitEditor = function (argeditor) {
30
44
  editor = argeditor;
31
45
  if (config.readabilityStats === false) return;
@@ -104,8 +118,8 @@ function RTE_Plugin_ReadabilityStats() {
104
118
  if (ease >= 90) return "Very easy (5th grade)";
105
119
  if (ease >= 80) return "Easy (6th grade)";
106
120
  if (ease >= 70) return "Fairly easy (7th grade)";
107
- if (ease >= 60) return "Standard (8–9th grade)";
108
- if (ease >= 50) return "Fairly difficult (10–12th grade)";
121
+ if (ease >= 60) return "Standard (8\u20139th grade)";
122
+ if (ease >= 50) return "Fairly difficult (10\u201312th grade)";
109
123
  if (ease >= 30) return "Difficult (college)";
110
124
  return "Very difficult (college graduate)";
111
125
  }
@@ -113,20 +127,20 @@ function RTE_Plugin_ReadabilityStats() {
113
127
  function openDialog() {
114
128
  var s = compute(currentText());
115
129
  try {
116
- var d = editor.createDialog((editor.getLangText && editor.getLangText("readabilitytitle")) || "Readability statistics", "rte-dialog-readability");
130
+ var d = editor.createDialog(rT("readabilitytitle", "Readability statistics"), "rte-dialog-readability");
117
131
  var doc = d.ownerDocument;
118
132
  var wrap = doc.createElement("div");
119
133
  wrap.style.cssText = "padding:14px 18px;min-width:340px;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:#0f172a";
120
134
 
121
135
  var rows = [
122
- ["Flesch Reading Ease", s.fleschReadingEase + " — " + s.easeLabel, true],
123
- ["Flesch–Kincaid Grade", String(s.fleschKincaidGrade), false],
124
- ["Reading time", s.readingTimeText, false],
125
- ["Words", String(s.words), false],
126
- ["Sentences", String(s.sentences), false],
127
- ["Avg words / sentence", String(s.avgWordsPerSentence), false],
128
- ["Avg syllables / word", String(s.avgSyllablesPerWord), false],
129
- ["Characters (no spaces)", String(s.characters), false]
136
+ [rT("rd_ease", "Flesch Reading Ease"), s.fleschReadingEase + " \u2014 " + easeText(s.fleschReadingEase), true],
137
+ [rT("rd_grade", "Flesch\u2013Kincaid Grade"), String(s.fleschKincaidGrade), false],
138
+ [rT("rd_time", "Reading time"), s.readingTimeMinutes < 1 ? rT("rd_sec", "{0} sec", Math.max(1, Math.round(s.readingTimeMinutes * 60))) : rT("rd_min", "{0} min", Math.round(s.readingTimeMinutes)), false],
139
+ [rT("rd_words", "Words"), String(s.words), false],
140
+ [rT("rd_sentences", "Sentences"), String(s.sentences), false],
141
+ [rT("rd_avgwords", "Avg words / sentence"), String(s.avgWordsPerSentence), false],
142
+ [rT("rd_avgsyll", "Avg syllables / word"), String(s.avgSyllablesPerWord), false],
143
+ [rT("rd_chars", "Characters (no spaces)"), String(s.characters), false]
130
144
  ];
131
145
  for (var i = 0; i < rows.length; i++) {
132
146
  var r = doc.createElement("div");
@@ -1 +1 @@
1
- window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_readabilitystats=RTE_Plugin_ReadabilityStats,typeof RTE_DefaultConfig.readabilityStats>"u"&&(RTE_DefaultConfig.readabilityStats=!0);function RTE_Plugin_ReadabilityStats(){var u=this,h,r;u.PluginName="ReadabilityStats",u.InitConfig=function(e){h=e},u.InitEditor=function(e){r=e,h.readabilityStats!==!1&&(r.countSyllables=function(t){return v(t)},r.getReadabilityStats=function(t){return b(t!=null?String(t):p())},r.attachEvent("exec_command_readability",function(t){t.returnValue=!0,t.stopBubble=!0,S()}))};function p(){try{var e=r.getEditable&&r.getEditable();if(e)return e.innerText||e.textContent||""}catch{}return""}function v(e){if(e=String(e||"").toLowerCase().replace(/[^a-z]/g,""),!e)return 0;if(e.length<=3)return 1;e=e.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,"").replace(/^y/,"");var t=e.match(/[aeiouy]{1,2}/g);return t?t.length:1}function b(e){e=String(e||"").replace(/\s+/g," ").trim();var t=e?e.split(/\s+/):[],a=t.length,o=e.match(/[^.!?]+[.!?]+/g),n=o?o.length:a?1:0;a&&n===0&&(n=1);for(var i=0,l=0;l<t.length;l++)i+=v(t[l]);var c=e.replace(/\s/g,"").length,s=n?a/n:0,d=a?i/a:0,g=a?206.835-1.015*s-84.6*d:0,y=a?.39*s+11.8*d-15.59:0;g=Math.round(g*10)/10,y=Math.round(y*10)/10;var T=parseInt(h.readabilityWordsPerMinute,10)||200,f=a/T,x=f<1?Math.max(1,Math.round(f*60))+" sec":Math.round(f)+" min";return{words:a,sentences:n,syllables:i,characters:c,avgWordsPerSentence:Math.round(s*10)/10,avgSyllablesPerWord:Math.round(d*100)/100,fleschReadingEase:g,fleschKincaidGrade:Math.max(0,y),readingTimeMinutes:Math.round(f*10)/10,readingTimeText:x,easeLabel:m(g)}}function m(e){return e>=90?"Very easy (5th grade)":e>=80?"Easy (6th grade)":e>=70?"Fairly easy (7th grade)":e>=60?"Standard (8\u20139th grade)":e>=50?"Fairly difficult (10\u201312th grade)":e>=30?"Difficult (college)":"Very difficult (college graduate)"}function S(){var e=b(p());try{var t=r.createDialog(r.getLangText&&r.getLangText("readabilitytitle")||"Readability statistics","rte-dialog-readability"),a=t.ownerDocument,o=a.createElement("div");o.style.cssText="padding:14px 18px;min-width:340px;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:#0f172a";for(var n=[["Flesch Reading Ease",e.fleschReadingEase+" \u2014 "+e.easeLabel,!0],["Flesch\u2013Kincaid Grade",String(e.fleschKincaidGrade),!1],["Reading time",e.readingTimeText,!1],["Words",String(e.words),!1],["Sentences",String(e.sentences),!1],["Avg words / sentence",String(e.avgWordsPerSentence),!1],["Avg syllables / word",String(e.avgSyllablesPerWord),!1],["Characters (no spaces)",String(e.characters),!1]],i=0;i<n.length;i++){var l=a.createElement("div");l.style.cssText="display:flex;justify-content:space-between;gap:24px;padding:6px 0;border-bottom:1px solid #eef2f7"+(n[i][2]?";font-weight:600;font-size:14px":"");var c=a.createElement("span");c.textContent=n[i][0],c.style.color="#475569";var s=a.createElement("span");s.textContent=n[i][1],s.style.textAlign="right",l.appendChild(c),l.appendChild(s),o.appendChild(l)}t.appendChild(o)}catch{window.console&&console.warn("readabilitystats:",e)}}}
1
+ window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_readabilitystats=RTE_Plugin_ReadabilityStats,typeof RTE_DefaultConfig.readabilityStats>"u"&&(RTE_DefaultConfig.readabilityStats=!0);function RTE_Plugin_ReadabilityStats(){var y=this,c,d;y.PluginName="ReadabilityStats",y.InitConfig=function(e){c=e};function r(e,t,a){var i=c&&c["text_"+e]||t;return a===void 0?i:i.split("{0}").join(String(a))}function _(e){return e>=90?r("rd_e90","Very easy (5th grade)"):e>=80?r("rd_e80","Easy (6th grade)"):e>=70?r("rd_e70","Fairly easy (7th grade)"):e>=60?r("rd_e60","Standard (8\u20139th grade)"):e>=50?r("rd_e50","Fairly difficult (10\u201312th grade)"):e>=30?r("rd_e30","Difficult (college)"):r("rd_e0","Very difficult (college graduate)")}y.InitEditor=function(e){d=e,c.readabilityStats!==!1&&(d.countSyllables=function(t){return m(t)},d.getReadabilityStats=function(t){return b(t!=null?String(t):v())},d.attachEvent("exec_command_readability",function(t){t.returnValue=!0,t.stopBubble=!0,T()}))};function v(){try{var e=d.getEditable&&d.getEditable();if(e)return e.innerText||e.textContent||""}catch{}return""}function m(e){if(e=String(e||"").toLowerCase().replace(/[^a-z]/g,""),!e)return 0;if(e.length<=3)return 1;e=e.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/,"").replace(/^y/,"");var t=e.match(/[aeiouy]{1,2}/g);return t?t.length:1}function b(e){e=String(e||"").replace(/\s+/g," ").trim();var t=e?e.split(/\s+/):[],a=t.length,i=e.match(/[^.!?]+[.!?]+/g),n=i?i.length:a?1:0;a&&n===0&&(n=1);for(var l=0,s=0;s<t.length;s++)l+=m(t[s]);var o=e.replace(/\s/g,"").length,u=n?a/n:0,f=a?l/a:0,g=a?206.835-1.015*u-84.6*f:0,p=a?.39*u+11.8*f-15.59:0;g=Math.round(g*10)/10,p=Math.round(p*10)/10;var E=parseInt(c.readabilityWordsPerMinute,10)||200,h=a/E,x=h<1?Math.max(1,Math.round(h*60))+" sec":Math.round(h)+" min";return{words:a,sentences:n,syllables:l,characters:o,avgWordsPerSentence:Math.round(u*10)/10,avgSyllablesPerWord:Math.round(f*100)/100,fleschReadingEase:g,fleschKincaidGrade:Math.max(0,p),readingTimeMinutes:Math.round(h*10)/10,readingTimeText:x,easeLabel:S(g)}}function S(e){return e>=90?"Very easy (5th grade)":e>=80?"Easy (6th grade)":e>=70?"Fairly easy (7th grade)":e>=60?"Standard (8\u20139th grade)":e>=50?"Fairly difficult (10\u201312th grade)":e>=30?"Difficult (college)":"Very difficult (college graduate)"}function T(){var e=b(v());try{var t=d.createDialog(r("readabilitytitle","Readability statistics"),"rte-dialog-readability"),a=t.ownerDocument,i=a.createElement("div");i.style.cssText="padding:14px 18px;min-width:340px;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:#0f172a";for(var n=[[r("rd_ease","Flesch Reading Ease"),e.fleschReadingEase+" \u2014 "+_(e.fleschReadingEase),!0],[r("rd_grade","Flesch\u2013Kincaid Grade"),String(e.fleschKincaidGrade),!1],[r("rd_time","Reading time"),e.readingTimeMinutes<1?r("rd_sec","{0} sec",Math.max(1,Math.round(e.readingTimeMinutes*60))):r("rd_min","{0} min",Math.round(e.readingTimeMinutes)),!1],[r("rd_words","Words"),String(e.words),!1],[r("rd_sentences","Sentences"),String(e.sentences),!1],[r("rd_avgwords","Avg words / sentence"),String(e.avgWordsPerSentence),!1],[r("rd_avgsyll","Avg syllables / word"),String(e.avgSyllablesPerWord),!1],[r("rd_chars","Characters (no spaces)"),String(e.characters),!1]],l=0;l<n.length;l++){var s=a.createElement("div");s.style.cssText="display:flex;justify-content:space-between;gap:24px;padding:6px 0;border-bottom:1px solid #eef2f7"+(n[l][2]?";font-weight:600;font-size:14px":"");var o=a.createElement("span");o.textContent=n[l][0],o.style.color="#475569";var u=a.createElement("span");u.textContent=n[l][1],u.style.textAlign="right",s.appendChild(o),s.appendChild(u),i.appendChild(s)}t.appendChild(i)}catch{window.console&&console.warn("readabilitystats:",e)}}}
@@ -28,6 +28,13 @@ function RTE_Plugin_ReadAloud() {
28
28
  function supported() { return !!synth() && typeof window.SpeechSynthesisUtterance === "function"; }
29
29
 
30
30
  obj.InitConfig = function (argconfig) { config = argconfig; };
31
+ // 2026-10-18 the words read config.text_ keys (language packs), English as the fallback; {0} / {1} fill a template.
32
+ // tools/i18n/plugin-bars-language.mjs
33
+ function pText(key, fallback) {
34
+ var s = (config && config["text_" + key]) || fallback;
35
+ for (var i = 2; i < arguments.length; i++) s = s.split("{" + (i - 2) + "}").join(String(arguments[i]));
36
+ return s;
37
+ }
31
38
 
32
39
  obj.InitEditor = function (argeditor) {
33
40
  editor = argeditor;
@@ -50,7 +57,7 @@ function RTE_Plugin_ReadAloud() {
50
57
  var d = editor.createDialog((editor.getLangText && editor.getLangText("readaloudtitle")) || "Read aloud", "rte-dialog-readaloud");
51
58
  var w = d.ownerDocument.createElement("div");
52
59
  w.style.cssText = "padding:16px;min-width:320px;font:13px -apple-system,Segoe UI,sans-serif";
53
- w.textContent = "This browser does not provide a speech synthesizer (Web Speech API). Read-aloud is unavailable here.";
60
+ w.textContent = pText("ra_unsupported", "This browser does not provide a speech synthesizer (Web Speech API). Read-aloud is unavailable here.");
54
61
  d.appendChild(w);
55
62
  } catch (e) { /* ignore */ }
56
63
  };
@@ -89,7 +96,7 @@ function RTE_Plugin_ReadAloud() {
89
96
 
90
97
  // Split [text] into sentence segments with absolute offsets (base added).
91
98
  function splitSentences(text, base) {
92
- var segs = [], re = /[^.!?\n。!?]*[.!?\n。!?]+|\S[^.!?\n]*$/g, m;
99
+ var segs = [], re = /[^.!?\n\u3002\uff01\uff1f]*[.!?\n\u3002\uff01\uff1f]+|\S[^.!?\n]*$/g, m;
93
100
  while ((m = re.exec(text)) !== null) {
94
101
  if (m[0] && /\S/.test(m[0])) segs.push({ text: m[0], start: base + m.index, end: base + m.index + m[0].length });
95
102
  if (m.index === re.lastIndex) re.lastIndex++; // guard against zero-length
@@ -103,7 +110,7 @@ function RTE_Plugin_ReadAloud() {
103
110
  if (!supported()) { obj.NotifyUnsupported(); return; }
104
111
  obj.Stop(); // reset any prior run
105
112
  var map = buildMap();
106
- if (!map.hasNodes) { setStatus("Nothing to read"); return; }
113
+ if (!map.hasNodes) { setStatus(pText("ra_nothing", "Nothing to read")); return; }
107
114
  // Selection range -> read just the selection; else whole doc.
108
115
  var sel = editor.getSelection ? editor.getSelection() : null;
109
116
  var rStart = 0, rEnd = map.full.length;
@@ -118,7 +125,7 @@ function RTE_Plugin_ReadAloud() {
118
125
  savedRange = (sel && sel.rangeCount) ? sel.getRangeAt(0).cloneRange() : null;
119
126
  var slice = map.full.substring(rStart, rEnd);
120
127
  queue = splitSentences(slice, rStart);
121
- if (!queue.length) { setStatus("Nothing to read"); return; }
128
+ if (!queue.length) { setStatus(pText("ra_nothing", "Nothing to read")); return; }
122
129
  qIndex = 0; speaking = true; paused = false;
123
130
  obj._map = map; obj._opts = opts || {};
124
131
  updatePlayBtn();
@@ -134,7 +141,7 @@ function RTE_Plugin_ReadAloud() {
134
141
  u.rate = Math.min(2, Math.max(0.5, rate));
135
142
  var v = chosenVoice();
136
143
  if (v) u.voice = v;
137
- u.onstart = function () { if (config.readAloudHighlight !== false) highlight(seg); setStatus("Reading… (" + (qIndex + 1) + "/" + queue.length + ")"); };
144
+ u.onstart = function () { if (config.readAloudHighlight !== false) highlight(seg); setStatus(pText("ra_readingof", "Reading\u2026 ({0}/{1})", qIndex + 1, queue.length)); };
138
145
  u.onend = function () { if (!speaking) return; qIndex++; speakNext(); };
139
146
  u.onerror = function () { if (!speaking) return; qIndex++; speakNext(); };
140
147
  try { s.speak(u); } catch (e) { qIndex++; speakNext(); }
@@ -155,11 +162,11 @@ function RTE_Plugin_ReadAloud() {
155
162
 
156
163
  obj.Pause = function () {
157
164
  var s = synth(); if (!s || !speaking) return;
158
- if (!paused) { try { s.pause(); } catch (e) {} paused = true; updatePlayBtn(); setStatus("Paused"); }
165
+ if (!paused) { try { s.pause(); } catch (e) {} paused = true; updatePlayBtn(); setStatus(pText("ra_paused", "Paused")); }
159
166
  };
160
167
  obj.Resume = function () {
161
168
  var s = synth(); if (!s || !speaking) return;
162
- if (paused) { try { s.resume(); } catch (e) {} paused = false; updatePlayBtn(); setStatus("Reading…"); }
169
+ if (paused) { try { s.resume(); } catch (e) {} paused = false; updatePlayBtn(); setStatus(pText("ra_reading", "Reading\u2026")); }
163
170
  };
164
171
  obj.Stop = function () {
165
172
  var s = synth();
@@ -207,16 +214,23 @@ function RTE_Plugin_ReadAloud() {
207
214
  if (bar) return;
208
215
  var d = document;
209
216
  bar = d.createElement("div");
210
- bar.className = "rte-readaloud-bar";
211
- var title = d.createElement("span"); title.className = "rte-readaloud-title"; title.textContent = "Read"; bar.appendChild(title);
212
- playBtn = btn(bar, "Play", "Play / Pause");
213
- var stopBtn = btn(bar, "Stop", "Stop");
214
- voiceSel = d.createElement("select"); voiceSel.className = "rte-readaloud-voice"; voiceSel.title = "Voice"; bar.appendChild(voiceSel);
215
- rateSel = d.createElement("select"); rateSel.className = "rte-readaloud-rate"; rateSel.title = "Speed";
217
+ // 2026-10-17 appended to the page body, outside the editor, so rte-dark could not reach it: mirrored (and
218
+ // rte-auto-dark under a dark system setting). tools/a11y/readaloud-bar-dark.mjs
219
+ var barDark = false;
220
+ try {
221
+ var bk = editor.container && editor.container.classList;
222
+ barDark = !!bk && (bk.contains("rte-dark") || (bk.contains("rte-auto-dark") && !bk.contains("rte-light") && !!(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches)));
223
+ } catch (x) { barDark = false; }
224
+ bar.className = "rte-readaloud-bar" + (barDark ? " rte-readaloud-dark" : "");
225
+ var title = d.createElement("span"); title.className = "rte-readaloud-title"; title.textContent = pText("ra_read", "Read"); bar.appendChild(title);
226
+ playBtn = btn(bar, pText("ra_play", "Play"), pText("ra_playpause", "Play / Pause"));
227
+ var stopBtn = btn(bar, pText("ra_stop", "Stop"), pText("ra_stop", "Stop"));
228
+ voiceSel = d.createElement("select"); voiceSel.className = "rte-readaloud-voice"; voiceSel.title = pText("ra_voice", "Voice"); bar.appendChild(voiceSel);
229
+ rateSel = d.createElement("select"); rateSel.className = "rte-readaloud-rate"; rateSel.title = pText("ra_speed", "Speed");
216
230
  ["0.75", "1", "1.25", "1.5", "2"].forEach(function (r) { var o = d.createElement("option"); o.value = r; o.textContent = r + "x"; if (r === "1") o.selected = true; rateSel.appendChild(o); });
217
231
  bar.appendChild(rateSel);
218
232
  statusEl = d.createElement("span"); statusEl.className = "rte-readaloud-status"; bar.appendChild(statusEl);
219
- var closeBtn = btn(bar, "Close", "Close"); closeBtn.className += " is-close";
233
+ var closeBtn = btn(bar, pText("close", "Close"), pText("close", "Close")); closeBtn.className += " is-close";
220
234
  d.body.appendChild(bar);
221
235
 
222
236
  loadVoices();
@@ -238,6 +252,6 @@ function RTE_Plugin_ReadAloud() {
238
252
  bar = null; playBtn = statusEl = voiceSel = rateSel = null;
239
253
  };
240
254
 
241
- function updatePlayBtn() { if (playBtn) playBtn.textContent = (speaking && !paused) ? "Pause" : "Play"; }
255
+ function updatePlayBtn() { if (playBtn) playBtn.textContent = (speaking && !paused) ? pText("ra_pause", "Pause") : pText("ra_play", "Play"); }
242
256
  function setStatus(t) { if (statusEl) statusEl.textContent = t; }
243
257
  }
@@ -1 +1 @@
1
- window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_readaloud=RTE_Plugin_ReadAloud,RTE_DefaultConfig.readAloudRate=RTE_DefaultConfig.readAloudRate||1,RTE_DefaultConfig.readAloudHighlight=typeof RTE_DefaultConfig.readAloudHighlight>"u"?!0:RTE_DefaultConfig.readAloudHighlight;function RTE_Plugin_ReadAloud(){var r=this,w,f,i=null,N,E,u,h,R=[],v=0,g=!1,m=!1,x=null;r.PluginName="ReadAloud";function C(){return window.speechSynthesis||null}function P(){return!!C()&&typeof window.SpeechSynthesisUtterance=="function"}r.InitConfig=function(e){w=e},r.InitEditor=function(e){f=e,f.readAloud=function(t){r.Start(t||{})},f.stopReadAloud=function(){r.Stop()},f.attachEvent("exec_command_readaloud",function(t){if(t.returnValue=!0,!P()){r.NotifyUnsupported();return}i?r.CloseBar():r.OpenBar()});try{window.addEventListener("pagehide",function(){r.Stop()}),document.addEventListener("visibilitychange",function(){document.hidden&&r.Pause()})}catch{}},r.NotifyUnsupported=function(){try{var e=f.createDialog(f.getLangText&&f.getLangText("readaloudtitle")||"Read aloud","rte-dialog-readaloud"),t=e.ownerDocument.createElement("div");t.style.cssText="padding:16px;min-width:320px;font:13px -apple-system,Segoe UI,sans-serif",t.textContent="This browser does not provide a speech synthesizer (Web Speech API). Read-aloud is unavailable here.",e.appendChild(t)}catch{}};function I(){for(var e=f.getEditable(),t=e.ownerDocument,a=t.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:function(p){for(var c=p.parentNode;c&&c!==e;){var s=c.nodeName;if(s==="SCRIPT"||s==="STYLE"||s==="NOSCRIPT")return NodeFilter.FILTER_REJECT;c=c.parentNode}return p.data&&p.data.length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),n=[],o="",l;l=a.nextNode();)n.push({node:l,start:o.length,len:l.data.length}),o+=l.data;function d(p){for(var c=0;c<n.length;c++){var s=n[c];if(p<=s.start+s.len)return{node:s.node,offset:Math.max(0,p-s.start)}}var b=n[n.length-1];return b?{node:b.node,offset:b.len}:null}function y(p,c){for(var s=0;s<n.length;s++)if(n[s].node===p)return n[s].start+c;return-1}return{full:o,locate:d,globalOffset:y,hasNodes:n.length>0}}function L(e,t){for(var a=[],n=/[^.!?\n。!?]*[.!?\n。!?]+|\S[^.!?\n]*$/g,o;(o=n.exec(e))!==null;)o[0]&&/\S/.test(o[0])&&a.push({text:o[0],start:t+o.index,end:t+o.index+o[0].length}),o.index===n.lastIndex&&n.lastIndex++;return!a.length&&/\S/.test(e)&&a.push({text:e,start:t,end:t+e.length}),a}r.Start=function(e){if(!P()){r.NotifyUnsupported();return}r.Stop();var t=I();if(!t.hasNodes){S("Nothing to read");return}var a=f.getSelection?f.getSelection():null,n=0,o=t.full.length;try{if(a&&a.rangeCount&&!a.isCollapsed){var l=a.getRangeAt(0),d=t.globalOffset(l.startContainer,l.startOffset),y=t.globalOffset(l.endContainer,l.endOffset);d>=0&&y>=0&&y>d&&(n=d,o=y)}}catch{}x=a&&a.rangeCount?a.getRangeAt(0).cloneRange():null;var p=t.full.substring(n,o);if(R=L(p,n),!R.length){S("Nothing to read");return}v=0,g=!0,m=!1,r._map=t,r._opts=e||{},_(),T()};function T(){var e=C();if(!e||v>=R.length){r.Stop();return}var t=R[v],a=new SpeechSynthesisUtterance(t.text),n=r._opts&&r._opts.rate||h&&parseFloat(h.value)||w.readAloudRate||1;a.rate=Math.min(2,Math.max(.5,n));var o=B();o&&(a.voice=o),a.onstart=function(){w.readAloudHighlight!==!1&&O(t),S("Reading\u2026 ("+(v+1)+"/"+R.length+")")},a.onend=function(){g&&(v++,T())},a.onerror=function(){g&&(v++,T())};try{e.speak(a)}catch{v++,T()}}function O(e){try{var t=r._map;if(!t)return;var a=t.locate(e.start),n=t.locate(e.end);if(!a||!n)return;var o=f.getDocument(),l=o.createRange();l.setStart(a.node,a.offset),l.setEnd(n.node,n.offset);var d=f.getSelection();d&&(d.removeAllRanges(),d.addRange(l))}catch{}}r.Pause=function(){var e=C();if(!(!e||!g)&&!m){try{e.pause()}catch{}m=!0,_(),S("Paused")}},r.Resume=function(){var e=C();if(!(!e||!g)&&m){try{e.resume()}catch{}m=!1,_(),S("Reading\u2026")}},r.Stop=function(){var e=C();if(g=!1,m=!1,R=[],v=0,e)try{e.cancel()}catch{}try{if(x){var t=f.getSelection();t&&(t.removeAllRanges(),t.addRange(x))}}catch{}x=null,_(),S("")};function D(){var e=C();if(!(!e||!u)){var t=e.getVoices()||[];if(t.length){var a=u.value;u.innerHTML="",t.forEach(function(n,o){var l=u.ownerDocument.createElement("option");l.value=n.name,l.textContent=n.name+" ("+n.lang+")",n.default&&(l.textContent+=" (default)"),u.appendChild(l)}),a&&(u.value=a)}}}function B(){var e=C();if(!e)return null;var t=e.getVoices()||[];if(r._opts&&r._opts.voice){for(var a=0;a<t.length;a++)if(t[a].name===r._opts.voice)return t[a]}if(u&&u.value){for(var n=0;n<t.length;n++)if(t[n].name===u.value)return t[n]}return null}function A(e,t,a){var n=e.ownerDocument.createElement("button");return n.type="button",n.textContent=t,a&&(n.title=a),n.className="rte-readaloud-button",e.appendChild(n),n}r.OpenBar=function(){if(!i){var e=document;i=e.createElement("div"),i.className="rte-readaloud-bar";var t=e.createElement("span");t.className="rte-readaloud-title",t.textContent="Read",i.appendChild(t),N=A(i,"Play","Play / Pause");var a=A(i,"Stop","Stop");u=e.createElement("select"),u.className="rte-readaloud-voice",u.title="Voice",i.appendChild(u),h=e.createElement("select"),h.className="rte-readaloud-rate",h.title="Speed",["0.75","1","1.25","1.5","2"].forEach(function(l){var d=e.createElement("option");d.value=l,d.textContent=l+"x",l==="1"&&(d.selected=!0),h.appendChild(d)}),i.appendChild(h),E=e.createElement("span"),E.className="rte-readaloud-status",i.appendChild(E);var n=A(i,"Close","Close");n.className+=" is-close",e.body.appendChild(i),D();var o=C();o&&typeof o.addEventListener=="function"&&o.addEventListener("voiceschanged",D),N.onclick=function(){g?m?r.Resume():r.Pause():r.Start({})},a.onclick=function(){r.Stop()},n.onclick=function(){r.CloseBar()},r.Start({})}},r.CloseBar=function(){r.Stop(),i&&i.parentNode&&i.parentNode.removeChild(i),i=null,N=E=u=h=null};function _(){N&&(N.textContent=g&&!m?"Pause":"Play")}function S(e){E&&(E.textContent=e)}}
1
+ window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_readaloud=RTE_Plugin_ReadAloud,RTE_DefaultConfig.readAloudRate=RTE_DefaultConfig.readAloudRate||1,RTE_DefaultConfig.readAloudHighlight=typeof RTE_DefaultConfig.readAloudHighlight>"u"?!0:RTE_DefaultConfig.readAloudHighlight;function RTE_Plugin_ReadAloud(){var r=this,x,d,l=null,N,S,f,v,R=[],m=0,C=!1,_=!1,T=null;r.PluginName="ReadAloud";function E(){return window.speechSynthesis||null}function b(){return!!E()&&typeof window.SpeechSynthesisUtterance=="function"}r.InitConfig=function(e){x=e};function u(e,t){for(var n=x&&x["text_"+e]||t,a=2;a<arguments.length;a++)n=n.split("{"+(a-2)+"}").join(String(arguments[a]));return n}r.InitEditor=function(e){d=e,d.readAloud=function(t){r.Start(t||{})},d.stopReadAloud=function(){r.Stop()},d.attachEvent("exec_command_readaloud",function(t){if(t.returnValue=!0,!b()){r.NotifyUnsupported();return}l?r.CloseBar():r.OpenBar()});try{window.addEventListener("pagehide",function(){r.Stop()}),document.addEventListener("visibilitychange",function(){document.hidden&&r.Pause()})}catch{}},r.NotifyUnsupported=function(){try{var e=d.createDialog(d.getLangText&&d.getLangText("readaloudtitle")||"Read aloud","rte-dialog-readaloud"),t=e.ownerDocument.createElement("div");t.style.cssText="padding:16px;min-width:320px;font:13px -apple-system,Segoe UI,sans-serif",t.textContent=u("ra_unsupported","This browser does not provide a speech synthesizer (Web Speech API). Read-aloud is unavailable here."),e.appendChild(t)}catch{}};function L(){for(var e=d.getEditable(),t=e.ownerDocument,n=t.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:function(s){for(var h=s.parentNode;h&&h!==e;){var p=h.nodeName;if(p==="SCRIPT"||p==="STYLE"||p==="NOSCRIPT")return NodeFilter.FILTER_REJECT;h=h.parentNode}return s.data&&s.data.length?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),a=[],o="",i;i=n.nextNode();)a.push({node:i,start:o.length,len:i.data.length}),o+=i.data;function c(s){for(var h=0;h<a.length;h++){var p=a[h];if(s<=p.start+p.len)return{node:p.node,offset:Math.max(0,s-p.start)}}var D=a[a.length-1];return D?{node:D.node,offset:D.len}:null}function g(s,h){for(var p=0;p<a.length;p++)if(a[p].node===s)return a[p].start+h;return-1}return{full:o,locate:c,globalOffset:g,hasNodes:a.length>0}}function k(e,t){for(var n=[],a=/[^.!?\n\u3002\uff01\uff1f]*[.!?\n\u3002\uff01\uff1f]+|\S[^.!?\n]*$/g,o;(o=a.exec(e))!==null;)o[0]&&/\S/.test(o[0])&&n.push({text:o[0],start:t+o.index,end:t+o.index+o[0].length}),o.index===a.lastIndex&&a.lastIndex++;return!n.length&&/\S/.test(e)&&n.push({text:e,start:t,end:t+e.length}),n}r.Start=function(e){if(!b()){r.NotifyUnsupported();return}r.Stop();var t=L();if(!t.hasNodes){y(u("ra_nothing","Nothing to read"));return}var n=d.getSelection?d.getSelection():null,a=0,o=t.full.length;try{if(n&&n.rangeCount&&!n.isCollapsed){var i=n.getRangeAt(0),c=t.globalOffset(i.startContainer,i.startOffset),g=t.globalOffset(i.endContainer,i.endOffset);c>=0&&g>=0&&g>c&&(a=c,o=g)}}catch{}T=n&&n.rangeCount?n.getRangeAt(0).cloneRange():null;var s=t.full.substring(a,o);if(R=k(s,a),!R.length){y(u("ra_nothing","Nothing to read"));return}m=0,C=!0,_=!1,r._map=t,r._opts=e||{},A(),w()};function w(){var e=E();if(!e||m>=R.length){r.Stop();return}var t=R[m],n=new SpeechSynthesisUtterance(t.text),a=r._opts&&r._opts.rate||v&&parseFloat(v.value)||x.readAloudRate||1;n.rate=Math.min(2,Math.max(.5,a));var o=B();o&&(n.voice=o),n.onstart=function(){x.readAloudHighlight!==!1&&O(t),y(u("ra_readingof","Reading\u2026 ({0}/{1})",m+1,R.length))},n.onend=function(){C&&(m++,w())},n.onerror=function(){C&&(m++,w())};try{e.speak(n)}catch{m++,w()}}function O(e){try{var t=r._map;if(!t)return;var n=t.locate(e.start),a=t.locate(e.end);if(!n||!a)return;var o=d.getDocument(),i=o.createRange();i.setStart(n.node,n.offset),i.setEnd(a.node,a.offset);var c=d.getSelection();c&&(c.removeAllRanges(),c.addRange(i))}catch{}}r.Pause=function(){var e=E();if(!(!e||!C)&&!_){try{e.pause()}catch{}_=!0,A(),y(u("ra_paused","Paused"))}},r.Resume=function(){var e=E();if(!(!e||!C)&&_){try{e.resume()}catch{}_=!1,A(),y(u("ra_reading","Reading\u2026"))}},r.Stop=function(){var e=E();if(C=!1,_=!1,R=[],m=0,e)try{e.cancel()}catch{}try{if(T){var t=d.getSelection();t&&(t.removeAllRanges(),t.addRange(T))}}catch{}T=null,A(),y("")};function I(){var e=E();if(!(!e||!f)){var t=e.getVoices()||[];if(t.length){var n=f.value;f.innerHTML="",t.forEach(function(a,o){var i=f.ownerDocument.createElement("option");i.value=a.name,i.textContent=a.name+" ("+a.lang+")",a.default&&(i.textContent+=" (default)"),f.appendChild(i)}),n&&(f.value=n)}}}function B(){var e=E();if(!e)return null;var t=e.getVoices()||[];if(r._opts&&r._opts.voice){for(var n=0;n<t.length;n++)if(t[n].name===r._opts.voice)return t[n]}if(f&&f.value){for(var a=0;a<t.length;a++)if(t[a].name===f.value)return t[a]}return null}function P(e,t,n){var a=e.ownerDocument.createElement("button");return a.type="button",a.textContent=t,n&&(a.title=n),a.className="rte-readaloud-button",e.appendChild(a),a}r.OpenBar=function(){if(!l){var e=document;l=e.createElement("div");var t=!1;try{var n=d.container&&d.container.classList;t=!!n&&(n.contains("rte-dark")||n.contains("rte-auto-dark")&&!n.contains("rte-light")&&!!(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches))}catch{t=!1}l.className="rte-readaloud-bar"+(t?" rte-readaloud-dark":"");var a=e.createElement("span");a.className="rte-readaloud-title",a.textContent=u("ra_read","Read"),l.appendChild(a),N=P(l,u("ra_play","Play"),u("ra_playpause","Play / Pause"));var o=P(l,u("ra_stop","Stop"),u("ra_stop","Stop"));f=e.createElement("select"),f.className="rte-readaloud-voice",f.title=u("ra_voice","Voice"),l.appendChild(f),v=e.createElement("select"),v.className="rte-readaloud-rate",v.title=u("ra_speed","Speed"),["0.75","1","1.25","1.5","2"].forEach(function(g){var s=e.createElement("option");s.value=g,s.textContent=g+"x",g==="1"&&(s.selected=!0),v.appendChild(s)}),l.appendChild(v),S=e.createElement("span"),S.className="rte-readaloud-status",l.appendChild(S);var i=P(l,u("close","Close"),u("close","Close"));i.className+=" is-close",e.body.appendChild(l),I();var c=E();c&&typeof c.addEventListener=="function"&&c.addEventListener("voiceschanged",I),N.onclick=function(){C?_?r.Resume():r.Pause():r.Start({})},o.onclick=function(){r.Stop()},i.onclick=function(){r.CloseBar()},r.Start({})}},r.CloseBar=function(){r.Stop(),l&&l.parentNode&&l.parentNode.removeChild(l),l=null,N=S=f=v=null};function A(){N&&(N.textContent=C&&!_?u("ra_pause","Pause"):u("ra_play","Play"))}function y(e){S&&(S.textContent=e)}}