postext 1.14.1 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/dist/__tests__/arabic/blockLanguageDigits.test.d.ts +2 -0
  2. package/dist/__tests__/arabic/blockLanguageDigits.test.d.ts.map +1 -0
  3. package/dist/__tests__/arabic/blockLanguageDigits.test.js +54 -0
  4. package/dist/__tests__/arabic/blockLanguageDigits.test.js.map +1 -0
  5. package/dist/__tests__/arabic/emphasis.test.d.ts +2 -0
  6. package/dist/__tests__/arabic/emphasis.test.d.ts.map +1 -0
  7. package/dist/__tests__/arabic/emphasis.test.js +206 -0
  8. package/dist/__tests__/arabic/emphasis.test.js.map +1 -0
  9. package/dist/__tests__/arabic/footnotes.test.d.ts +2 -0
  10. package/dist/__tests__/arabic/footnotes.test.d.ts.map +1 -0
  11. package/dist/__tests__/arabic/footnotes.test.js +118 -0
  12. package/dist/__tests__/arabic/footnotes.test.js.map +1 -0
  13. package/dist/__tests__/arabic/harakat.test.d.ts +2 -0
  14. package/dist/__tests__/arabic/harakat.test.d.ts.map +1 -0
  15. package/dist/__tests__/arabic/harakat.test.js +167 -0
  16. package/dist/__tests__/arabic/harakat.test.js.map +1 -0
  17. package/dist/__tests__/arabic/ornateBrackets.test.d.ts +2 -0
  18. package/dist/__tests__/arabic/ornateBrackets.test.d.ts.map +1 -0
  19. package/dist/__tests__/arabic/ornateBrackets.test.js +71 -0
  20. package/dist/__tests__/arabic/ornateBrackets.test.js.map +1 -0
  21. package/dist/__tests__/arabic/tashkil.test.d.ts +2 -0
  22. package/dist/__tests__/arabic/tashkil.test.d.ts.map +1 -0
  23. package/dist/__tests__/arabic/tashkil.test.js +106 -0
  24. package/dist/__tests__/arabic/tashkil.test.js.map +1 -0
  25. package/dist/__tests__/arabicLocale.test.d.ts +2 -0
  26. package/dist/__tests__/arabicLocale.test.d.ts.map +1 -0
  27. package/dist/__tests__/arabicLocale.test.js +232 -0
  28. package/dist/__tests__/arabicLocale.test.js.map +1 -0
  29. package/dist/__tests__/arabicNumberWords.test.d.ts +2 -0
  30. package/dist/__tests__/arabicNumberWords.test.d.ts.map +1 -0
  31. package/dist/__tests__/arabicNumberWords.test.js +176 -0
  32. package/dist/__tests__/arabicNumberWords.test.js.map +1 -0
  33. package/dist/__tests__/arabicNumbering.test.d.ts +2 -0
  34. package/dist/__tests__/arabicNumbering.test.d.ts.map +1 -0
  35. package/dist/__tests__/arabicNumbering.test.js +257 -0
  36. package/dist/__tests__/arabicNumbering.test.js.map +1 -0
  37. package/dist/__tests__/arabicWords.test.d.ts +2 -0
  38. package/dist/__tests__/arabicWords.test.d.ts.map +1 -0
  39. package/dist/__tests__/arabicWords.test.js +302 -0
  40. package/dist/__tests__/arabicWords.test.js.map +1 -0
  41. package/dist/__tests__/bidi.test.d.ts +2 -0
  42. package/dist/__tests__/bidi.test.d.ts.map +1 -0
  43. package/dist/__tests__/bidi.test.js +282 -0
  44. package/dist/__tests__/bidi.test.js.map +1 -0
  45. package/dist/__tests__/blockHints.test.d.ts +2 -0
  46. package/dist/__tests__/blockHints.test.d.ts.map +1 -0
  47. package/dist/__tests__/blockHints.test.js +79 -0
  48. package/dist/__tests__/blockHints.test.js.map +1 -0
  49. package/dist/__tests__/chineseLocale.test.js +2 -2
  50. package/dist/__tests__/chineseLocale.test.js.map +1 -1
  51. package/dist/__tests__/cjk/grid.test.js +2 -2
  52. package/dist/__tests__/cjk/grid.test.js.map +1 -1
  53. package/dist/__tests__/cjk/justifyRender.test.js +2 -1
  54. package/dist/__tests__/cjk/justifyRender.test.js.map +1 -1
  55. package/dist/__tests__/defaults/folio.test.js +16 -1
  56. package/dist/__tests__/defaults/folio.test.js.map +1 -1
  57. package/dist/__tests__/direction.test.d.ts +2 -0
  58. package/dist/__tests__/direction.test.d.ts.map +1 -0
  59. package/dist/__tests__/direction.test.js +117 -0
  60. package/dist/__tests__/direction.test.js.map +1 -0
  61. package/dist/__tests__/exports.test.js +29 -0
  62. package/dist/__tests__/exports.test.js.map +1 -1
  63. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  64. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  65. package/dist/__tests__/headingNumberPosition.test.d.ts +2 -0
  66. package/dist/__tests__/headingNumberPosition.test.d.ts.map +1 -0
  67. package/dist/__tests__/headingNumberPosition.test.js +87 -0
  68. package/dist/__tests__/headingNumberPosition.test.js.map +1 -0
  69. package/dist/__tests__/htmlCopyText.test.d.ts +2 -0
  70. package/dist/__tests__/htmlCopyText.test.d.ts.map +1 -0
  71. package/dist/__tests__/htmlCopyText.test.js +153 -0
  72. package/dist/__tests__/htmlCopyText.test.js.map +1 -0
  73. package/dist/__tests__/kashida.test.d.ts +2 -0
  74. package/dist/__tests__/kashida.test.d.ts.map +1 -0
  75. package/dist/__tests__/kashida.test.js +281 -0
  76. package/dist/__tests__/kashida.test.js.map +1 -0
  77. package/dist/__tests__/kashidaPatterns.test.d.ts +2 -0
  78. package/dist/__tests__/kashidaPatterns.test.d.ts.map +1 -0
  79. package/dist/__tests__/kashidaPatterns.test.js +143 -0
  80. package/dist/__tests__/kashidaPatterns.test.js.map +1 -0
  81. package/dist/__tests__/links.test.js +3 -1
  82. package/dist/__tests__/links.test.js.map +1 -1
  83. package/dist/__tests__/parse/anchors.test.js +17 -0
  84. package/dist/__tests__/parse/anchors.test.js.map +1 -1
  85. package/dist/__tests__/parse/containers.test.js +1 -1
  86. package/dist/__tests__/parse/containers.test.js.map +1 -1
  87. package/dist/__tests__/rtl/designText.test.d.ts +2 -0
  88. package/dist/__tests__/rtl/designText.test.d.ts.map +1 -0
  89. package/dist/__tests__/rtl/designText.test.js +301 -0
  90. package/dist/__tests__/rtl/designText.test.js.map +1 -0
  91. package/dist/__tests__/rtl/designTextPaint.test.d.ts +2 -0
  92. package/dist/__tests__/rtl/designTextPaint.test.d.ts.map +1 -0
  93. package/dist/__tests__/rtl/designTextPaint.test.js +140 -0
  94. package/dist/__tests__/rtl/designTextPaint.test.js.map +1 -0
  95. package/dist/__tests__/rtl/htmlRtl.test.d.ts +2 -0
  96. package/dist/__tests__/rtl/htmlRtl.test.d.ts.map +1 -0
  97. package/dist/__tests__/rtl/htmlRtl.test.js +175 -0
  98. package/dist/__tests__/rtl/htmlRtl.test.js.map +1 -0
  99. package/dist/__tests__/rtl/mirroredFrame.test.d.ts +2 -0
  100. package/dist/__tests__/rtl/mirroredFrame.test.d.ts.map +1 -0
  101. package/dist/__tests__/rtl/mirroredFrame.test.js +313 -0
  102. package/dist/__tests__/rtl/mirroredFrame.test.js.map +1 -0
  103. package/dist/__tests__/rtl/mirroredPaint.test.d.ts +2 -0
  104. package/dist/__tests__/rtl/mirroredPaint.test.d.ts.map +1 -0
  105. package/dist/__tests__/rtl/mirroredPaint.test.js +116 -0
  106. package/dist/__tests__/rtl/mirroredPaint.test.js.map +1 -0
  107. package/dist/__tests__/rtl/oppositeBlocks.test.d.ts +2 -0
  108. package/dist/__tests__/rtl/oppositeBlocks.test.d.ts.map +1 -0
  109. package/dist/__tests__/rtl/oppositeBlocks.test.js +273 -0
  110. package/dist/__tests__/rtl/oppositeBlocks.test.js.map +1 -0
  111. package/dist/__tests__/rtl/segmentLang.test.d.ts +2 -0
  112. package/dist/__tests__/rtl/segmentLang.test.d.ts.map +1 -0
  113. package/dist/__tests__/rtl/segmentLang.test.js +54 -0
  114. package/dist/__tests__/rtl/segmentLang.test.js.map +1 -0
  115. package/dist/__tests__/rtlLines.test.d.ts +2 -0
  116. package/dist/__tests__/rtlLines.test.d.ts.map +1 -0
  117. package/dist/__tests__/rtlLines.test.js +180 -0
  118. package/dist/__tests__/rtlLines.test.js.map +1 -0
  119. package/dist/__tests__/tocNumberColumn.test.d.ts +2 -0
  120. package/dist/__tests__/tocNumberColumn.test.d.ts.map +1 -0
  121. package/dist/__tests__/tocNumberColumn.test.js +67 -0
  122. package/dist/__tests__/tocNumberColumn.test.js.map +1 -0
  123. package/dist/__tests__/verse.test.d.ts +2 -0
  124. package/dist/__tests__/verse.test.d.ts.map +1 -0
  125. package/dist/__tests__/verse.test.js +232 -0
  126. package/dist/__tests__/verse.test.js.map +1 -0
  127. package/dist/__tests__/vertical/geometry.test.js +2 -2
  128. package/dist/__tests__/vertical/geometry.test.js.map +1 -1
  129. package/dist/__tests__/vertical/htmlTurnedCells.test.js +2 -2
  130. package/dist/__tests__/vertical/htmlTurnedCells.test.js.map +1 -1
  131. package/dist/arabicMarks.d.ts +80 -0
  132. package/dist/arabicMarks.d.ts.map +1 -0
  133. package/dist/arabicMarks.js +267 -0
  134. package/dist/arabicMarks.js.map +1 -0
  135. package/dist/arabicNumberWords.d.ts +43 -0
  136. package/dist/arabicNumberWords.d.ts.map +1 -0
  137. package/dist/arabicNumberWords.js +163 -0
  138. package/dist/arabicNumberWords.js.map +1 -0
  139. package/dist/arabicNumerals.d.ts +54 -0
  140. package/dist/arabicNumerals.d.ts.map +1 -0
  141. package/dist/arabicNumerals.js +143 -0
  142. package/dist/arabicNumerals.js.map +1 -0
  143. package/dist/bidi.d.ts +186 -0
  144. package/dist/bidi.d.ts.map +1 -0
  145. package/dist/bidi.js +851 -0
  146. package/dist/bidi.js.map +1 -0
  147. package/dist/bidiData.d.ts +13 -0
  148. package/dist/bidiData.d.ts.map +1 -0
  149. package/dist/bidiData.js +318 -0
  150. package/dist/bidiData.js.map +1 -0
  151. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  152. package/dist/canvas-backend/blockRender.js +58 -27
  153. package/dist/canvas-backend/blockRender.js.map +1 -1
  154. package/dist/canvas-backend/chip.d.ts.map +1 -1
  155. package/dist/canvas-backend/chip.js +16 -2
  156. package/dist/canvas-backend/chip.js.map +1 -1
  157. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  158. package/dist/canvas-backend/headerFooter.js +7 -3
  159. package/dist/canvas-backend/headerFooter.js.map +1 -1
  160. package/dist/canvas-backend/index.d.ts.map +1 -1
  161. package/dist/canvas-backend/index.js +9 -4
  162. package/dist/canvas-backend/index.js.map +1 -1
  163. package/dist/canvas-backend/mirrorFrame.d.ts +38 -0
  164. package/dist/canvas-backend/mirrorFrame.d.ts.map +1 -0
  165. package/dist/canvas-backend/mirrorFrame.js +129 -0
  166. package/dist/canvas-backend/mirrorFrame.js.map +1 -0
  167. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  168. package/dist/canvas-backend/renderResourceBlock.js +16 -5
  169. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  170. package/dist/canvas-backend/runDirection.d.ts +21 -0
  171. package/dist/canvas-backend/runDirection.d.ts.map +1 -0
  172. package/dist/canvas-backend/runDirection.js +46 -0
  173. package/dist/canvas-backend/runDirection.js.map +1 -0
  174. package/dist/canvas-backend/wordRuns.d.ts +49 -0
  175. package/dist/canvas-backend/wordRuns.d.ts.map +1 -0
  176. package/dist/canvas-backend/wordRuns.js +111 -0
  177. package/dist/canvas-backend/wordRuns.js.map +1 -0
  178. package/dist/columnClip.d.ts +4 -1
  179. package/dist/columnClip.d.ts.map +1 -1
  180. package/dist/columnClip.js +8 -3
  181. package/dist/columnClip.js.map +1 -1
  182. package/dist/configWarnings.d.ts +3 -1
  183. package/dist/configWarnings.d.ts.map +1 -1
  184. package/dist/configWarnings.js +59 -5
  185. package/dist/configWarnings.js.map +1 -1
  186. package/dist/defaults/bodyText.d.ts +28 -6
  187. package/dist/defaults/bodyText.d.ts.map +1 -1
  188. package/dist/defaults/bodyText.js +158 -30
  189. package/dist/defaults/bodyText.js.map +1 -1
  190. package/dist/defaults/calloutStyles.js +1 -1
  191. package/dist/defaults/calloutStyles.js.map +1 -1
  192. package/dist/defaults/captionStyle.js +5 -5
  193. package/dist/defaults/captionStyle.js.map +1 -1
  194. package/dist/defaults/folio.d.ts +4 -0
  195. package/dist/defaults/folio.d.ts.map +1 -1
  196. package/dist/defaults/folio.js +12 -1
  197. package/dist/defaults/folio.js.map +1 -1
  198. package/dist/defaults/footnotes.d.ts.map +1 -1
  199. package/dist/defaults/footnotes.js +12 -2
  200. package/dist/defaults/footnotes.js.map +1 -1
  201. package/dist/defaults/headerFooter.d.ts.map +1 -1
  202. package/dist/defaults/headerFooter.js +1 -0
  203. package/dist/defaults/headerFooter.js.map +1 -1
  204. package/dist/defaults/headingStyles.d.ts.map +1 -1
  205. package/dist/defaults/headingStyles.js +2 -1
  206. package/dist/defaults/headingStyles.js.map +1 -1
  207. package/dist/defaults/headings.d.ts.map +1 -1
  208. package/dist/defaults/headings.js +9 -2
  209. package/dist/defaults/headings.js.map +1 -1
  210. package/dist/defaults/index.d.ts +1 -1
  211. package/dist/defaults/index.d.ts.map +1 -1
  212. package/dist/defaults/index.js +7 -1
  213. package/dist/defaults/index.js.map +1 -1
  214. package/dist/defaults/indexConfig.d.ts +6 -2
  215. package/dist/defaults/indexConfig.d.ts.map +1 -1
  216. package/dist/defaults/indexConfig.js +25 -5
  217. package/dist/defaults/indexConfig.js.map +1 -1
  218. package/dist/defaults/page.d.ts +7 -4
  219. package/dist/defaults/page.d.ts.map +1 -1
  220. package/dist/defaults/page.js +10 -7
  221. package/dist/defaults/page.js.map +1 -1
  222. package/dist/defaults/paragraphStyles.js +2 -2
  223. package/dist/defaults/paragraphStyles.js.map +1 -1
  224. package/dist/defaults/parts.d.ts.map +1 -1
  225. package/dist/defaults/parts.js +2 -1
  226. package/dist/defaults/parts.js.map +1 -1
  227. package/dist/defaults/resourceTypes.d.ts +1 -1
  228. package/dist/defaults/resourceTypes.d.ts.map +1 -1
  229. package/dist/defaults/resourceTypes.js +10 -2
  230. package/dist/defaults/resourceTypes.js.map +1 -1
  231. package/dist/defaults/shared.d.ts +9 -0
  232. package/dist/defaults/shared.d.ts.map +1 -1
  233. package/dist/defaults/shared.js +15 -0
  234. package/dist/defaults/shared.js.map +1 -1
  235. package/dist/defaults/tableStyle.d.ts.map +1 -1
  236. package/dist/defaults/tableStyle.js +5 -1
  237. package/dist/defaults/tableStyle.js.map +1 -1
  238. package/dist/design/bidiText.d.ts +89 -0
  239. package/dist/design/bidiText.d.ts.map +1 -0
  240. package/dist/design/bidiText.js +165 -0
  241. package/dist/design/bidiText.js.map +1 -0
  242. package/dist/design/layout.d.ts +20 -0
  243. package/dist/design/layout.d.ts.map +1 -1
  244. package/dist/design/layout.js +46 -5
  245. package/dist/design/layout.js.map +1 -1
  246. package/dist/design/placeholders.d.ts +7 -1
  247. package/dist/design/placeholders.d.ts.map +1 -1
  248. package/dist/design/placeholders.js +6 -3
  249. package/dist/design/placeholders.js.map +1 -1
  250. package/dist/design/richText.d.ts +5 -2
  251. package/dist/design/richText.d.ts.map +1 -1
  252. package/dist/design/richText.js +35 -2
  253. package/dist/design/richText.js.map +1 -1
  254. package/dist/emphasisOverline.d.ts +27 -0
  255. package/dist/emphasisOverline.d.ts.map +1 -0
  256. package/dist/emphasisOverline.js +107 -0
  257. package/dist/emphasisOverline.js.map +1 -0
  258. package/dist/frontmatter.d.ts +25 -6
  259. package/dist/frontmatter.d.ts.map +1 -1
  260. package/dist/frontmatter.js +51 -10
  261. package/dist/frontmatter.js.map +1 -1
  262. package/dist/html-backend.d.ts +4 -1
  263. package/dist/html-backend.d.ts.map +1 -1
  264. package/dist/html-backend.js +363 -87
  265. package/dist/html-backend.js.map +1 -1
  266. package/dist/hyphenate.d.ts.map +1 -1
  267. package/dist/hyphenate.js +4 -1
  268. package/dist/hyphenate.js.map +1 -1
  269. package/dist/index.d.ts +11 -8
  270. package/dist/index.d.ts.map +1 -1
  271. package/dist/index.js +6 -4
  272. package/dist/index.js.map +1 -1
  273. package/dist/knuthPlass/breakpoints.d.ts.map +1 -1
  274. package/dist/knuthPlass/breakpoints.js +3 -0
  275. package/dist/knuthPlass/breakpoints.js.map +1 -1
  276. package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
  277. package/dist/knuthPlass/pretextAdapter.js +9 -3
  278. package/dist/knuthPlass/pretextAdapter.js.map +1 -1
  279. package/dist/knuthPlass/richAdapter.d.ts +11 -0
  280. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  281. package/dist/knuthPlass/richAdapter.js +11 -4
  282. package/dist/knuthPlass/richAdapter.js.map +1 -1
  283. package/dist/knuthPlass/tracking.d.ts +2 -1
  284. package/dist/knuthPlass/tracking.d.ts.map +1 -1
  285. package/dist/knuthPlass/tracking.js +5 -2
  286. package/dist/knuthPlass/tracking.js.map +1 -1
  287. package/dist/knuthPlass/types.d.ts +4 -0
  288. package/dist/knuthPlass/types.d.ts.map +1 -1
  289. package/dist/locale.d.ts +63 -9
  290. package/dist/locale.d.ts.map +1 -1
  291. package/dist/locale.js +129 -12
  292. package/dist/locale.js.map +1 -1
  293. package/dist/measure/bidiLines.d.ts +91 -0
  294. package/dist/measure/bidiLines.d.ts.map +1 -0
  295. package/dist/measure/bidiLines.js +293 -0
  296. package/dist/measure/bidiLines.js.map +1 -0
  297. package/dist/measure/cache.d.ts.map +1 -1
  298. package/dist/measure/cache.js +10 -4
  299. package/dist/measure/cache.js.map +1 -1
  300. package/dist/measure/joining.d.ts +39 -0
  301. package/dist/measure/joining.d.ts.map +1 -0
  302. package/dist/measure/joining.js +91 -0
  303. package/dist/measure/joining.js.map +1 -0
  304. package/dist/measure/joiningGroups.d.ts +7 -0
  305. package/dist/measure/joiningGroups.d.ts.map +1 -0
  306. package/dist/measure/joiningGroups.js +110 -0
  307. package/dist/measure/joiningGroups.js.map +1 -0
  308. package/dist/measure/kashida.d.ts +97 -0
  309. package/dist/measure/kashida.d.ts.map +1 -0
  310. package/dist/measure/kashida.js +285 -0
  311. package/dist/measure/kashida.js.map +1 -0
  312. package/dist/measure/kashidaPatterns.d.ts +109 -0
  313. package/dist/measure/kashidaPatterns.d.ts.map +1 -0
  314. package/dist/measure/kashidaPatterns.js +519 -0
  315. package/dist/measure/kashidaPatterns.js.map +1 -0
  316. package/dist/measure/links.d.ts.map +1 -1
  317. package/dist/measure/links.js +5 -2
  318. package/dist/measure/links.js.map +1 -1
  319. package/dist/measure/plain.d.ts.map +1 -1
  320. package/dist/measure/plain.js +31 -0
  321. package/dist/measure/plain.js.map +1 -1
  322. package/dist/measure/rich.d.ts +24 -0
  323. package/dist/measure/rich.d.ts.map +1 -1
  324. package/dist/measure/rich.js +250 -22
  325. package/dist/measure/rich.js.map +1 -1
  326. package/dist/measure/types.d.ts +14 -0
  327. package/dist/measure/types.d.ts.map +1 -1
  328. package/dist/measure/types.js.map +1 -1
  329. package/dist/numberWords.d.ts +17 -4
  330. package/dist/numberWords.d.ts.map +1 -1
  331. package/dist/numberWords.js +19 -13
  332. package/dist/numberWords.js.map +1 -1
  333. package/dist/numbering.d.ts +49 -11
  334. package/dist/numbering.d.ts.map +1 -1
  335. package/dist/numbering.js +117 -21
  336. package/dist/numbering.js.map +1 -1
  337. package/dist/parse/annotations.d.ts +6 -3
  338. package/dist/parse/annotations.d.ts.map +1 -1
  339. package/dist/parse/annotations.js +31 -7
  340. package/dist/parse/annotations.js.map +1 -1
  341. package/dist/parse/attrs.d.ts +3 -3
  342. package/dist/parse/attrs.d.ts.map +1 -1
  343. package/dist/parse/attrs.js +5 -4
  344. package/dist/parse/attrs.js.map +1 -1
  345. package/dist/parse/blockParser.d.ts.map +1 -1
  346. package/dist/parse/blockParser.js +158 -14
  347. package/dist/parse/blockParser.js.map +1 -1
  348. package/dist/parse/index.d.ts +1 -1
  349. package/dist/parse/index.d.ts.map +1 -1
  350. package/dist/parse/index.js.map +1 -1
  351. package/dist/parse/indexMarks.d.ts.map +1 -1
  352. package/dist/parse/indexMarks.js +32 -10
  353. package/dist/parse/indexMarks.js.map +1 -1
  354. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  355. package/dist/parse/inlineFormatting.js +5 -4
  356. package/dist/parse/inlineFormatting.js.map +1 -1
  357. package/dist/parse/types.d.ts +63 -1
  358. package/dist/parse/types.d.ts.map +1 -1
  359. package/dist/pipeline/build.d.ts.map +1 -1
  360. package/dist/pipeline/build.js +161 -43
  361. package/dist/pipeline/build.js.map +1 -1
  362. package/dist/pipeline/buildBlockKind.d.ts +2 -0
  363. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  364. package/dist/pipeline/buildBlockKind.js +67 -2
  365. package/dist/pipeline/buildBlockKind.js.map +1 -1
  366. package/dist/pipeline/buildHelpers.d.ts +22 -1
  367. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  368. package/dist/pipeline/buildHelpers.js +55 -5
  369. package/dist/pipeline/buildHelpers.js.map +1 -1
  370. package/dist/pipeline/calloutLayout.d.ts +6 -1
  371. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  372. package/dist/pipeline/calloutLayout.js +63 -18
  373. package/dist/pipeline/calloutLayout.js.map +1 -1
  374. package/dist/pipeline/citations.d.ts +2 -1
  375. package/dist/pipeline/citations.d.ts.map +1 -1
  376. package/dist/pipeline/citations.js +29 -9
  377. package/dist/pipeline/citations.js.map +1 -1
  378. package/dist/pipeline/cjkGrid.d.ts +3 -2
  379. package/dist/pipeline/cjkGrid.d.ts.map +1 -1
  380. package/dist/pipeline/cjkGrid.js +3 -2
  381. package/dist/pipeline/cjkGrid.js.map +1 -1
  382. package/dist/pipeline/config.d.ts +13 -1
  383. package/dist/pipeline/config.d.ts.map +1 -1
  384. package/dist/pipeline/config.js +32 -3
  385. package/dist/pipeline/config.js.map +1 -1
  386. package/dist/pipeline/contentWarnings.d.ts +10 -0
  387. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  388. package/dist/pipeline/contentWarnings.js +88 -0
  389. package/dist/pipeline/contentWarnings.js.map +1 -1
  390. package/dist/pipeline/continuation.d.ts.map +1 -1
  391. package/dist/pipeline/continuation.js +1 -1
  392. package/dist/pipeline/continuation.js.map +1 -1
  393. package/dist/pipeline/crossRefs.d.ts.map +1 -1
  394. package/dist/pipeline/crossRefs.js +2 -0
  395. package/dist/pipeline/crossRefs.js.map +1 -1
  396. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  397. package/dist/pipeline/floatPlacement.js +2 -1
  398. package/dist/pipeline/floatPlacement.js.map +1 -1
  399. package/dist/pipeline/footnotes.d.ts +13 -5
  400. package/dist/pipeline/footnotes.d.ts.map +1 -1
  401. package/dist/pipeline/footnotes.js +19 -8
  402. package/dist/pipeline/footnotes.js.map +1 -1
  403. package/dist/pipeline/headerFooter.d.ts +4 -0
  404. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  405. package/dist/pipeline/headerFooter.js +41 -13
  406. package/dist/pipeline/headerFooter.js.map +1 -1
  407. package/dist/pipeline/headingDesignCuts.d.ts +1 -1
  408. package/dist/pipeline/headingDesignCuts.d.ts.map +1 -1
  409. package/dist/pipeline/headingDesignCuts.js +2 -1
  410. package/dist/pipeline/headingDesignCuts.js.map +1 -1
  411. package/dist/pipeline/headingStyles.d.ts +10 -0
  412. package/dist/pipeline/headingStyles.d.ts.map +1 -1
  413. package/dist/pipeline/headingStyles.js +46 -0
  414. package/dist/pipeline/headingStyles.js.map +1 -1
  415. package/dist/pipeline/indexDirective.d.ts.map +1 -1
  416. package/dist/pipeline/indexDirective.js +33 -6
  417. package/dist/pipeline/indexDirective.js.map +1 -1
  418. package/dist/pipeline/indexGroups.d.ts +23 -1
  419. package/dist/pipeline/indexGroups.d.ts.map +1 -1
  420. package/dist/pipeline/indexGroups.js +50 -1
  421. package/dist/pipeline/indexGroups.js.map +1 -1
  422. package/dist/pipeline/lists.d.ts +16 -4
  423. package/dist/pipeline/lists.d.ts.map +1 -1
  424. package/dist/pipeline/lists.js +51 -12
  425. package/dist/pipeline/lists.js.map +1 -1
  426. package/dist/pipeline/measureContentBlock.d.ts +5 -0
  427. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  428. package/dist/pipeline/measureContentBlock.js +63 -4
  429. package/dist/pipeline/measureContentBlock.js.map +1 -1
  430. package/dist/pipeline/mirrorFrame.d.ts +37 -0
  431. package/dist/pipeline/mirrorFrame.d.ts.map +1 -0
  432. package/dist/pipeline/mirrorFrame.js +143 -0
  433. package/dist/pipeline/mirrorFrame.js.map +1 -0
  434. package/dist/pipeline/outline.d.ts +2 -2
  435. package/dist/pipeline/outline.d.ts.map +1 -1
  436. package/dist/pipeline/outline.js +33 -6
  437. package/dist/pipeline/outline.js.map +1 -1
  438. package/dist/pipeline/paragraphContainers.d.ts +5 -0
  439. package/dist/pipeline/paragraphContainers.d.ts.map +1 -1
  440. package/dist/pipeline/paragraphContainers.js +12 -0
  441. package/dist/pipeline/paragraphContainers.js.map +1 -1
  442. package/dist/pipeline/parts.d.ts +1 -1
  443. package/dist/pipeline/parts.d.ts.map +1 -1
  444. package/dist/pipeline/parts.js +3 -2
  445. package/dist/pipeline/parts.js.map +1 -1
  446. package/dist/pipeline/placeholders.d.ts +13 -6
  447. package/dist/pipeline/placeholders.d.ts.map +1 -1
  448. package/dist/pipeline/placeholders.js +15 -11
  449. package/dist/pipeline/placeholders.js.map +1 -1
  450. package/dist/pipeline/placement.d.ts +3 -2
  451. package/dist/pipeline/placement.d.ts.map +1 -1
  452. package/dist/pipeline/placement.js +18 -6
  453. package/dist/pipeline/placement.js.map +1 -1
  454. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  455. package/dist/pipeline/resourceLayout.js +70 -7
  456. package/dist/pipeline/resourceLayout.js.map +1 -1
  457. package/dist/pipeline/resourceNumbering.d.ts +5 -3
  458. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  459. package/dist/pipeline/resourceNumbering.js +11 -8
  460. package/dist/pipeline/resourceNumbering.js.map +1 -1
  461. package/dist/pipeline/styles.d.ts +6 -1
  462. package/dist/pipeline/styles.d.ts.map +1 -1
  463. package/dist/pipeline/styles.js +44 -14
  464. package/dist/pipeline/styles.js.map +1 -1
  465. package/dist/pipeline/tashkil.d.ts +27 -0
  466. package/dist/pipeline/tashkil.d.ts.map +1 -0
  467. package/dist/pipeline/tashkil.js +161 -0
  468. package/dist/pipeline/tashkil.js.map +1 -0
  469. package/dist/pipeline/toc.d.ts +12 -0
  470. package/dist/pipeline/toc.d.ts.map +1 -1
  471. package/dist/pipeline/toc.js +64 -4
  472. package/dist/pipeline/toc.js.map +1 -1
  473. package/dist/pipeline/verse.d.ts +65 -0
  474. package/dist/pipeline/verse.d.ts.map +1 -0
  475. package/dist/pipeline/verse.js +252 -0
  476. package/dist/pipeline/verse.js.map +1 -0
  477. package/dist/pipeline/verticalMetrics.d.ts +1 -1
  478. package/dist/pipeline/verticalMetrics.d.ts.map +1 -1
  479. package/dist/pipeline/verticalMetrics.js +7 -5
  480. package/dist/pipeline/verticalMetrics.js.map +1 -1
  481. package/dist/table/model.d.ts +4 -3
  482. package/dist/table/model.d.ts.map +1 -1
  483. package/dist/table/model.js.map +1 -1
  484. package/dist/types.d.ts +286 -36
  485. package/dist/types.d.ts.map +1 -1
  486. package/dist/uprightArabic.d.ts +39 -0
  487. package/dist/uprightArabic.d.ts.map +1 -0
  488. package/dist/uprightArabic.js +105 -0
  489. package/dist/uprightArabic.js.map +1 -0
  490. package/dist/vdt.d.ts +276 -11
  491. package/dist/vdt.d.ts.map +1 -1
  492. package/dist/vdt.js +46 -9
  493. package/dist/vdt.js.map +1 -1
  494. package/package.json +1 -1
@@ -0,0 +1,519 @@
1
+ /**
2
+ * Where a kashida may go in an Arabic word, and how good a place it is: a
3
+ * port of raqim-kashida (Khaled Hosny, aliftype, MIT licence,
4
+ * https://github.com/aliftype/raqim-kashida, at e217f98c), its pattern
5
+ * language and its built-in sets.
6
+ *
7
+ * A pattern set scores the connections of a word's joined runs (letters
8
+ * that connect to each other: `المبتعث` is the run ا and the run لمبتعث). A
9
+ * pattern is a row of tokens (a letter, a joining group `@Beh` that folds
10
+ * the letters sharing its skeleton in a given position, a set `{…}`, `*`
11
+ * any joining letter, `.` the run's edge) with a priority digit 0–9, or
12
+ * `!` (forbidden), in the gaps between them; `9\6` drops by one per letter
13
+ * the run is longer than the guard's floor (`[4:]`) or, with `[:4:]`, away
14
+ * from it either way. The last rule that speaks at a connection wins. A
15
+ * point is only ever a real connection: never after a right-joining letter
16
+ * (ا د ذ ر ز و ة), never at a run's edge, never across a ZWNJ.
17
+ *
18
+ * The sets:
19
+ * - `naskh` — Benatia, Elyaakoubi & Lazrek's matrix (TUGboat 27(2), 2006)
20
+ * overridden by Fawzi Salim Afifi's calligraphy manual: nothing after kāf
21
+ * or lām (so never inside lām-alif), nothing before ṣād, ʿayn, wāw, ḥāʾ
22
+ * or a final fāʾ/qāf/yāʾ, 4-letter runs best, a final pronoun hāʾ best
23
+ * stretched just before it. For Amiri, Noto Naskh, Scheherazade…
24
+ * - `simple` — the Microsoft priorities (IE 5.5's `text-kashida`): after
25
+ * an initial or medial sīn/ṣād, before a final hāʾ/dāl, alif/ṭāʾ/lām/
26
+ * kāf, wāw/ʿayn/qāf/fāʾ, before any other final letter; never inside
27
+ * lām-alif.
28
+ * - `nastaliq` — naskh tailored after Afifi's Persian volume.
29
+ *
30
+ * Indices: the points are given as UTF-16 offsets in the word where a
31
+ * tatweel (U+0640) goes: after the whole cluster of the letter before the
32
+ * connection (its harakat included) and after a tatweel that seats a mark.
33
+ * A tatweel the author typed is a letter of its run like any other.
34
+ */
35
+ import { joiningTypeOf } from '../bidi';
36
+ import { JOINING_GROUP_NAMES, JOINING_GROUP_RANGES } from './joiningGroups';
37
+ const TATWEEL = 0x0640;
38
+ const ZWNJ = 0x200C;
39
+ const ZWJ = 0x200D;
40
+ function joiningGroupOf(cp) {
41
+ if (cp < 0x0600 || cp > 0x08FF)
42
+ return undefined;
43
+ const r = JOINING_GROUP_RANGES;
44
+ let lo = 0;
45
+ let hi = r.length / 3 - 1;
46
+ while (lo <= hi) {
47
+ const mid = (lo + hi) >> 1;
48
+ if (cp < r[mid * 3])
49
+ hi = mid - 1;
50
+ else if (cp > r[mid * 3 + 1])
51
+ lo = mid + 1;
52
+ else
53
+ return JOINING_GROUP_NAMES[r[mid * 3 + 2]];
54
+ }
55
+ return undefined;
56
+ }
57
+ /** A character that stays in the cluster of the one before it (UAX #29
58
+ * extenders as far as Arabic needs: the transparent marks, ZWJ, ZWNJ). */
59
+ function extendsCluster(cp) {
60
+ return cp === ZWJ || cp === ZWNJ || joiningTypeOf(cp) === 'T';
61
+ }
62
+ function isJoining(t) {
63
+ return t === 'D' || t === 'R' || t === 'L' || t === 'C';
64
+ }
65
+ function splitGraphemes(text) {
66
+ const out = [];
67
+ for (let i = 0; i < text.length;) {
68
+ const base = text.codePointAt(i);
69
+ const start = i;
70
+ i += base > 0xFFFF ? 2 : 1;
71
+ let type = joiningTypeOf(base);
72
+ let nonJoiningAfter = false;
73
+ let joinCausingAfter = false;
74
+ let mark = false;
75
+ while (i < text.length) {
76
+ const cp = text.codePointAt(i);
77
+ if (!extendsCluster(cp))
78
+ break;
79
+ const t = joiningTypeOf(cp);
80
+ if (t === 'U')
81
+ nonJoiningAfter = true;
82
+ else if (t === 'C')
83
+ joinCausingAfter = true;
84
+ else if (t === 'T')
85
+ mark = true;
86
+ i += cp > 0xFFFF ? 2 : 1;
87
+ }
88
+ // A ZWNJ in the cluster cuts the join after it; a ZWJ makes a
89
+ // dual-joining letter join on.
90
+ if (nonJoiningAfter) {
91
+ if (type === 'D' || type === 'C')
92
+ type = 'R';
93
+ else if (type === 'L' || type === 'T')
94
+ type = 'U';
95
+ }
96
+ else if (type === 'D' && joinCausingAfter) {
97
+ type = 'C';
98
+ }
99
+ out.push({ start, end: i, base, group: joiningGroupOf(base), type, seat: base === TATWEEL && mark });
100
+ }
101
+ return out;
102
+ }
103
+ function joinsLeft(g, i) {
104
+ const cur = g[i];
105
+ if (!isJoining(cur.type) || cur.type === 'R')
106
+ return false;
107
+ const next = g[i + 1];
108
+ return next !== undefined && isJoining(next.type) && next.type !== 'L';
109
+ }
110
+ function joinsRight(g, i) {
111
+ const cur = g[i];
112
+ if (!isJoining(cur.type) || cur.type === 'L')
113
+ return false;
114
+ const prev = g[i - 1];
115
+ return prev !== undefined && isJoining(prev.type) && prev.type !== 'R';
116
+ }
117
+ function formOf(g, i) {
118
+ const right = joinsRight(g, i);
119
+ const left = joinsLeft(g, i);
120
+ return right ? (left ? 'medial' : 'final') : (left ? 'initial' : 'isolated');
121
+ }
122
+ /** The joined runs: maximal rows of letters connected to each other
123
+ * (grapheme indices). Marks and seat tatweels are no letters of a run. */
124
+ function joinedRuns(g) {
125
+ const out = [];
126
+ let cur = [];
127
+ for (let i = 0; i < g.length; i++) {
128
+ const x = g[i];
129
+ if (x.type === 'T' || x.seat)
130
+ continue;
131
+ if (!isJoining(x.type)) {
132
+ if (cur.length > 0)
133
+ out.push(cur);
134
+ cur = [];
135
+ continue;
136
+ }
137
+ const last = cur[cur.length - 1];
138
+ if (last !== undefined && (g[last].type === 'R' || x.type === 'L')) {
139
+ out.push(cur);
140
+ cur = [];
141
+ }
142
+ cur.push(i);
143
+ }
144
+ if (cur.length > 0)
145
+ out.push(cur);
146
+ return out;
147
+ }
148
+ // ---------------------------------------------------------------------------
149
+ // Rasm folding: groups sharing a skeleton in some positions. Only the first
150
+ // group of a class folds the others (@Beh takes an initial noon, @Noon never
151
+ // takes a beh).
152
+ const RASM_CLASSES = [
153
+ { groups: ['Beh', 'Noon', 'African_Noon', 'Nya', 'Yeh', 'Farsi_Yeh'], forms: ['initial', 'medial'] },
154
+ { groups: ['Feh', 'African_Feh', 'Qaf', 'African_Qaf'], forms: ['initial', 'medial'] },
155
+ { groups: ['Feh', 'African_Feh'], forms: ['final', 'isolated'] },
156
+ { groups: ['Qaf', 'African_Qaf'], forms: ['final', 'isolated'] },
157
+ { groups: ['Heh', 'Heh_Goal', 'Teh_Marbuta', 'Teh_Marbuta_Goal'], forms: ['final', 'isolated'] },
158
+ { groups: ['Noon', 'African_Noon', 'Nya'], forms: ['final', 'isolated'] },
159
+ { groups: ['Yeh', 'Farsi_Yeh', 'Yeh_With_Tail'], forms: ['final', 'isolated'] },
160
+ { groups: ['Yeh_Barree', 'Burushaski_Yeh_Barree'], forms: ['final', 'isolated'] },
161
+ { groups: ['Kaf', 'Gaf'], forms: ['initial', 'medial'] },
162
+ ];
163
+ function rasmMatches(token, group, form) {
164
+ for (const cls of RASM_CLASSES) {
165
+ if (!cls.forms.includes(form) || !cls.groups.includes(token))
166
+ continue;
167
+ return cls.groups[0] === token && group !== undefined && cls.groups.includes(group);
168
+ }
169
+ return token === group;
170
+ }
171
+ /** A pattern line that does not compile: `line` is 1-based. */
172
+ export class KashidaPatternError extends Error {
173
+ line;
174
+ constructor(message, line) {
175
+ super(`${message} (line ${line})`);
176
+ this.line = line;
177
+ this.name = 'KashidaPatternError';
178
+ }
179
+ }
180
+ const KNOWN_GROUPS = new Set(JOINING_GROUP_NAMES);
181
+ function referenceToken(name) {
182
+ const bare = name.slice(1);
183
+ if (bare === 'Tatweel')
184
+ return { kind: 'literal', cp: TATWEEL };
185
+ if (!KNOWN_GROUPS.has(bare))
186
+ throw new Error(`Unknown Unicode Joining_Group name “${name}”`);
187
+ return name[0] === '@' ? { kind: 'group', group: bare } : { kind: 'exact', group: bare };
188
+ }
189
+ function isLetter(cp) {
190
+ return isJoining(joiningTypeOf(cp));
191
+ }
192
+ /** Parse one comment-stripped, non-empty pattern line. */
193
+ function parsePattern(line) {
194
+ const chars = Array.from(line);
195
+ let pos = 0;
196
+ const peek = () => chars[pos];
197
+ let guard;
198
+ if (peek() === '[') {
199
+ const close = chars.indexOf(']', pos);
200
+ if (close < 0)
201
+ throw new Error('Unterminated length guard');
202
+ const body = chars.slice(pos + 1, close).join('').trim();
203
+ pos = close + 1;
204
+ const bound = (s) => {
205
+ if (!/^\d+$/.test(s))
206
+ throw new Error(`Invalid length guard “${body}”`);
207
+ return Number(s);
208
+ };
209
+ if (body.startsWith(':') && body.endsWith(':') && body.length > 1)
210
+ guard = { kind: 'open', n: bound(body.slice(1, -1)) };
211
+ else if (body.endsWith(':'))
212
+ guard = { kind: 'min', n: bound(body.slice(0, -1)) };
213
+ else if (body.includes(':')) {
214
+ const c = body.indexOf(':');
215
+ guard = { kind: 'range', lo: bound(body.slice(0, c)), hi: bound(body.slice(c + 1)) };
216
+ }
217
+ else
218
+ guard = { kind: 'exact', n: bound(body) };
219
+ const ok = guard.kind === 'range' ? guard.lo >= 2 && guard.lo <= guard.hi : guard.n >= 2;
220
+ if (!ok)
221
+ throw new Error(`Invalid length guard “${body}”`);
222
+ }
223
+ const tokens = [];
224
+ const weights = [];
225
+ let leading = false;
226
+ let trailing = false;
227
+ const readReference = () => {
228
+ let name = chars[pos];
229
+ pos++;
230
+ while (pos < chars.length && /[A-Za-z_]/.test(chars[pos]))
231
+ name += chars[pos++];
232
+ if (name.length === 1)
233
+ throw new Error('Empty group name');
234
+ return referenceToken(name);
235
+ };
236
+ const readSet = () => {
237
+ const close = chars.indexOf('}', pos);
238
+ if (close < 0)
239
+ throw new Error('Unterminated “{”');
240
+ const body = chars.slice(pos + 1, close).join('');
241
+ pos = close + 1;
242
+ if (body.trim() === '')
243
+ throw new Error('Empty “{}”');
244
+ const members = [];
245
+ for (const part of body.trim().split(/\s+/)) {
246
+ if (part[0] === '@' || part[0] === '=')
247
+ members.push(referenceToken(part));
248
+ else
249
+ for (const ch of part) {
250
+ const cp = ch.codePointAt(0);
251
+ if (!isLetter(cp))
252
+ throw new Error(`Stray character “${ch}”`);
253
+ members.push({ kind: 'literal', cp });
254
+ }
255
+ }
256
+ return members;
257
+ };
258
+ const setWeight = (w) => {
259
+ const k = tokens.length;
260
+ if (weights[k] !== undefined)
261
+ throw new Error('Conflicting weights');
262
+ weights[k] = w;
263
+ };
264
+ for (;;) {
265
+ while (peek() === ' ' || peek() === '\t')
266
+ pos++;
267
+ const ch = peek();
268
+ if (ch === undefined)
269
+ break;
270
+ if (ch === '.') {
271
+ pos++;
272
+ if (tokens.length === 0)
273
+ leading = true;
274
+ else
275
+ trailing = true;
276
+ continue;
277
+ }
278
+ if (trailing)
279
+ throw new Error('Token after a trailing “.”');
280
+ if (ch === '!') {
281
+ pos++;
282
+ setWeight('suppress');
283
+ continue;
284
+ }
285
+ if (ch === '\\')
286
+ throw new Error('“\\” must follow a priority digit');
287
+ if (/\d/.test(ch)) {
288
+ pos++;
289
+ const base = Number(ch);
290
+ let min = base;
291
+ if (peek() === '\\') {
292
+ pos++;
293
+ const d = peek();
294
+ if (d === undefined || !/\d/.test(d))
295
+ throw new Error('Expected a digit after “\\”');
296
+ pos++;
297
+ min = Number(d);
298
+ if (min > base)
299
+ throw new Error('A priority must not increase with the run length');
300
+ }
301
+ setWeight({ base, min });
302
+ continue;
303
+ }
304
+ if (ch === '*') {
305
+ pos++;
306
+ tokens.push({ kind: 'any' });
307
+ }
308
+ else if (ch === '{') {
309
+ tokens.push({ kind: 'set', members: readSet() });
310
+ }
311
+ else if (ch === '^') {
312
+ pos++;
313
+ const n = peek();
314
+ if (n === '{')
315
+ tokens.push({ kind: 'notSet', members: readSet() });
316
+ else if (n === '@' || n === '=')
317
+ tokens.push({ kind: 'notSet', members: [readReference()] });
318
+ else
319
+ throw new Error('“^” must be followed by “{”, “@”, or “=”');
320
+ }
321
+ else if (ch === '@' || ch === '=') {
322
+ tokens.push(readReference());
323
+ }
324
+ else {
325
+ pos++;
326
+ const cp = ch.codePointAt(0);
327
+ if (!isLetter(cp))
328
+ throw new Error(`Stray character “${ch}”`);
329
+ tokens.push({ kind: 'literal', cp });
330
+ }
331
+ }
332
+ if (tokens.length === 0)
333
+ throw new Error('Pattern has no letters');
334
+ weights.length = tokens.length + 1;
335
+ if ((leading && weights[0] !== undefined) || (trailing && weights[tokens.length] !== undefined)) {
336
+ throw new Error('Weight outside the run');
337
+ }
338
+ return { ...(guard ? { guard } : {}), tokens, weights, leading, trailing };
339
+ }
340
+ /** Compile pattern text (raqim's language; `use <set>` splices a built-in
341
+ * set in, `naskh` / `simple` / `nastaliq` or raqim's `arabic-…` names). */
342
+ export function compileKashidaPatterns(text) {
343
+ const patterns = [];
344
+ const lines = text.split('\n');
345
+ for (let i = 0; i < lines.length; i++) {
346
+ const hash = lines[i].indexOf('#');
347
+ const line = (hash >= 0 ? lines[i].slice(0, hash) : lines[i]).replace(/\r$/, '').trim();
348
+ if (line === '')
349
+ continue;
350
+ const use = /^use[ \t]+(.+)$/.exec(line);
351
+ try {
352
+ if (use) {
353
+ const name = use[1].trim().replace(/^arabic-/, '');
354
+ if (name !== 'naskh' && name !== 'simple' && name !== 'nastaliq')
355
+ throw new Error(`Unknown pattern set “${use[1].trim()}”`);
356
+ patterns.push(...kashidaPatternSet(name).patterns);
357
+ continue;
358
+ }
359
+ patterns.push(parsePattern(line));
360
+ }
361
+ catch (e) {
362
+ if (e instanceof KashidaPatternError)
363
+ throw e;
364
+ throw new KashidaPatternError(e.message, i + 1);
365
+ }
366
+ }
367
+ return { patterns };
368
+ }
369
+ // ---------------------------------------------------------------------------
370
+ // Matching
371
+ function matchToken(t, g, i) {
372
+ const x = g[i];
373
+ switch (t.kind) {
374
+ case 'any': return isJoining(x.type);
375
+ case 'literal': return x.base === t.cp;
376
+ case 'group': return rasmMatches(t.group, x.group, formOf(g, i));
377
+ case 'exact': return x.group === t.group;
378
+ case 'set': return t.members.some((m) => matchToken(m, g, i));
379
+ case 'notSet': return isJoining(x.type) && !t.members.some((m) => matchToken(m, g, i));
380
+ }
381
+ }
382
+ function guardMatches(guard, len) {
383
+ if (!guard)
384
+ return true;
385
+ switch (guard.kind) {
386
+ case 'exact': return len === guard.n;
387
+ case 'min': return len >= guard.n;
388
+ case 'range': return len >= guard.lo && len <= guard.hi;
389
+ case 'open': return true;
390
+ }
391
+ }
392
+ function guardFloor(guard) {
393
+ if (!guard)
394
+ return 2;
395
+ return guard.kind === 'range' ? guard.lo : guard.n;
396
+ }
397
+ function resolveRun(g, run, set, out) {
398
+ const len = run.length;
399
+ if (len < 2)
400
+ return;
401
+ const priorities = new Array(len - 1).fill(undefined);
402
+ for (const p of set.patterns) {
403
+ if (!guardMatches(p.guard, len))
404
+ continue;
405
+ const floor = guardFloor(p.guard);
406
+ const m = p.tokens.length;
407
+ if (m > len)
408
+ continue;
409
+ for (let start = 0; start + m <= len; start++) {
410
+ if (p.leading && start !== 0)
411
+ continue;
412
+ // A join-causing last member (a tatweel, a ZWJ tail) joins on, so
413
+ // nothing in that run is final.
414
+ if (p.trailing && (start + m !== len || g[run[len - 1]].type === 'C'))
415
+ continue;
416
+ let matched = true;
417
+ for (let k = 0; k < m && matched; k++)
418
+ matched = matchToken(p.tokens[k], g, run[start + k]);
419
+ if (!matched)
420
+ continue;
421
+ for (let gap = 0; gap <= m; gap++) {
422
+ const w = p.weights[gap];
423
+ if (w === undefined)
424
+ continue;
425
+ const point = start + gap - 1;
426
+ if (point < 0 || point > len - 2)
427
+ continue;
428
+ priorities[point] = w === 'suppress' ? undefined : Math.max(w.min, w.base - Math.abs(len - floor));
429
+ }
430
+ }
431
+ }
432
+ for (let point = 0; point < len - 1; point++) {
433
+ const priority = priorities[point];
434
+ if (priority === undefined)
435
+ continue;
436
+ let index = run[point];
437
+ while (g[index + 1]?.seat)
438
+ index++;
439
+ out.push({ offset: g[index].end, index, priority });
440
+ }
441
+ }
442
+ /** The kashida points of `word` under `set`, in logical order. Text that
443
+ * is not Arabic-like (no joining letter) has none. */
444
+ export function findKashidaPoints(word, set) {
445
+ const g = splitGraphemes(word);
446
+ const out = [];
447
+ for (const run of joinedRuns(g))
448
+ resolveRun(g, run, set, out);
449
+ return out;
450
+ }
451
+ // ---------------------------------------------------------------------------
452
+ // Built-in sets (data/*.pat of raqim-kashida, verbatim but for comments
453
+ // shortened)
454
+ const NASKH = String.raw `
455
+ # Classical Arabic Naskh, after Benatia, Elyaakoubi & Lazrek (2006),
456
+ # TUGboat 27(2):137–146, fig. 25, overridden by Fawzi Salim Afifi,
457
+ # "Learning Arabic Calligraphy", part 3. 9\6 recommended, 6\3 neutral,
458
+ # 3\0 discouraged; [:4:] makes 4-letter runs best.
459
+ [:4:] @Beh 9\6 @Tah
460
+ [:4:] @Beh 6\3 {@Alef @Meem @Noon @Heh}
461
+ [:4:] @Beh 3\0 {@Hah @Dal @Reh @Lam}
462
+ [:4:] @Hah 9\6 @Tah
463
+ [:4:] @Hah 3\0 {@Alef @Hah @Dal @Reh @Ain @Kaf @Lam @Meem @Noon @Heh @Waw}
464
+ [:4:] @Ain 9\6 @Tah
465
+ [:4:] @Ain 3\0 {@Alef @Hah @Dal @Reh @Ain @Lam @Meem @Noon @Heh}
466
+ [:4:] {@Seen @Sad @Tah} 6\3 {@Alef @Beh @Reh @Seen @Sad @Tah @Kaf @Lam @Noon}
467
+ [:4:] {@Seen @Sad @Tah} 3\0 {@Hah @Dal @Ain @Feh @Qaf @Meem @Heh @Waw}
468
+ [:4:] @Feh 9\6 @Tah
469
+ [:4:] @Feh 6\3 @Alef
470
+ [:4:] @Feh 3\0 {@Hah @Dal @Reh @Ain @Lam @Meem @Waw}
471
+ [:4:] @Meem 6\3 {@Tah @Dal @Reh}
472
+ [:4:] @Meem 3\0 {@Alef @Hah @Ain @Kaf @Lam @Meem @Noon @Heh @Waw}
473
+ [:4:] @Heh 6\3 @Beh
474
+ [:4:] @Heh 3\0 {@Alef @Seen @Reh @Dal @Lam @Heh}
475
+ # A word ending in a pronoun heh is best stretched just before it.
476
+ * 9 @Heh .
477
+ # Afifi: nothing before sad, ain, waw, heh or a final feh/qaf/yeh (hah
478
+ # connects from the top), nothing after kaf or lam.
479
+ ! {@Hah @Sad @Ain @Waw}
480
+ ! {@Feh @Qaf @Yeh @Yeh_Barree} .
481
+ {@Kaf @Lam} !
482
+ # An initial beh before a high medial tooth, or before the ascending one.
483
+ . @Beh 2 @Beh {@Beh @Seen}
484
+ . @Beh 6 @Beh {@Noon @Reh} .
485
+ . @Beh ! @Beh @Beh {@Reh @Noon} .
486
+ `;
487
+ const SIMPLE = String.raw `
488
+ # The Microsoft rules, weakest first.
489
+ 3 * .
490
+ 4 {@Waw @Ain @Qaf @Feh} .
491
+ 5 @Beh {@Reh @Yeh @Yeh_Barree} .
492
+ 6 {@Alef @Tah @Lam @Kaf @Gaf} .
493
+ 7 {@Heh @Dal} .
494
+ {@Seen @Sad} 8 *
495
+ @Tatweel 9
496
+ @Lam ! @Alef
497
+ `;
498
+ const NASTALIQ = String.raw `
499
+ # Naskh tailored after Afifi's Silsilat taalim al-khatt al-arabi, part 9.
500
+ use naskh
501
+ * 6\3 @Heh .
502
+ @Seen 9
503
+ {@Kaf @Lam} !
504
+ . @Beh !
505
+ ! {@Ain @Feh @Qaf @Tah @Hah @Sad @Waw}
506
+ ! @Heh *
507
+ ! {@Yeh @Yeh_Barree} .
508
+ `;
509
+ const compiled = new Map();
510
+ /** A built-in pattern set, compiled on first use. */
511
+ export function kashidaPatternSet(name) {
512
+ let set = compiled.get(name);
513
+ if (!set) {
514
+ set = compileKashidaPatterns(name === 'naskh' ? NASKH : name === 'simple' ? SIMPLE : NASTALIQ);
515
+ compiled.set(name, set);
516
+ }
517
+ return set;
518
+ }
519
+ //# sourceMappingURL=kashidaPatterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kashidaPatterns.js","sourceRoot":"","sources":["../../src/measure/kashidaPatterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,aAAa,EAAoB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAe5E,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,GAAG,GAAG,MAAM,CAAC;AAkBnB,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,CAAC,GAAG,oBAAoB,CAAC;IAC/B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAE;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAE;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;YACvC,OAAO,mBAAmB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;2EAC2E;AAC3E,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,CAAc;IAC/B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBAAE,MAAM;YAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG;gBAAE,eAAe,GAAG,IAAI,CAAC;iBACjC,IAAI,CAAC,KAAK,GAAG;gBAAE,gBAAgB,GAAG,IAAI,CAAC;iBACvC,IAAI,CAAC,KAAK,GAAG;gBAAE,IAAI,GAAG,IAAI,CAAC;YAChC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,8DAA8D;QAC9D,+BAA+B;QAC/B,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,IAAI,GAAG,GAAG,CAAC;iBACxC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gBAAE,IAAI,GAAG,GAAG,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAsB,EAAE,CAAS;IAClD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;AACzE,CAAC;AAED,SAAS,UAAU,CAAC,CAAsB,EAAE,CAAS;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;AACzE,CAAC;AAED,SAAS,MAAM,CAAC,CAAsB,EAAE,CAAS;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED;2EAC2E;AAC3E,SAAS,UAAU,CAAC,CAAsB;IACxC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,GAAG,GAAa,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI;YAAE,SAAS;QACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,GAAG,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,gBAAgB;AAEhB,MAAM,YAAY,GAAqE;IACrF,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;IACpG,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;IACtF,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IAChE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IAChE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IAChG,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IACzE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IAC/E,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IACjF,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;CACzD,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa,EAAE,KAAyB,EAAE,IAAU;IACvE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACvE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC;AAoCD,+DAA+D;AAC/D,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACN;IAAtC,YAAY,OAAe,EAAW,IAAY;QAChD,KAAK,CAAC,GAAG,OAAO,UAAU,IAAI,GAAG,CAAC,CAAC;QADC,SAAI,GAAJ,IAAI,CAAQ;QAEhD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAElD,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,GAAG,CAAC,CAAC;IAC7F,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3F,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,0DAA0D;AAC1D,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAwB,CAAC;IAC7B,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACpH,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,CAAC;;YAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,aAAa,GAAG,GAAU,EAAE;QAChC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,CAAC;QACvB,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC;YAAE,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAY,EAAE;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,OAAO,GAAY,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;;gBACtE,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;oBAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;oBAC9D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,SAAS,CAAC;QACR,OAAO,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI;YAAE,GAAG,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,IAAI,EAAE,KAAK,SAAS;YAAE,MAAM;QAC5B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,EAAE,CAAC;YACN,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;;gBACnC,QAAQ,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5D,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,EAAE,CAAC;YACN,SAAS,CAAC,UAAU,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,GAAG,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACpB,GAAG,EAAE,CAAC;gBACN,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACrF,GAAG,EAAE,CAAC;gBACN,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,GAAG,GAAG,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtF,CAAC;YACD,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,EAAE,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,GAAG,EAAE,CAAC;YACN,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;iBAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;;gBACxF,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACnE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED;4EAC4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1F,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS;QAC1B,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7H,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACnD,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,mBAAmB;gBAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,mBAAmB,CAAE,CAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,8EAA8E;AAC9E,WAAW;AAEX,SAAS,UAAU,CAAC,CAAQ,EAAE,CAAsB,EAAE,CAAS;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAChB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACvC,KAAK,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;QACzC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAwB,EAAE,GAAW;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;QACrC,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAClC,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAwB;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,CAAsB,EAAE,GAAsB,EAAE,GAAsB,EAAE,GAAmB;IAC7G,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO;IACpB,MAAM,UAAU,GAA2B,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,SAAS;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG;YAAE,SAAS;QACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC;gBAAE,SAAS;YACvC,kEAAkE;YAClE,gCAAgC;YAChC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAE,CAAE,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS;YAClF,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE;gBAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,KAAK,SAAS;oBAAE,SAAS;gBAC9B,MAAM,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC;oBAAE,SAAS;gBAC3C,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI;YAAE,KAAK,EAAE,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;uDACuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,GAAsB;IACpE,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,aAAa;AAEb,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAUxB,CAAC;AAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAU1B,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4C,CAAC;AAErE,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,sBAAsB,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/measure/links.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,QAAQ,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA6B3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,EAAE,CAyEtF"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/measure/links.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,QAAQ,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA8B3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,EAAE,CA2EtF"}
@@ -6,6 +6,7 @@
6
6
  // its segments are walked against the text they were cut from and the
7
7
  // target is stamped on every segment holding a linked character
8
8
  // (`VDTLineSegment.href`), for the HTML and PDF backends to make live.
9
+ import { writtenText } from './kashida';
9
10
  import { SOFT_HYPHEN } from './types';
10
11
  import { GEMINATE_DOT, endsInsideGeminate } from './geminate';
11
12
  import { BREAKING_SPACE_RE } from './spaces';
@@ -111,9 +112,11 @@ export function linkSegments(lines, spans) {
111
112
  segments.push(seg);
112
113
  continue;
113
114
  }
114
- const skip = lead && seg.text.startsWith('-') ? 1 : 0;
115
+ // A word's text as written: without the tatweels kashida inserted.
116
+ const written = writtenText(seg);
117
+ const skip = lead && written.startsWith('-') ? 1 : 0;
115
118
  lead = false;
116
- const href = consume(seg.text.slice(skip));
119
+ const href = consume(written.slice(skip));
117
120
  if (href === null)
118
121
  return lines;
119
122
  if (href === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/measure/links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/measure/links.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/measure/plain.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAS1C,OAAO,EAAmC,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4IxG;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAMxH;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EAAE,EAC1B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,GAClB,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAmNf"}
1
+ {"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/measure/plain.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAS1C,OAAO,EAAmC,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4JxG;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAMxH;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EAAE,EAC1B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,GAClB,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAkOf"}