@syncfusion/ej2-office-common 35.1.37 → 35.1.43

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 (226) hide show
  1. package/dist/ej2-office-common.umd.min.js +2 -2
  2. package/dist/ej2-office-common.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-office-common.es2015.js +5421 -6017
  4. package/dist/es6/ej2-office-common.es2015.js.map +1 -1
  5. package/dist/es6/ej2-office-common.es5.js +6270 -7203
  6. package/dist/es6/ej2-office-common.es5.js.map +1 -1
  7. package/dist/global/ej2-office-common.min.js +2 -2
  8. package/dist/global/ej2-office-common.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/office-common.js +4 -0
  11. package/package.json +11 -7
  12. package/src/index.d.ts +3 -17
  13. package/src/index.js +3 -18
  14. package/src/office-common/features/index.d.ts +6 -0
  15. package/src/office-common/features/index.js +6 -0
  16. package/src/office-common/features/mathml/index.d.ts +25 -0
  17. package/src/office-common/features/mathml/index.js +22 -0
  18. package/src/office-common/features/mathml/latex/latex-generator.d.ts +8 -0
  19. package/src/office-common/features/mathml/latex/latex-generator.js +357 -0
  20. package/src/office-common/features/mathml/latex/latex-parser.d.ts +87 -0
  21. package/src/office-common/features/mathml/latex/latex-parser.js +1206 -0
  22. package/src/office-common/features/mathml/latex/latex-symbols.d.ts +13 -0
  23. package/src/office-common/features/mathml/latex/latex-symbols.js +681 -0
  24. package/src/office-common/features/mathml/math-settings.d.ts +54 -0
  25. package/src/office-common/features/mathml/math-settings.js +174 -0
  26. package/src/office-common/features/mathml/office-math/adapter.d.ts +59 -0
  27. package/src/office-common/features/mathml/office-math/adapter.js +6 -0
  28. package/src/office-common/features/mathml/office-math/basic.d.ts +91 -0
  29. package/src/office-common/features/mathml/office-math/basic.js +93 -0
  30. package/src/office-common/features/mathml/office-math/break.d.ts +30 -0
  31. package/src/office-common/features/mathml/office-math/break.js +75 -0
  32. package/src/office-common/features/mathml/office-math/collection.d.ts +104 -0
  33. package/src/office-common/features/mathml/office-math/collection.js +170 -0
  34. package/src/office-common/features/mathml/office-math/entity.d.ts +12 -0
  35. package/src/office-common/features/mathml/office-math/entity.js +3 -0
  36. package/src/office-common/features/mathml/office-math/enums.d.ts +97 -0
  37. package/src/office-common/features/mathml/office-math/enums.js +108 -0
  38. package/src/office-common/features/mathml/office-math/format.d.ts +28 -0
  39. package/src/office-common/features/mathml/office-math/format.js +90 -0
  40. package/src/office-common/features/mathml/office-math/function-base.d.ts +27 -0
  41. package/src/office-common/features/mathml/office-math/function-base.js +69 -0
  42. package/src/office-common/features/mathml/office-math/function-collection.d.ts +29 -0
  43. package/src/office-common/features/mathml/office-math/function-collection.js +76 -0
  44. package/src/office-common/features/mathml/office-math/functions-basic.d.ts +118 -0
  45. package/src/office-common/features/mathml/office-math/functions-basic.js +331 -0
  46. package/src/office-common/features/mathml/office-math/functions-multi.d.ts +156 -0
  47. package/src/office-common/features/mathml/office-math/functions-multi.js +407 -0
  48. package/src/office-common/features/mathml/office-math/index.d.ts +27 -0
  49. package/src/office-common/features/mathml/office-math/index.js +25 -0
  50. package/src/office-common/features/mathml/office-math/keys.d.ts +6 -0
  51. package/src/office-common/features/mathml/office-math/keys.js +20 -0
  52. package/src/office-common/features/mathml/office-math/math-clone.d.ts +20 -0
  53. package/src/office-common/features/mathml/office-math/math-clone.js +203 -0
  54. package/src/office-common/features/mathml/office-math/math-collection.d.ts +19 -0
  55. package/src/office-common/features/mathml/office-math/math-collection.js +41 -0
  56. package/src/office-common/features/mathml/office-math/math-equality.d.ts +21 -0
  57. package/src/office-common/features/mathml/office-math/math-equality.js +115 -0
  58. package/src/office-common/features/mathml/office-math/math-paragraph.d.ts +58 -0
  59. package/src/office-common/features/mathml/office-math/math-paragraph.js +126 -0
  60. package/src/office-common/features/mathml/office-math/math-traversal.d.ts +23 -0
  61. package/src/office-common/features/mathml/office-math/math-traversal.js +95 -0
  62. package/src/office-common/features/mathml/office-math/matrix-collections.d.ts +54 -0
  63. package/src/office-common/features/mathml/office-math/matrix-collections.js +113 -0
  64. package/src/office-common/features/mathml/office-math/matrix-column.d.ts +43 -0
  65. package/src/office-common/features/mathml/office-math/matrix-column.js +96 -0
  66. package/src/office-common/features/mathml/office-math/matrix-row.d.ts +38 -0
  67. package/src/office-common/features/mathml/office-math/matrix-row.js +71 -0
  68. package/src/office-common/features/mathml/office-math/matrix.d.ts +62 -0
  69. package/src/office-common/features/mathml/office-math/matrix.js +158 -0
  70. package/src/office-common/features/mathml/office-math/office-math.d.ts +55 -0
  71. package/src/office-common/features/mathml/office-math/office-math.js +116 -0
  72. package/src/office-common/features/mathml/office-math/owner-holder.d.ts +42 -0
  73. package/src/office-common/features/mathml/office-math/owner-holder.js +87 -0
  74. package/src/office-common/features/mathml/office-math/property-store.d.ts +66 -0
  75. package/src/office-common/features/mathml/office-math/property-store.js +99 -0
  76. package/src/office-common/features/mathml/office-math/run-element.d.ts +31 -0
  77. package/src/office-common/features/mathml/office-math/run-element.js +97 -0
  78. package/src/office-common/features/mathml/office-math/unknown-element.d.ts +37 -0
  79. package/src/office-common/features/mathml/office-math/unknown-element.js +62 -0
  80. package/src/office-common/features/mathml/office-math/xml-equal.d.ts +13 -0
  81. package/src/office-common/features/mathml/office-math/xml-equal.js +24 -0
  82. package/src/office-common/features/mathml/parse/office-math-parser.d.ts +24 -0
  83. package/src/office-common/features/mathml/parse/office-math-parser.js +396 -0
  84. package/src/office-common/features/mathml/parse/office-math-properties.d.ts +165 -0
  85. package/src/office-common/features/mathml/parse/office-math-properties.js +432 -0
  86. package/src/office-common/features/mathml/parse/parse-options.d.ts +22 -0
  87. package/src/office-common/features/mathml/parse/parse-options.js +3 -0
  88. package/src/office-common/features/mathml/serialize/office-math-properties-writer.d.ts +38 -0
  89. package/src/office-common/features/mathml/serialize/office-math-properties-writer.js +267 -0
  90. package/src/office-common/features/mathml/serialize/office-math-serializer.d.ts +23 -0
  91. package/src/office-common/features/mathml/serialize/office-math-serializer.js +306 -0
  92. package/src/office-common/features/mathml/serialize/omml-writer.d.ts +123 -0
  93. package/src/office-common/features/mathml/serialize/omml-writer.js +135 -0
  94. package/src/office-common/index.d.ts +10 -0
  95. package/src/office-common/index.js +10 -0
  96. package/.eslintrc.json +0 -263
  97. package/.prettierrc.json +0 -5
  98. package/api-extractor.json +0 -35
  99. package/core.js +0 -4
  100. package/encryption.js +0 -4
  101. package/features.js +0 -4
  102. package/global.json +0 -6
  103. package/nuget.config +0 -7
  104. package/src/all.d.ts +0 -41
  105. package/src/all.js +0 -38
  106. package/src/features/index.d.ts +0 -11
  107. package/src/features/index.js +0 -11
  108. package/src/features/mathml/index.d.ts +0 -30
  109. package/src/features/mathml/index.js +0 -22
  110. package/src/features/mathml/math-factory.d.ts +0 -26
  111. package/src/features/mathml/math-factory.js +0 -568
  112. package/src/features/mathml/model/controls.d.ts +0 -896
  113. package/src/features/mathml/model/controls.js +0 -1541
  114. package/src/features/mathml/model/math-element.d.ts +0 -173
  115. package/src/features/mathml/model/math-element.js +0 -315
  116. package/src/features/mathml/model/roots.d.ts +0 -82
  117. package/src/features/mathml/model/roots.js +0 -177
  118. package/src/features/mathml/parse/math-parser.d.ts +0 -43
  119. package/src/features/mathml/parse/math-parser.js +0 -636
  120. package/src/features/mathml/serialize/math-serializer.d.ts +0 -34
  121. package/src/features/mathml/serialize/math-serializer.js +0 -749
  122. package/tsconfig.build.json +0 -13
  123. package/tsconfig.harness.json +0 -32
  124. package/tslint.json +0 -111
  125. /package/src/{core → office-common/core}/index.d.ts +0 -0
  126. /package/src/{core → office-common/core}/index.js +0 -0
  127. /package/src/{core → office-common/core}/xml/index.d.ts +0 -0
  128. /package/src/{core → office-common/core}/xml/index.js +0 -0
  129. /package/src/{core → office-common/core}/xml/model.d.ts +0 -0
  130. /package/src/{core → office-common/core}/xml/model.js +0 -0
  131. /package/src/{encryption → office-common/encryption}/agile-constants.d.ts +0 -0
  132. /package/src/{encryption → office-common/encryption}/agile-constants.js +0 -0
  133. /package/src/{encryption → office-common/encryption}/agile-encryption-info.d.ts +0 -0
  134. /package/src/{encryption → office-common/encryption}/agile-encryption-info.js +0 -0
  135. /package/src/{encryption → office-common/encryption}/agile-password.d.ts +0 -0
  136. /package/src/{encryption → office-common/encryption}/agile-password.js +0 -0
  137. /package/src/{encryption → office-common/encryption}/cfb-reader.d.ts +0 -0
  138. /package/src/{encryption → office-common/encryption}/cfb-reader.js +0 -0
  139. /package/src/{encryption → office-common/encryption}/crypto-primitives.d.ts +0 -0
  140. /package/src/{encryption → office-common/encryption}/crypto-primitives.js +0 -0
  141. /package/src/{encryption → office-common/encryption}/decrypt-encrypted-package.d.ts +0 -0
  142. /package/src/{encryption → office-common/encryption}/decrypt-encrypted-package.js +0 -0
  143. /package/src/{encryption → office-common/encryption}/encryption-info-xml.d.ts +0 -0
  144. /package/src/{encryption → office-common/encryption}/encryption-info-xml.js +0 -0
  145. /package/src/{encryption → office-common/encryption}/errors.d.ts +0 -0
  146. /package/src/{encryption → office-common/encryption}/errors.js +0 -0
  147. /package/src/{encryption → office-common/encryption}/index.d.ts +0 -0
  148. /package/src/{encryption → office-common/encryption}/index.js +0 -0
  149. /package/src/{features → office-common/features}/diagrams/constants.d.ts +0 -0
  150. /package/src/{features → office-common/features}/diagrams/constants.js +0 -0
  151. /package/src/{features → office-common/features}/diagrams/diagram-data-model.d.ts +0 -0
  152. /package/src/{features → office-common/features}/diagrams/diagram-data-model.js +0 -0
  153. /package/src/{features → office-common/features}/diagrams/diagram-parsers.d.ts +0 -0
  154. /package/src/{features → office-common/features}/diagrams/diagram-parsers.js +0 -0
  155. /package/src/{features → office-common/features}/diagrams/diagram-serializers.d.ts +0 -0
  156. /package/src/{features → office-common/features}/diagrams/diagram-serializers.js +0 -0
  157. /package/src/{features → office-common/features}/diagrams/diagram-views.d.ts +0 -0
  158. /package/src/{features → office-common/features}/diagrams/diagram-views.js +0 -0
  159. /package/src/{features → office-common/features}/diagrams/element-tree.d.ts +0 -0
  160. /package/src/{features → office-common/features}/diagrams/element-tree.js +0 -0
  161. /package/src/{features → office-common/features}/diagrams/errors.d.ts +0 -0
  162. /package/src/{features → office-common/features}/diagrams/errors.js +0 -0
  163. /package/src/{features → office-common/features}/diagrams/index.d.ts +0 -0
  164. /package/src/{features → office-common/features}/diagrams/index.js +0 -0
  165. /package/src/{features → office-common/features}/diagrams/smart-art-catalog.d.ts +0 -0
  166. /package/src/{features → office-common/features}/diagrams/smart-art-catalog.js +0 -0
  167. /package/src/{features → office-common/features}/diagrams/smart-art-diagram.d.ts +0 -0
  168. /package/src/{features → office-common/features}/diagrams/smart-art-diagram.js +0 -0
  169. /package/src/{features → office-common/features}/ink/constants.d.ts +0 -0
  170. /package/src/{features → office-common/features}/ink/constants.js +0 -0
  171. /package/src/{features → office-common/features}/ink/index.d.ts +0 -0
  172. /package/src/{features → office-common/features}/ink/index.js +0 -0
  173. /package/src/{features → office-common/features}/ink/ink-effects.d.ts +0 -0
  174. /package/src/{features → office-common/features}/ink/ink-effects.js +0 -0
  175. /package/src/{features → office-common/features}/ink/ink-model.d.ts +0 -0
  176. /package/src/{features → office-common/features}/ink/ink-model.js +0 -0
  177. /package/src/{features → office-common/features}/ink/ink-parser.d.ts +0 -0
  178. /package/src/{features → office-common/features}/ink/ink-parser.js +0 -0
  179. /package/src/{features → office-common/features}/ink/ink-serializer.d.ts +0 -0
  180. /package/src/{features → office-common/features}/ink/ink-serializer.js +0 -0
  181. /package/src/{features → office-common/features}/ink/ink-units.d.ts +0 -0
  182. /package/src/{features → office-common/features}/ink/ink-units.js +0 -0
  183. /package/src/{features → office-common/features}/ink/ink-xml.d.ts +0 -0
  184. /package/src/{features → office-common/features}/ink/ink-xml.js +0 -0
  185. /package/src/{features → office-common/features}/ink/trace-codec.d.ts +0 -0
  186. /package/src/{features → office-common/features}/ink/trace-codec.js +0 -0
  187. /package/src/{features → office-common/features}/mathml/constants.d.ts +0 -0
  188. /package/src/{features → office-common/features}/mathml/constants.js +0 -0
  189. /package/src/{features → office-common/features}/mathml/errors.d.ts +0 -0
  190. /package/src/{features → office-common/features}/mathml/errors.js +0 -0
  191. /package/src/{features → office-common/features}/mathml/model/enums.d.ts +0 -0
  192. /package/src/{features → office-common/features}/mathml/model/enums.js +0 -0
  193. /package/src/{features → office-common/features}/mathml/openxml.d.ts +0 -0
  194. /package/src/{features → office-common/features}/mathml/openxml.js +0 -0
  195. /package/src/{features → office-common/features}/smart-art/diagram-xml.d.ts +0 -0
  196. /package/src/{features → office-common/features}/smart-art/diagram-xml.js +0 -0
  197. /package/src/{features → office-common/features}/smart-art/errors.d.ts +0 -0
  198. /package/src/{features → office-common/features}/smart-art/errors.js +0 -0
  199. /package/src/{features → office-common/features}/smart-art/index.d.ts +0 -0
  200. /package/src/{features → office-common/features}/smart-art/index.js +0 -0
  201. /package/src/{features → office-common/features}/smart-art/minimal-samples.d.ts +0 -0
  202. /package/src/{features → office-common/features}/smart-art/minimal-samples.js +0 -0
  203. /package/src/{features → office-common/features}/smart-art/mutators.d.ts +0 -0
  204. /package/src/{features → office-common/features}/smart-art/mutators.js +0 -0
  205. /package/src/{features → office-common/features}/smart-art/namespaces.d.ts +0 -0
  206. /package/src/{features → office-common/features}/smart-art/namespaces.js +0 -0
  207. /package/src/{features → office-common/features}/smart-art/package-graph.d.ts +0 -0
  208. /package/src/{features → office-common/features}/smart-art/package-graph.js +0 -0
  209. /package/src/{features → office-common/features}/smart-art/parse-colors.d.ts +0 -0
  210. /package/src/{features → office-common/features}/smart-art/parse-colors.js +0 -0
  211. /package/src/{features → office-common/features}/smart-art/parse-data.d.ts +0 -0
  212. /package/src/{features → office-common/features}/smart-art/parse-data.js +0 -0
  213. /package/src/{features → office-common/features}/smart-art/parse-layout.d.ts +0 -0
  214. /package/src/{features → office-common/features}/smart-art/parse-layout.js +0 -0
  215. /package/src/{features → office-common/features}/smart-art/parse-rel-ids.d.ts +0 -0
  216. /package/src/{features → office-common/features}/smart-art/parse-rel-ids.js +0 -0
  217. /package/src/{features → office-common/features}/smart-art/parse-style.d.ts +0 -0
  218. /package/src/{features → office-common/features}/smart-art/parse-style.js +0 -0
  219. /package/src/{features → office-common/features}/smart-art/point-text.d.ts +0 -0
  220. /package/src/{features → office-common/features}/smart-art/point-text.js +0 -0
  221. /package/src/{features → office-common/features}/smart-art/register.d.ts +0 -0
  222. /package/src/{features → office-common/features}/smart-art/register.js +0 -0
  223. /package/src/{features → office-common/features}/smart-art/serialize.d.ts +0 -0
  224. /package/src/{features → office-common/features}/smart-art/serialize.js +0 -0
  225. /package/src/{features → office-common/features}/smart-art/types.d.ts +0 -0
  226. /package/src/{features → office-common/features}/smart-art/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-office-common.es5.js","sources":["../../src/features/ink/constants.js","../../src/features/ink/ink-effects.js","../../src/features/ink/trace-codec.js","../../src/features/ink/ink-model.js","../../src/core/xml/model.js","../../src/features/ink/ink-units.js","../../src/features/ink/ink-xml.js","../../src/features/ink/ink-parser.js","../../src/features/ink/ink-serializer.js","../../src/features/mathml/constants.js","../../src/features/mathml/model/enums.js","../../src/features/mathml/errors.js","../../src/features/mathml/model/math-element.js","../../src/features/mathml/model/roots.js","../../src/features/mathml/model/controls.js","../../src/features/mathml/openxml.js","../../src/features/mathml/parse/math-parser.js","../../src/features/mathml/serialize/math-serializer.js","../../src/features/mathml/math-factory.js","../../src/encryption/agile-constants.js","../../src/encryption/errors.js","../../src/encryption/crypto-primitives.js","../../src/encryption/encryption-info-xml.js","../../src/encryption/agile-encryption-info.js","../../src/encryption/agile-password.js","../../src/encryption/cfb-reader.js","../../src/encryption/decrypt-encrypted-package.js","../../src/encryption/index.js","../../src/index.js"],"sourcesContent":["/**\n * Cited InkML / Wordprocessing ink constants.\n *\n * Sources:\n * - W3C InkML 1.0 §1 / namespace declaration\n * - ECMA-376 Part 1 content types; [MS-ODRAWXML] §2.1.4 ink part\n * - ECMA-376-1 §17.3.3.2 / [MS-ODRAWXML] §2.1.4 customXml relationship for ink source\n * - [MS-ODRAWXML] §2.15 WordprocessingML 2010 namespace\n * - [MS-ODRAWXML] §2.2.7.6 `wordprocessingInk` graphicData URI\n */\n/**\n * InkML namespace URI.\n *\n * Source: W3C InkML 1.0 (`http://www.w3.org/2003/InkML`).\n *\n * @public\n */\nexport var INKML_NAMESPACE = 'http://www.w3.org/2003/InkML';\n/**\n * Content type for an InkML part.\n *\n * Source: [MS-ODRAWXML] §2.1.4 / Office content-type vocabulary —\n * `application/inkml+xml`.\n *\n * @public\n */\nexport var INK_CONTENT_TYPE = 'application/inkml+xml';\n/**\n * Relationship type used by Word documents to bind the ink source part.\n *\n * Source: ECMA-376-1 §17.3.3.2; [MS-ODRAWXML] §2.1.4 —\n * `…/relationships/customXml` (internal target mode).\n *\n * @public\n */\nexport var INK_SOURCE_RELATIONSHIP_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml';\n/**\n * WordprocessingML 2010 namespace (`w14:`).\n *\n * Source: [MS-ODRAWXML] §2.15 —\n * `http://schemas.microsoft.com/office/word/2010/wordml`.\n *\n * @public\n */\nexport var WORDML_2010_NAMESPACE = 'http://schemas.microsoft.com/office/word/2010/wordml';\n/**\n * DrawingML `a:graphicData/@uri` value for wordprocessing ink content.\n *\n * Source: [MS-ODRAWXML] §2.2.7.6 —\n * `http://schemas.microsoft.com/office/word/2010/wordprocessingInk`.\n *\n * @public\n */\nexport var WORDPROCESSING_INK_URI = 'http://schemas.microsoft.com/office/word/2010/wordprocessingInk';\n","/**\n * Effect → characteristic color mapping used when serializing ink brushes.\n *\n * Values are cited from the approved cross-repo ink specification\n * (`ej2-docx/docs/specs/ink-dom-parse-serialize.md`, Internal semantic model —\n * Effects → color), cross-checked against [MS-ODRAWXML] ink effect tokens.\n *\n * `'none'` and `'pencil'` do not override stroke color.\n */\n/**\n * Characteristic colors for non-default ink visual effects.\n *\n * | Effect | Color | Notes |\n * |---|---|---|\n * | bronze | `#BB5B18` | cited characteristic color |\n * | silver | `#B4C3DA` | cited characteristic color |\n * | gold | `#CC912C` | cited characteristic color |\n * | roseGold | `#EEB3A6` | cited characteristic color |\n * | ocean | `#0B868D` | cited characteristic color |\n * | lava | `#DA0C07` | cited characteristic color |\n * | rainbow | `#FF4E00` | cited characteristic color |\n * | galaxy | `#AE198D` | cited characteristic color |\n *\n * @public\n */\nexport var INK_EFFECT_COLORS = Object.freeze({\n bronze: '#BB5B18',\n silver: '#B4C3DA',\n gold: '#CC912C',\n roseGold: '#EEB3A6',\n ocean: '#0B868D',\n lava: '#DA0C07',\n rainbow: '#FF4E00',\n galaxy: '#AE198D',\n});\n/**\n * Resolve the characteristic color for an effect, if any.\n *\n * Returns `undefined` for `'none'` / `'pencil'` (no color override).\n *\n * @public\n */\nexport function inkEffectColor(effect) {\n return INK_EFFECT_COLORS[effect];\n}\n","/**\n * Pure InkML trace codec (W3C InkML §3.2.1 via [MS-ODRAWXML] §1.2.1 / §2.1.4).\n *\n * Decodes differential-prefix packet text into absolute channel rows and plane\n * points; encodes points as absolute `\"x y, x y, …\"` text. No XML dependency.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar PREFIX_ABSOLUTE = '!';\nvar PREFIX_FIRST_DIFF = \"'\";\nvar PREFIX_SECOND_DIFF = '\"';\n/**\n * Tokenize a single channel value, stripping an optional InkML prefix.\n * Source: W3C InkML §3.2.1 — `!` absolute, `'` first difference, `\"` second difference.\n */\nfunction splitPrefix(token) {\n if (token.length === 0) {\n return { prefix: undefined, raw: token };\n }\n var head = token.charAt(0);\n if (head === PREFIX_ABSOLUTE) {\n return { prefix: 'absolute', raw: token.slice(1) };\n }\n if (head === PREFIX_FIRST_DIFF) {\n return { prefix: 'first', raw: token.slice(1) };\n }\n if (head === PREFIX_SECOND_DIFF) {\n return { prefix: 'second', raw: token.slice(1) };\n }\n return { prefix: undefined, raw: token };\n}\nfunction parseNumber(raw) {\n if (raw.length === 0) {\n return undefined;\n }\n var n = Number(raw);\n return Number.isFinite(n) ? n : undefined;\n}\n/**\n * Decode InkML trace text into absolute channel rows and X/Y plane points.\n *\n * Rules (W3C InkML §3.2.1):\n * - Packets are comma-separated.\n * - Channel values are whitespace-separated.\n * - A `!` / `'` / `\"` prefix before a value switches interpretation for the\n * **rest of that packet** (absolute, first-difference, second-difference).\n * - First differences apply against the previous packet's same-channel value.\n * - Second differences accumulate per channel across packets.\n * - Default channel order when no context is supplied: X then Y.\n * - Extra channels are tolerated; reduction uses the first two as X/Y when\n * present. A row missing X or Y does not produce a plane point.\n *\n * Empty / whitespace-only input yields zero packets and zero points (guarded).\n *\n * @public\n */\nexport function decodeTrace(traceText) {\n var e_1, _a;\n var trimmed = traceText.trim();\n if (trimmed.length === 0) {\n return {\n channelRows: [],\n points: [],\n stats: { packetCount: 0, channelValueCount: 0, pointCount: 0 },\n };\n }\n var packetStrings = trimmed.split(',');\n var channelRows = [];\n var points = [];\n var channelValueCount = 0;\n // Previous absolute channel values (for first-difference).\n var previous = [];\n // Running second-difference deltas per channel (mutated in place per index).\n var secondDelta = [];\n // Default mode between packets is absolute until a prefix appears.\n var defaultMode = 'absolute';\n try {\n for (var packetStrings_1 = __values(packetStrings), packetStrings_1_1 = packetStrings_1.next(); !packetStrings_1_1.done; packetStrings_1_1 = packetStrings_1.next()) {\n var packetString = packetStrings_1_1.value;\n var tokens = packetString.trim().split(/\\s+/).filter(function (t) { return t.length > 0; });\n if (tokens.length === 0) {\n // Empty packet (e.g. trailing comma) — skip without inventing channels.\n continue;\n }\n var mode = defaultMode;\n var row = [];\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token === undefined) {\n continue;\n }\n var _b = splitPrefix(token), prefix = _b.prefix, raw = _b.raw;\n if (prefix !== undefined) {\n mode = prefix;\n // Prefix mode persists for subsequent packets until another prefix.\n defaultMode = prefix;\n }\n var value = parseNumber(raw);\n channelValueCount += 1;\n if (value === undefined) {\n // Malformed token: skip channel slot (best-effort; no invented number).\n continue;\n }\n var absolute = void 0;\n if (mode === 'absolute') {\n absolute = value;\n // Reset second-diff accumulator for this channel when absolute is used.\n secondDelta[i] = 0;\n }\n else if (mode === 'first') {\n var base = (previous[i] != null ? previous[i] : 0);\n absolute = base + value;\n secondDelta[i] = value;\n }\n else {\n // second difference: accumulate delta, then add to previous absolute\n var prevDelta = (secondDelta[i] != null ? secondDelta[i] : 0);\n var newDelta = prevDelta + value;\n secondDelta[i] = newDelta;\n var base = (previous[i] != null ? previous[i] : 0);\n absolute = base + newDelta;\n }\n row[i] = absolute;\n }\n channelRows.push(row);\n previous = row.slice();\n var x = row[0];\n var y = row[1];\n if (x !== undefined && y !== undefined) {\n points.push({ x: x, y: y });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (packetStrings_1_1 && !packetStrings_1_1.done && (_a = packetStrings_1.return)) _a.call(packetStrings_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return {\n channelRows: channelRows,\n points: points,\n stats: {\n packetCount: channelRows.length,\n channelValueCount: channelValueCount,\n pointCount: points.length,\n },\n };\n}\n/**\n * Encode plane points as absolute InkML trace text (`\"x y, x y, …\"`).\n *\n * Always absolute (no differential prefixes). Generated from points only —\n * never from stored markup (DOM mandate).\n *\n * @public\n */\nexport function encodeTrace(points) {\n if (points.length === 0) {\n return '';\n }\n return points.map(function (p) { return formatCoord(p.x) + \" \" + formatCoord(p.y); }).join(', ');\n}\nfunction formatCoord(n) {\n // Prefer compact integer form when exact; otherwise default number string.\n if (Number.isInteger(n)) {\n return String(n);\n }\n return String(n);\n}\n/**\n * Compute axis-aligned bounds over plane points.\n * Empty input returns a zero box (min=max=0) so callers can branch on count.\n *\n * @public\n */\nexport function computeInkBounds(points) {\n var first = points[0];\n if (first === undefined) {\n return { minX: 0, minY: 0, maxX: 0, maxY: 0 };\n }\n var minX = first.x;\n var minY = first.y;\n var maxX = minX;\n var maxY = minY;\n for (var i = 1; i < points.length; i++) {\n var p = points[i];\n if (p === undefined) {\n continue;\n }\n if (p.x < minX)\n minX = p.x;\n if (p.y < minY)\n minY = p.y;\n if (p.x > maxX)\n maxX = p.x;\n if (p.y > maxY)\n maxY = p.y;\n }\n return { minX: minX, minY: minY, maxX: maxX, maxY: maxY };\n}\n/**\n * Uniform scale of decoded strokes into an extent **without re-zeroing**.\n *\n * scale = min(extent.w / (maxX−minX), extent.h / (maxY−minY)) when the span\n * is positive; origin of the coordinate system is preserved (decoded path).\n * Degenerate (zero-span) axes map to the extent origin for that axis only.\n *\n * Source: cross-repo ink spec § Parser behavior — uniform scale for decoded\n * strokes.\n *\n * @public\n */\nexport function scalePointsUniform(points, extent) {\n if (points.length === 0) {\n return [];\n }\n var bounds = computeInkBounds(points);\n var spanX = bounds.maxX - bounds.minX;\n var spanY = bounds.maxY - bounds.minY;\n var scaleX = spanX > 0 ? extent.width / spanX : 0;\n var scaleY = spanY > 0 ? extent.height / spanY : 0;\n var scale = spanX > 0 && spanY > 0\n ? Math.min(scaleX, scaleY)\n : spanX > 0\n ? scaleX\n : spanY > 0\n ? scaleY\n : 0;\n return points.map(function (p) { return ({\n x: p.x * scale,\n y: p.y * scale,\n }); });\n}\n/**\n * Stretch-to-fit scale for **authored** strokes: re-zero to minX/minY, then\n * stretch independently to the extent.\n *\n * Source: cross-repo ink spec § Parser behavior — authored strokes re-zero\n * and stretch to the extent.\n *\n * @public\n */\nexport function scalePointsStretch(points, extent) {\n if (points.length === 0) {\n return [];\n }\n var bounds = computeInkBounds(points);\n var spanX = bounds.maxX - bounds.minX;\n var spanY = bounds.maxY - bounds.minY;\n var scaleX = spanX > 0 ? extent.width / spanX : 0;\n var scaleY = spanY > 0 ? extent.height / spanY : 0;\n return points.map(function (p) { return ({\n x: spanX > 0 ? (p.x - bounds.minX) * scaleX : 0,\n y: spanY > 0 ? (p.y - bounds.minY) * scaleY : 0,\n }); });\n}\n","/**\n * Ink DOM model and authoring API (office-common).\n *\n * Contract: `docs/specs/ink-shared-codec.md` / cross-repo\n * `ej2-docx/docs/specs/ink-dom-parse-serialize.md` § Internal semantic model,\n * § Mutation behavior.\n *\n * Trace-group decision (TASK-9002): `OfficeInk.traces` is flat document-order.\n * Nested `traceGroup` structure is reserved for TASK-9003 via an optional\n * internal ordered tree field (`traceTree`) that 9003 may populate; when\n * absent, serialize emits a flat sequence of traces. Consumers of 9002 only\n * see the flat `traces` array.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { computeInkBounds, scalePointsStretch, scalePointsUniform } from './trace-codec';\n/** Marker used by {@link isOfficeInk}. */\nvar OFFICE_INK_BRAND = Symbol.for('@syncfusion/ej2-office-common.OfficeInk');\n/** Default authored brush size (spec mutation §): 1.42pt × 1.42pt. */\nvar DEFAULT_AUTHORED_BRUSH_SIZE = 1.42;\nvar DEFAULT_AUTHORED_COLOR = '#000000';\nvar DEFAULT_AUTHORED_UNITS = 'pt';\nvar DEFAULT_CONTEXT_REF = '#ctx0';\nfunction isInkEffectType(value) {\n return (value === 'none' ||\n value === 'pencil' ||\n value === 'rainbow' ||\n value === 'galaxy' ||\n value === 'lava' ||\n value === 'ocean' ||\n value === 'roseGold' ||\n value === 'gold' ||\n value === 'silver' ||\n value === 'bronze');\n}\nfunction cloneBrush(source, id) {\n var next = {\n color: source.color,\n size: { width: source.size.width, height: source.size.height },\n units: source.units,\n inkEffect: source.inkEffect,\n ignorePressure: source.ignorePressure,\n id: id,\n };\n if (source.tip !== undefined) {\n next.tip = source.tip;\n }\n if (source.rasterOp !== undefined) {\n next.rasterOp = source.rasterOp;\n }\n if (source.anchorX !== undefined) {\n next.anchorX = source.anchorX;\n }\n if (source.anchorY !== undefined) {\n next.anchorY = source.anchorY;\n }\n if (source.scaleFactor !== undefined) {\n next.scaleFactor = source.scaleFactor;\n }\n if (source.transparency !== undefined) {\n next.transparency = source.transparency;\n }\n if (source.antiAliased !== undefined) {\n next.antiAliased = source.antiAliased;\n }\n if (source.fitToCurve !== undefined) {\n next.fitToCurve = source.fitToCurve;\n }\n return next;\n}\nfunction cloneContext(source) {\n var next = {\n id: source.id,\n channels: source.channels.map(function (ch) {\n var c = { name: ch.name };\n if (ch.type !== undefined) {\n c.type = ch.type;\n }\n if (ch.min !== undefined) {\n c.min = ch.min;\n }\n if (ch.max !== undefined) {\n c.max = ch.max;\n }\n if (ch.units !== undefined) {\n c.units = ch.units;\n }\n return c;\n }),\n };\n if (source.inkSourceId !== undefined) {\n next.inkSourceId = source.inkSourceId;\n }\n return next;\n}\nfunction defaultAuthoredBrush(id) {\n return {\n color: DEFAULT_AUTHORED_COLOR,\n size: { width: DEFAULT_AUTHORED_BRUSH_SIZE, height: DEFAULT_AUTHORED_BRUSH_SIZE },\n units: DEFAULT_AUTHORED_UNITS,\n inkEffect: 'none',\n ignorePressure: true,\n id: id,\n };\n}\nfunction applyBrushPartial(target, partial) {\n if (partial.color !== undefined) {\n target.color = partial.color;\n }\n if (partial.size !== undefined) {\n target.size = {\n width: partial.size.width,\n height: partial.size.height,\n };\n }\n if (partial.units !== undefined) {\n target.units = partial.units;\n }\n if (partial.inkEffect !== undefined && isInkEffectType(partial.inkEffect)) {\n target.inkEffect = partial.inkEffect;\n }\n if (partial.ignorePressure !== undefined) {\n target.ignorePressure = partial.ignorePressure;\n }\n if (partial.tip !== undefined) {\n target.tip = partial.tip;\n }\n if (partial.rasterOp !== undefined) {\n target.rasterOp = partial.rasterOp;\n }\n if (partial.anchorX !== undefined) {\n target.anchorX = partial.anchorX;\n }\n if (partial.anchorY !== undefined) {\n target.anchorY = partial.anchorY;\n }\n if (partial.scaleFactor !== undefined) {\n target.scaleFactor = partial.scaleFactor;\n }\n}\n/**\n * Allocate the next `#br{N}` key that does not collide with existing brushes.\n */\nfunction allocateBrushId(brushes) {\n var used = new Set(brushes.map(function (b) { return b.id; }));\n var n = 0;\n for (;;) {\n var id = \"#br\" + String(n);\n if (!used.has(id)) {\n return id;\n }\n n += 1;\n }\n}\nfunction brandInk(ink) {\n var internal = ink;\n Object.defineProperty(internal, OFFICE_INK_BRAND, {\n value: true,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return internal;\n}\n/**\n * Build a branded ink from parsed InkML state (`scaleMode: 'decoded'`).\n *\n * @private\n */\nexport function createDecodedInk(init) {\n return brandInk(__assign({ traces: init.traces, brushes: init.brushes, scaleMode: 'decoded' }, (init.contexts !== undefined ? { contexts: init.contexts } : {}), (init.traceTree !== undefined ? { traceTree: init.traceTree } : {})));\n}\n/**\n * Allocate a fresh, empty ink DOM for authoring.\n *\n * Empty traces; no brushes until the first {@link addInkTrace}. Scale mode\n * is `'authored'` (stretch-to-fit for {@link inkPathPoints}).\n *\n * @private\n */\nexport function createInk() {\n return brandInk({\n traces: [],\n brushes: [],\n scaleMode: 'authored',\n });\n}\n/**\n * Add a trace to an ink DOM.\n *\n * Brush selection (spec mutation §):\n * - If `brush` partial is provided, clone previous brush (or default) then\n * apply the partial onto a **new** brush id.\n * - Else if a previous trace exists, clone that trace's brush under a new id.\n * - Else allocate the default black `1.42pt × 1.42pt` authored brush as `#br0`.\n *\n * Returns the new trace. Mutates `ink` in place (traces/brushes arrays grow).\n *\n * @private\n */\nexport function addInkTrace(ink, points, brush) {\n if (!isOfficeInk(ink)) {\n throw new TypeError('addInkTrace: expected OfficeInk from createInk/cloneInk');\n }\n var internal = ink;\n var pointCopy = points.map(function (p) { return ({ x: p.x, y: p.y }); });\n var sourceBrush;\n var lastTrace = internal.traces[internal.traces.length - 1];\n if (lastTrace !== undefined) {\n sourceBrush = internal.brushes.find(function (b) { return b.id === lastTrace.brushRef; });\n }\n var newId = allocateBrushId(internal.brushes);\n var newBrush = sourceBrush !== undefined\n ? cloneBrush(sourceBrush, newId)\n : defaultAuthoredBrush(newId);\n if (brush !== undefined) {\n applyBrushPartial(newBrush, brush);\n }\n internal.brushes.push(newBrush);\n var trace = {\n points: pointCopy,\n brushRef: newBrush.id,\n contextRef: DEFAULT_CONTEXT_REF,\n };\n var traceIndex = internal.traces.length;\n internal.traces.push(trace);\n // Keep ordered tree in sync so serializeInkXml (tree-preferring) emits new traces.\n if (internal.traceTree !== undefined) {\n internal.traceTree = __spread(internal.traceTree, [{ kind: 'trace', traceIndex: traceIndex }]);\n }\n return trace;\n}\n/**\n * Deep-copy an ink DOM (independent traces, points, brushes, and contexts).\n *\n * @private\n */\nexport function cloneInk(ink) {\n if (!isOfficeInk(ink)) {\n throw new TypeError('cloneInk: expected OfficeInk from createInk/cloneInk');\n }\n var internal = ink;\n var brushes = internal.brushes.map(function (b) { return cloneBrush(b, b.id); });\n var traces = internal.traces.map(function (t) {\n var copy = {\n points: t.points.map(function (p) { return ({ x: p.x, y: p.y }); }),\n brushRef: t.brushRef,\n contextRef: t.contextRef,\n };\n if (t.timeOffset !== undefined) {\n copy.timeOffset = t.timeOffset;\n }\n return copy;\n });\n var next = {\n traces: traces,\n brushes: brushes,\n scaleMode: internal.scaleMode,\n };\n if (internal.contexts !== undefined) {\n next.contexts = internal.contexts.map(cloneContext);\n }\n if (internal.traceTree !== undefined) {\n next.traceTree = cloneTraceTree(internal.traceTree);\n }\n return brandInk(next);\n}\nfunction cloneTraceTree(nodes) {\n return nodes.map(function (n) {\n if (n.kind === 'trace') {\n return { kind: 'trace', traceIndex: n.traceIndex };\n }\n return { kind: 'group', children: cloneTraceTree(n.children) };\n });\n}\n/**\n * Convert ink traces into plane point paths scaled to a drawing extent.\n *\n * Authored ink (`scaleMode === 'authored'`, default from {@link createInk})\n * uses stretch-to-fit (re-zero). Decoded ink uses uniform scale (no re-zero).\n * Bounds are computed over **all** points in the ink, then each path is scaled\n * with the same transform.\n *\n * @private\n */\nexport function inkPathPoints(ink, extent) {\n var e_1, _a, e_2, _b, e_3, _c;\n if (!isOfficeInk(ink)) {\n throw new TypeError('inkPathPoints: expected OfficeInk from createInk/cloneInk');\n }\n var internal = ink;\n var allPoints = [];\n try {\n for (var _d = __values(internal.traces), _e = _d.next(); !_e.done; _e = _d.next()) {\n var t = _e.value;\n try {\n for (var _f = __values(t.points), _g = _f.next(); !_g.done; _g = _f.next()) {\n var p = _g.value;\n allPoints.push(p);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (allPoints.length === 0) {\n return internal.traces.map(function () { return []; });\n }\n // Build a single scaled cloud, then slice back per trace by index.\n var scaledAll = internal.scaleMode === 'decoded'\n ? scalePointsUniform(allPoints, extent)\n : scalePointsStretch(allPoints, extent);\n var offset = 0;\n var paths = [];\n try {\n for (var _h = __values(internal.traces), _j = _h.next(); !_j.done; _j = _h.next()) {\n var t = _j.value;\n var slice = scaledAll.slice(offset, offset + t.points.length);\n offset += t.points.length;\n paths.push(__spread(slice));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_c = _h.return)) _c.call(_h);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return paths;\n}\n/**\n * Type guard for {@link OfficeInk} instances produced by this module.\n *\n * @private\n */\nexport function isOfficeInk(value) {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n return value[OFFICE_INK_BRAND] === true;\n}\n/**\n * Mark an ink as authored or decoded (uniform scale path).\n * Hosts and tests use this to select the scale mode for bounds/path computation.\n *\n * @private\n */\nexport function setInkScaleMode(ink, mode) {\n if (!isOfficeInk(ink)) {\n throw new TypeError('setInkScaleMode: expected OfficeInk');\n }\n ink.scaleMode = mode;\n}\nexport { computeInkBounds };\n","/**\n * Minimal Open XML element tree model shared by office-common codecs.\n *\n * Shape matches the application-repo OpenXml tree (`ej2-docx` `src/core/xml/model.ts`)\n * so ink parse/serialize can accept host-supplied trees without a second DOM type.\n *\n * This module does **not** parse raw bytes — callers supply an element tree.\n */\n/**\n * XML namespace URI (`xml:`).\n *\n * @public\n */\nexport var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n/**\n * XMLNS namespace URI (`xmlns:`).\n *\n * @public\n */\nexport var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n","/**\n * Length unit conversion for ink brush width/height.\n *\n * Formulas match Compression.Base `OfficeParser.GetPointValue` (unit→pt) and\n * `OfficeSerializer.ConvertPointsToUnit` (pt→unit). EMU factor: 12700 EMU/pt\n * (DrawingML).\n */\n/**\n * DrawingML EMUs per point (OfficeParser / OfficeSerializer).\n *\n * @public\n */\nexport var EMUS_PER_POINT = 12700;\n/**\n * Convert a numeric length in `units` to points.\n * Result is rounded to 2 decimal places (GetPointValue parity).\n *\n * @public\n */\nexport function unitValueToPoints(value, units) {\n var u = ((units != null ? units : 'cm')).trim().toLowerCase();\n var points;\n switch (u) {\n case 'pt':\n points = value;\n break;\n case 'mm':\n points = (value / 25.4) * 72;\n break;\n case 'px':\n points = (value / 4) * 3;\n break;\n case 'in':\n points = value * 72;\n break;\n case 'cm':\n points = (value / 2.54) * 72;\n break;\n case 'emu':\n points = value / EMUS_PER_POINT;\n break;\n default:\n // Unknown unit: treat as EMU-less raw → cm (GetPointValue else branch uses EMU)\n points = value / EMUS_PER_POINT;\n break;\n }\n return round2(points);\n}\n/**\n * Convert points to the target unit (ConvertPointsToUnit).\n * Default / unknown unit → cm.\n *\n * @public\n */\nexport function pointsToUnit(points, units) {\n var u = ((units != null ? units : 'cm')).trim().toLowerCase();\n switch (u) {\n case 'pt':\n return points;\n case 'mm':\n return (points * 25.4) / 72;\n case 'px':\n return (points * 96) / 72;\n case 'in':\n return points / 72;\n case 'cm':\n return (points * 2.54) / 72;\n case 'emu':\n return points * EMUS_PER_POINT;\n default:\n return (points * 2.54) / 72;\n }\n}\n/**\n * Format a unit magnitude with invariant 3-decimal style (`\"0.###\"`).\n *\n * @public\n */\nexport function formatUnitValue(value) {\n if (!Number.isFinite(value)) {\n return '0';\n }\n // Trim trailing zeros after up to 3 decimal places (InvariantCulture \"0.###\").\n var fixed = value.toFixed(3);\n if (!(fixed.indexOf('.') !== -1)) {\n return fixed;\n }\n return fixed.replace(/\\.?0+$/, '');\n}\nfunction round2(n) {\n return Math.round(n * 100) / 100;\n}\n","/**\n * Small OpenXml element helpers scoped to InkML serialization.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { XML_NAMESPACE, XMLNS_NAMESPACE } from '../../core/xml/model';\nimport { INKML_NAMESPACE } from './constants';\nvar INK_PREFIX = 'inkml';\n/** Build an InkML-namespaced element. */\nexport function inkElement(localName, attributes, children, namespaceDeclarations) {\n if (attributes === void 0) { attributes = []; }\n if (children === void 0) { children = []; }\n if (namespaceDeclarations === void 0) { namespaceDeclarations = []; }\n return { kind: 'element',\n namespaceUri: INKML_NAMESPACE,\n localName: localName,\n prefix: INK_PREFIX,\n attributes: attributes,\n namespaceDeclarations: namespaceDeclarations,\n children: children,\n };\n}\n/** Plain attribute (no namespace). */\nexport function attr(localName, value) {\n return { namespaceUri: '', localName: localName, prefix: '', value: value };\n}\n/** `xml:id` attribute. */\nexport function xmlIdAttr(id) {\n return {\n namespaceUri: XML_NAMESPACE,\n localName: 'id',\n prefix: 'xml',\n value: id,\n };\n}\n/** Text node. */\nexport function textNode(value) {\n return { kind: 'text', value: value };\n}\n/** `xmlns:inkml` declaration for the ink root. */\nexport function inkmlNamespaceDecl() {\n return { prefix: INK_PREFIX, namespaceUri: INKML_NAMESPACE };\n}\n/** Read attribute by local name (optional namespace filter). */\nexport function getAttr(el, localName, namespaceUri) {\n var e_1, _a, e_2, _b;\n try {\n for (var _c = __values(el.attributes), _d = _c.next(); !_d.done; _d = _c.next()) {\n var a = _d.value;\n if (a.localName !== localName) {\n continue;\n }\n if (namespaceUri !== undefined && a.namespaceUri !== namespaceUri) {\n continue;\n }\n return a.value;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // xml:id may appear as prefixed without namespace resolution in hand-built trees\n if (localName === 'id') {\n try {\n for (var _e = __values(el.attributes), _f = _e.next(); !_f.done; _f = _e.next()) {\n var a = _f.value;\n if (a.localName === 'id' && (a.prefix === 'xml' || a.namespaceUri === XML_NAMESPACE)) {\n return a.value;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return undefined;\n}\n/** Concatenate descendant text of an element. */\nexport function elementText(el) {\n var e_3, _a;\n var out = '';\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind === 'text') {\n out += child.value;\n }\n else {\n out += elementText(child);\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return out;\n}\n/** Direct element children in document order (optional namespace filter). */\nexport function elementChildren(el, localName, namespaceUri) {\n if (namespaceUri === void 0) { namespaceUri = INKML_NAMESPACE; }\n var e_4, _a;\n var result = [];\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind !== 'element') {\n continue;\n }\n if (namespaceUri !== '' && child.namespaceUri !== namespaceUri && child.namespaceUri !== '') {\n // Allow empty namespaceUri for hand-built / defaulted fixtures when local names match InkML.\n if (child.namespaceUri !== INKML_NAMESPACE && namespaceUri === INKML_NAMESPACE) {\n // still accept un-namespaced ink fixtures if localName matches\n if (localName !== undefined && child.localName !== localName) {\n continue;\n }\n if (localName === undefined) {\n // only accept if it looks like ink content (caller filters)\n }\n }\n }\n if (localName !== undefined && child.localName !== localName) {\n continue;\n }\n if (namespaceUri === INKML_NAMESPACE &&\n child.namespaceUri !== INKML_NAMESPACE &&\n child.namespaceUri !== '') {\n continue;\n }\n result.push(child);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return result;\n}\n/** Whether an element is in the InkML namespace (or un-namespaced fixture). */\nexport function isInkMlElement(el) {\n return el.namespaceUri === INKML_NAMESPACE || el.namespaceUri === '';\n}\nexport { XML_NAMESPACE, XMLNS_NAMESPACE, INKML_NAMESPACE, INK_PREFIX };\n","/**\n * InkML element-tree → {@link OfficeInk} parser ([MS-ODRAWXML] §2.1.4).\n *\n * The caller supplies an OpenXml element tree; this module never reads bytes\n * and never expands entities. Count guards are surfaced via\n * {@link getLastInkParseDiagnostics} for consumer limits policy.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { XML_NAMESPACE } from '../../core/xml/model';\nimport { INKML_NAMESPACE } from './constants';\nimport { createDecodedInk } from './ink-model';\nimport { unitValueToPoints } from './ink-units';\nimport { elementText, getAttr, isInkMlElement } from './ink-xml';\nimport { decodeTrace } from './trace-codec';\n/**\n * Diagnostic code for untokenizable / empty-result malformed traces.\n *\n * @public\n */\nexport var DIAG_INVALID_INK_TRACE = 'content/invalid-ink-trace';\nvar RECOGNIZED_CHANNELS = new Set(['X', 'Y', 'Z', 'S', 'T', 'SN', 'F', 'TP', 'BP', 'OTx', 'OTy', 'OA', 'OE', 'OR', 'RP', 'RR', 'RY', 'TW', 'TH', 'TC']);\nvar RECOGNIZED_CHANNEL_UNITS = new Set(['dev', 'in', 'cm', 'deg', 'rad', 's', 'lb', 'g']);\n/** §2.1.4 ignore-list local names (skipped, never persisted). */\nvar IGNORE_LOCAL_NAMES = new Set(['timestamp', 'canvas', 'canvasTransform', 'mapping', 'bind', 'table', 'matrix', 'traceView', 'annotation', 'annotationXML', 'channelProperty', 'traceProperty', 'brushPropertyRef', 'intermittentInfo', 'latency', 'sampleRate', 'sampleRateExact', 'srcRef', 'channelRef']);\nvar BRUSH_PROP_NAMES = new Set(['width', 'height', 'color', 'transparency', 'tip', 'rasterop', 'antialiased', 'fittocurve', 'ignorepressure', 'inkeffects', 'anchorx', 'anchory', 'scalefactor']);\nvar EFFECT_TOKENS = new Map([\n ['none', 'none'],\n ['pencil', 'pencil'],\n ['rainbow', 'rainbow'],\n ['galaxy', 'galaxy'],\n ['lava', 'lava'],\n ['ocean', 'ocean'],\n ['rosegold', 'roseGold'],\n ['gold', 'gold'],\n ['silver', 'silver'],\n ['bronze', 'bronze'],\n]);\n/** Parse defaults ([MS-ODRAWXML] §2.1.4 / OfficeParser). */\nvar DEFAULT_WIDTH_CM = 0.053;\nvar DEFAULT_HEIGHT_CM = 0.001;\nvar DEFAULT_COLOR = '#000000';\nvar DEFAULT_TIP = 'ellipse';\nvar DEFAULT_RASTER_OP = 'copyPen';\nvar DEFAULT_CONTEXT_REF = '#ctx0';\nvar lastDiagnostics = {\n items: [],\n traceCount: 0,\n packetCount: 0,\n pointCount: 0,\n channelValueCount: 0\n};\n/**\n * Diagnostics from the most recent {@link parseInkXml} invocation.\n *\n * @public\n */\nexport function getLastInkParseDiagnostics() {\n return lastDiagnostics;\n}\n/**\n * Parse an InkML `ink` root element tree into a branded {@link OfficeInk}.\n *\n * Source: [MS-ODRAWXML] §2.1.4; W3C InkML 1.0; `docs/specs/ink-shared-codec.md`.\n *\n * @public\n */\nexport function parseInkXml(root) {\n var e_1, _a, e_2, _b;\n var diagnostics = [];\n var packetCount = 0;\n var pointCount = 0;\n var channelValueCount = 0;\n var brushes = [];\n var contexts = [];\n var traces = [];\n var treeRoots = [];\n if (!isInkRoot(root)) {\n lastDiagnostics = {\n items: diagnostics,\n traceCount: 0,\n packetCount: 0,\n pointCount: 0,\n channelValueCount: 0\n };\n return createDecodedInk({\n traces: [],\n brushes: []\n });\n }\n // First pass: definitions (at most one considered; extras ignored after first)\n var sawDefinitions = false;\n try {\n for (var _c = __values(root.children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n continue;\n }\n var name_1 = child.localName;\n if (IGNORE_LOCAL_NAMES.has(name_1)) {\n continue;\n }\n if (name_1 === 'definitions') {\n if (sawDefinitions) {\n continue;\n }\n sawDefinitions = true;\n parseDefinitions(child, brushes, contexts);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n // Second pass: traces / groups in document order (C# only walks root children)\n for (var _e = __values(root.children), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n continue;\n }\n var name_2 = child.localName;\n if (IGNORE_LOCAL_NAMES.has(name_2) || name_2 === 'definitions') {\n continue;\n }\n if (name_2 === 'trace') {\n var _g = parseTraceElement(child, traces.length), trace = _g.trace, node = _g.node, stats = _g.stats, diagnostic = _g.diagnostic;\n traces.push(trace);\n treeRoots.push(node);\n packetCount += stats.packetCount;\n pointCount += stats.pointCount;\n channelValueCount += stats.channelValueCount;\n if (diagnostic !== undefined) {\n diagnostics.push(diagnostic);\n }\n }\n else if (name_2 === 'traceGroup') {\n var group = parseTraceGroup(child, traces, diagnostics, function (s) {\n packetCount += s.packetCount;\n pointCount += s.pointCount;\n channelValueCount += s.channelValueCount;\n });\n if (group.children.length > 0) {\n treeRoots.push(group);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n lastDiagnostics = {\n items: diagnostics,\n traceCount: traces.length,\n packetCount: packetCount,\n pointCount: pointCount,\n channelValueCount: channelValueCount\n };\n return createDecodedInk(__assign({ traces: traces,\n brushes: brushes }, (contexts.length > 0 ? {\n contexts: contexts\n } : {}), (traces.length > 0 ? {\n traceTree: treeRoots\n } : {})));\n}\nfunction isInkRoot(el) {\n if (el.localName !== 'ink') {\n return false;\n }\n return isInkMlElement(el) || el.namespaceUri === INKML_NAMESPACE;\n}\nfunction parseDefinitions(def, brushes, contexts) {\n var e_3, _a;\n try {\n for (var _b = __values(def.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n continue;\n }\n if (IGNORE_LOCAL_NAMES.has(child.localName)) {\n continue;\n }\n if (child.localName === 'brush') {\n brushes.push(parseBrush(child));\n }\n else if (child.localName === 'context') {\n var ctx = parseContext(child);\n if (ctx !== undefined) {\n contexts.push(ctx);\n }\n }\n // context only under definitions (already here); ignore elsewhere handled by root walk\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n}\nfunction parseContext(el) {\n var e_4, _a;\n var rawId = readXmlId(el);\n if (rawId === undefined || rawId.length === 0) {\n // Still accept context without id using a synthetic key? Spec requires id for inkSource;\n // skip malformed context without id.\n return undefined;\n }\n var id = ensureHash(rawId);\n var inkSourceId;\n var channels = [];\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n continue;\n }\n if (IGNORE_LOCAL_NAMES.has(child.localName)) {\n continue;\n }\n if (child.localName === 'inkSource') {\n var srcId = readXmlId(child);\n if (srcId !== undefined && srcId.length > 0) {\n inkSourceId = srcId;\n }\n // Walk inkSource for nested traceFormat as Office often nests it here\n collectChannelsFrom(child, channels);\n }\n else if (child.localName === 'traceFormat') {\n collectChannelsFrom(child, channels);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n var ctx = {\n id: id,\n channels: channels\n };\n if (inkSourceId !== undefined) {\n ctx.inkSourceId = inkSourceId;\n }\n return ctx;\n}\nfunction collectChannelsFrom(el, channels) {\n var e_5, _a;\n var _loop_1 = function (child) {\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n return \"continue\";\n }\n if (child.localName === 'traceFormat') {\n collectChannelsFrom(child, channels);\n return \"continue\";\n }\n if (child.localName !== 'channel') {\n return \"continue\";\n }\n var name_3 = function () {\n var _nc = getAttr(child, 'name');\n return _nc != null ? _nc : '';\n }();\n if (!RECOGNIZED_CHANNELS.has(name_3)) {\n return \"continue\";\n }\n var ch = {\n name: name_3\n };\n var type = getAttr(child, 'type');\n if (type !== undefined) {\n ch.type = type;\n }\n var min = getAttr(child, 'min');\n if (min !== undefined) {\n ch.min = min;\n }\n var max = getAttr(child, 'max');\n if (max !== undefined) {\n ch.max = max;\n }\n var units = getAttr(child, 'units');\n if (units !== undefined && RECOGNIZED_CHANNEL_UNITS.has(units)) {\n ch.units = units;\n }\n else if (units !== undefined) {\n // Preserve units string even if outside short list (cm always recognized)\n ch.units = units;\n }\n // orientation / respectTo ignored\n channels.push(ch);\n };\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n _loop_1(child);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n}\nfunction parseBrush(el) {\n var e_6, _a;\n var rawId = function () {\n var _nc = readXmlId(el);\n return _nc != null ? _nc : '';\n }();\n var id = ensureHash(rawId.length > 0 ? rawId : 'br0');\n // Defaults (parse §2.1.4) — size stored in points after unit conversion\n var widthPt = unitValueToPoints(DEFAULT_WIDTH_CM, 'cm');\n var heightPt = unitValueToPoints(DEFAULT_HEIGHT_CM, 'cm');\n var units = 'cm';\n var color = DEFAULT_COLOR;\n var tip = DEFAULT_TIP;\n var rasterOp = DEFAULT_RASTER_OP;\n var ignorePressure = false;\n var inkEffect = 'none';\n var anchorX;\n var anchorY;\n var scaleFactor;\n var transparency;\n var antiAliased;\n var fitToCurve;\n var sawWidth = false;\n var sawHeight = false;\n var _loop_2 = function (child) {\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n return \"continue\";\n }\n if (child.localName !== 'brushProperty') {\n return \"continue\";\n }\n var nameRaw = getAttr(child, 'name');\n if (nameRaw === undefined) {\n return \"continue\";\n }\n var name_4 = nameRaw.trim().toLowerCase();\n if (!BRUSH_PROP_NAMES.has(name_4)) {\n return \"continue\";\n }\n var valueRaw = function () {\n var _nc = getAttr(child, 'value');\n return _nc != null ? _nc : '';\n }();\n var unitsAttr = getAttr(child, 'units');\n switch (name_4) {\n case 'width':\n {\n var n = parseLengthNumber(valueRaw);\n if (n !== undefined) {\n var u = unitsAttr != null ? unitsAttr : 'cm';\n widthPt = unitValueToPoints(n, u);\n if (!sawHeight) {\n units = u;\n }\n sawWidth = true;\n units = u;\n }\n break;\n }\n case 'height':\n {\n var n = parseLengthNumber(valueRaw);\n if (n !== undefined) {\n var u = unitsAttr != null ? unitsAttr : units;\n heightPt = unitValueToPoints(n, u);\n sawHeight = true;\n if (unitsAttr !== undefined) {\n units = unitsAttr;\n }\n }\n break;\n }\n case 'color':\n {\n var hex = normalizeColor(valueRaw);\n if (hex !== undefined) {\n color = hex;\n }\n break;\n }\n case 'tip':\n {\n if (valueRaw.length > 0) {\n tip = valueRaw;\n }\n break;\n }\n case 'rasterop':\n {\n if (valueRaw.length > 0) {\n rasterOp = valueRaw;\n }\n break;\n }\n case 'ignorepressure':\n {\n ignorePressure = parseBoolish(valueRaw);\n break;\n }\n case 'inkeffects':\n {\n var token = valueRaw.trim().toLowerCase().replace(/[_\\s-]/g, '');\n var mapped = EFFECT_TOKENS.get(token);\n if (mapped !== undefined) {\n inkEffect = mapped;\n }\n break;\n }\n case 'anchorx':\n {\n anchorX = valueRaw;\n break;\n }\n case 'anchory':\n {\n anchorY = valueRaw;\n break;\n }\n case 'scalefactor':\n {\n scaleFactor = valueRaw;\n break;\n }\n case 'transparency':\n {\n var n = Number(valueRaw);\n if (Number.isFinite(n)) {\n transparency = n;\n }\n break;\n }\n case 'antialiased':\n {\n antiAliased = parseBoolish(valueRaw);\n break;\n }\n case 'fittocurve':\n {\n fitToCurve = parseBoolish(valueRaw);\n break;\n }\n default:\n break;\n }\n };\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n _loop_2(child);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n // If neither width nor height units seen, keep cm (default source unit)\n if (!sawWidth && !sawHeight) {\n units = 'cm';\n }\n var brush = {\n id: id,\n color: color,\n size: {\n width: widthPt,\n height: heightPt\n },\n units: units,\n inkEffect: inkEffect,\n ignorePressure: ignorePressure,\n tip: tip,\n rasterOp: rasterOp\n };\n if (anchorX !== undefined) {\n brush.anchorX = anchorX;\n }\n if (anchorY !== undefined) {\n brush.anchorY = anchorY;\n }\n if (scaleFactor !== undefined) {\n brush.scaleFactor = scaleFactor;\n }\n if (transparency !== undefined) {\n brush.transparency = transparency;\n }\n if (antiAliased !== undefined) {\n brush.antiAliased = antiAliased;\n }\n if (fitToCurve !== undefined) {\n brush.fitToCurve = fitToCurve;\n }\n return brush;\n}\nfunction parseTraceElement(el, traceIndex) {\n var brushRefRaw = function () {\n var _nc = getAttr(el, 'brushRef');\n return _nc != null ? _nc : '';\n }();\n var contextRefRaw = function () {\n var _nc = getAttr(el, 'contextRef');\n return _nc != null ? _nc : '';\n }();\n var timeOffset = getAttr(el, 'timeOffset');\n var text = elementText(el).trim();\n var decoded = decodeTrace(text);\n var diagnostic;\n // Malformed: non-empty text that produced zero points → diagnostic\n if (text.length > 0 && decoded.points.length === 0) {\n diagnostic = {\n code: DIAG_INVALID_INK_TRACE,\n message: 'malformed or untokenizable ink trace text',\n traceIndex: traceIndex\n };\n }\n var trace = {\n points: decoded.points.map(function (p) { return ({\n x: p.x,\n y: p.y\n }); }),\n brushRef: brushRefRaw.length > 0 ? ensureHash(brushRefRaw.replace(/^#/, '')) : '',\n contextRef: contextRefRaw.length > 0 ? ensureHash(contextRefRaw.replace(/^#/, '')) : DEFAULT_CONTEXT_REF\n };\n // Preserve brushRef as given with hash; empty string means unset\n if (brushRefRaw.length > 0) {\n trace.brushRef = brushRefRaw.startsWith('#') ? brushRefRaw : ensureHash(brushRefRaw);\n }\n if (timeOffset !== undefined) {\n trace.timeOffset = timeOffset;\n }\n return {\n trace: trace,\n node: {\n kind: 'trace',\n traceIndex: traceIndex\n },\n stats: {\n packetCount: decoded.stats.packetCount,\n pointCount: decoded.stats.pointCount,\n channelValueCount: decoded.stats.channelValueCount\n },\n diagnostic: diagnostic\n };\n}\nfunction parseTraceGroup(el, traces, diagnostics, onStats) {\n var e_7, _a;\n var children = [];\n try {\n for (var _b = __values(el.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind !== 'element' || !isInkMlElement(child)) {\n continue;\n }\n if (IGNORE_LOCAL_NAMES.has(child.localName)) {\n // annotationXML / annotation: ignored per §2.1.4 (decision: do not retain)\n continue;\n }\n if (child.localName === 'trace') {\n var _d = parseTraceElement(child, traces.length), trace = _d.trace, node = _d.node, stats = _d.stats, diagnostic = _d.diagnostic;\n traces.push(trace);\n children.push(node);\n onStats(stats);\n if (diagnostic !== undefined) {\n diagnostics.push(diagnostic);\n }\n }\n else if (child.localName === 'traceGroup') {\n var nested = parseTraceGroup(child, traces, diagnostics, onStats);\n if (nested.children.length > 0) {\n children.push(nested);\n }\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n return {\n kind: 'group',\n children: children\n };\n}\nfunction readXmlId(el) {\n var fromNs = getAttr(el, 'id', XML_NAMESPACE);\n if (fromNs !== undefined) {\n return fromNs;\n }\n return getAttr(el, 'id');\n}\nfunction ensureHash(id) {\n return id.startsWith('#') ? id : \"#\" + id;\n}\nfunction parseLengthNumber(raw) {\n var s = raw.trim();\n if (s.length === 0) {\n return undefined;\n }\n // GetPointValue: leading `.` → `0.`\n if (s.startsWith('.')) {\n s = \"0\" + s;\n }\n var n = Number(s);\n return Number.isFinite(n) ? n : undefined;\n}\nfunction normalizeColor(raw) {\n var s = raw.trim();\n if (s.length === 0) {\n return undefined;\n }\n if (!s.startsWith('#')) {\n s = \"#\" + s;\n }\n // Accept #RGB or #RRGGBB\n if (/^#[0-9A-Fa-f]{6}$/.test(s) || /^#[0-9A-Fa-f]{3}$/.test(s)) {\n if (s.length === 4) {\n var r = s.charAt(1);\n var g = s.charAt(2);\n var b = s.charAt(3);\n return (\"#\" + r + r + g + g + b + b).toUpperCase();\n }\n return s.toUpperCase();\n }\n return undefined;\n}\nfunction parseBoolish(raw) {\n var s = raw.trim().toLowerCase();\n return s === '1' || s === 'true';\n}\n","/**\n * {@link OfficeInk} → InkML element tree serializer ([MS-ODRAWXML] §2.1.4).\n *\n * Trace text is always {@link encodeTrace} from points — never stored XML text.\n * Brush property order matches `docs/specs/ink-shared-codec.md` / TASK-9003.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { isOfficeInk } from './ink-model';\nimport { inkEffectColor } from './ink-effects';\nimport { formatUnitValue, pointsToUnit } from './ink-units';\nimport { attr, inkElement, inkmlNamespaceDecl, textNode, xmlIdAttr, } from './ink-xml';\nimport { encodeTrace } from './trace-codec';\nvar DEFAULT_CONTEXT_ID = 'ctx0';\nvar DEFAULT_CONTEXT_REF = '#ctx0';\nvar DEFAULT_INK_SOURCE_ID = 'inkSrc0';\nvar CHANNEL_MIN = '-2.14748E9';\nvar CHANNEL_MAX = '2.14748E9';\nvar CHANNEL_UNITS = 'cm';\n/**\n * Serialize an {@link OfficeInk} DOM to an InkML `ink` root element.\n *\n * Source: [MS-ODRAWXML] §2.1.4; `docs/specs/ink-shared-codec.md` Serializer behavior.\n *\n * @private\n */\nexport function serializeInkXml(ink) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n if (!isOfficeInk(ink)) {\n throw new TypeError('serializeInkXml: expected OfficeInk from parseInkXml/createInk');\n }\n var children = [];\n var definitionsChildren = [];\n var needsContext = ink.traces.some(function (t) { return t.contextRef === DEFAULT_CONTEXT_REF || t.contextRef === '' || t.contextRef === \"#\" + DEFAULT_CONTEXT_ID; }) || ink.traces.length > 0;\n var contexts = (ink.contexts != null ? ink.contexts : []);\n // Emit each known context; ensure default #ctx0 when referenced/needed\n var hasDefaultContext = false;\n try {\n for (var contexts_1 = __values(contexts), contexts_1_1 = contexts_1.next(); !contexts_1_1.done; contexts_1_1 = contexts_1.next()) {\n var ctx = contexts_1_1.value;\n definitionsChildren.push(serializeContext(ctx));\n var bare = stripHash(ctx.id);\n if (bare === DEFAULT_CONTEXT_ID) {\n hasDefaultContext = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (contexts_1_1 && !contexts_1_1.done && (_a = contexts_1.return)) _a.call(contexts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (needsContext && !hasDefaultContext) {\n definitionsChildren.push(serializeContext(defaultContext()));\n }\n // Brushes sorted by id (string key order)\n var sortedBrushes = __spread(ink.brushes).sort(function (a, b) { return (a.id < b.id ? -1 : a.id > b.id ? 1 : 0); });\n try {\n for (var sortedBrushes_1 = __values(sortedBrushes), sortedBrushes_1_1 = sortedBrushes_1.next(); !sortedBrushes_1_1.done; sortedBrushes_1_1 = sortedBrushes_1.next()) {\n var brush = sortedBrushes_1_1.value;\n definitionsChildren.push(serializeBrush(brush));\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (sortedBrushes_1_1 && !sortedBrushes_1_1.done && (_b = sortedBrushes_1.return)) _b.call(sortedBrushes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (definitionsChildren.length > 0) {\n children.push(inkElement('definitions', [], definitionsChildren));\n }\n // Traces / groups\n if (ink.traceTree !== undefined && ink.traceTree.length > 0) {\n try {\n for (var _e = __values(ink.traceTree), _f = _e.next(); !_f.done; _f = _e.next()) {\n var node = _f.value;\n children.push.apply(children, __spread(serializeTreeNode(node, ink.traces)));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n else {\n try {\n for (var _g = __values(ink.traces), _h = _g.next(); !_h.done; _h = _g.next()) {\n var trace = _h.value;\n children.push(serializeTrace(trace));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_h && !_h.done && (_d = _g.return)) _d.call(_g);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n return inkElement('ink', [], children, [inkmlNamespaceDecl()]);\n}\nfunction defaultContext() {\n return {\n id: DEFAULT_CONTEXT_REF,\n inkSourceId: DEFAULT_INK_SOURCE_ID,\n channels: [\n {\n name: 'X',\n type: 'integer',\n min: CHANNEL_MIN,\n max: CHANNEL_MAX,\n units: CHANNEL_UNITS,\n },\n {\n name: 'Y',\n type: 'integer',\n min: CHANNEL_MIN,\n max: CHANNEL_MAX,\n units: CHANNEL_UNITS,\n },\n ],\n };\n}\nfunction serializeContext(ctx) {\n var idBare = stripHash(ctx.id);\n var inkSourceId = stripHash((ctx.inkSourceId != null ? ctx.inkSourceId : DEFAULT_INK_SOURCE_ID));\n var channels = ctx.channels.length > 0\n ? ctx.channels\n : defaultContext().channels;\n var channelEls = channels.map(function (ch) { return serializeChannel(ch); });\n var traceFormat = inkElement('traceFormat', [], channelEls);\n var inkSource = inkElement('inkSource', [xmlIdAttr(inkSourceId)], [traceFormat]);\n return inkElement('context', [xmlIdAttr(idBare)], [inkSource]);\n}\nfunction serializeChannel(ch) {\n var attrs = [attr('name', ch.name)];\n if (ch.type !== undefined) {\n attrs.push(attr('type', ch.type));\n }\n if (ch.min !== undefined) {\n attrs.push(attr('min', ch.min));\n }\n if (ch.max !== undefined) {\n attrs.push(attr('max', ch.max));\n }\n if (ch.units !== undefined) {\n attrs.push(attr('units', ch.units));\n }\n return inkElement('channel', attrs, []);\n}\nfunction serializeBrush(brush) {\n var idBare = stripHash(brush.id);\n var props = [];\n var units = brush.units.length > 0 ? brush.units : 'cm';\n // Size is stored in points after parse; authoring may use pt units with pt values.\n // ConvertPointsToUnit always treats size as points → target units.\n var widthOut = pointsToUnit(brush.size.width, units);\n var heightOut = pointsToUnit(brush.size.height, units);\n props.push(brushProperty('width', formatUnitValue(widthOut), units), brushProperty('height', formatUnitValue(heightOut), units));\n var color = resolveBrushColor(brush);\n props.push(brushProperty('color', color.startsWith('#') ? color : \"#\" + color));\n // Effect-specific series (TASK-9003 / shared-codec)\n // Always emit ignorePressure. Non-none effects emit inkEffects so parse→serialize→parse\n // preserves the effect token (including pencil, which has no color override).\n var effect = brush.inkEffect;\n props.push(brushProperty('ignorePressure', brush.ignorePressure ? '1' : '0'));\n if (effect !== 'pencil' && brush.rasterOp !== undefined && brush.rasterOp.length > 0) {\n props.push(brushProperty('tip', (brush.tip != null ? brush.tip : 'ellipse')));\n props.push(brushProperty('rasterOp', brush.rasterOp));\n }\n if (effect !== 'none') {\n props.push(brushProperty('inkEffects', effectToken(effect)));\n if (effect !== 'pencil') {\n props.push(brushProperty('anchorX', (brush.anchorX != null ? brush.anchorX : '0')));\n props.push(brushProperty('anchorY', (brush.anchorY != null ? brush.anchorY : '0')));\n props.push(brushProperty('scaleFactor', (brush.scaleFactor != null ? brush.scaleFactor : '0.5')));\n }\n }\n return inkElement('brush', [xmlIdAttr(idBare)], props);\n}\nfunction brushProperty(name, value, units) {\n var attrs = [attr('name', name), attr('value', value)];\n if (units !== undefined) {\n attrs.push(attr('units', units));\n }\n return inkElement('brushProperty', attrs, []);\n}\nfunction resolveBrushColor(brush) {\n var effectHex = inkEffectColor(brush.inkEffect);\n if (effectHex !== undefined) {\n return effectHex.toUpperCase();\n }\n return brush.color.toUpperCase();\n}\nfunction effectToken(effect) {\n // Prefer camelCase for roseGold (spec token); others lowercase\n if (effect === 'roseGold') {\n return 'roseGold';\n }\n return effect;\n}\nfunction serializeTreeNode(node, traces) {\n var e_5, _a;\n if (node.kind === 'trace') {\n var t = traces[node.traceIndex];\n if (t === undefined) {\n return [];\n }\n return [serializeTrace(t)];\n }\n var kids = [];\n try {\n for (var _b = __values(node.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n kids.push.apply(kids, __spread(serializeTreeNode(child, traces)));\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return [inkElement('traceGroup', [], kids)];\n}\nfunction serializeTrace(trace) {\n var attrs = [];\n var contextRef = trace.contextRef.length > 0 ? ensureHash(trace.contextRef) : DEFAULT_CONTEXT_REF;\n attrs.push(attr('contextRef', contextRef));\n if (trace.brushRef.length > 0) {\n attrs.push(attr('brushRef', ensureHash(trace.brushRef)));\n }\n if (trace.timeOffset !== undefined) {\n attrs.push(attr('timeOffset', trace.timeOffset));\n }\n var text = encodeTrace(trace.points);\n var children = text.length > 0 ? [textNode(text)] : [];\n return inkElement('trace', attrs, children);\n}\nfunction stripHash(id) {\n return id.startsWith('#') ? id.slice(1) : id;\n}\nfunction ensureHash(id) {\n return id.startsWith('#') ? id : \"#\" + id;\n}\n","/**\n * Cited Office Math Markup Language (OMML) constants.\n *\n * Sources:\n * - ECMA-376 Part 1 §22.1 (Office Math)\n * - ECMA-376 Part 4 Annex A.8.1 `shared-math.xsd`\n * - ECMA-376 Part 1 WordprocessingML transitional namespace\n * - W3C XML 1.0 `xml:` namespace (xml:space on m:t)\n */\n/**\n * Office Math namespace URI (`m:`).\n *\n * Source: ECMA-376-1 §22.1 /\n * `http://schemas.openxmlformats.org/officeDocument/2006/math`.\n *\n * @public\n */\nexport var MATH_NAMESPACE = 'http://schemas.openxmlformats.org/officeDocument/2006/math';\n/**\n * Preferred math prefix candidates for save-scoped registry.\n * First unused candidate wins: `m`, then `m1`, `m2`, …\n *\n * Source: mathml-spec §1.9 / §9.3.\n *\n * @public\n */\nexport var MATH_PREFIX_FALLBACKS = ['m', 'm1', 'm2', 'm3', 'm4', 'm5'];\n/**\n * WordprocessingML transitional namespace (`w:`).\n *\n * Used when bridging `w:rPr` / run content under `m:r` and `m:ctrlPr`\n * (ECMA-376-4 Annex A.8.1 `CT_R` / `CT_CtrlPr`).\n *\n * Source: ECMA-376-1 —\n * `http://schemas.openxmlformats.org/wordprocessingml/2006/main`.\n *\n * @public\n */\nexport var WML_TRANSITIONAL_NAMESPACE = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';\n/**\n * XML namespace used by `xml:space` on `m:t` (same policy as `w:t`).\n *\n * Source: W3C XML 1.0 — `http://www.w3.org/XML/1998/namespace`.\n *\n * @public\n */\nexport var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n","/**\n * Schema-exact Office Math simple-type unions.\n *\n * Source: ECMA-376 Part 1 §22.1.3 / Part 4 Annex A.8.1 `shared-math.xsd`.\n * Serializer emits only these tokens — never synthesize members.\n */\n/** Members of {@link MathJc}. */\nexport var MATH_JC_VALUES = ['left', 'right', 'center', 'centerGroup'];\n/** Members of {@link MathFractionType}. */\nexport var MATH_FTYPE_VALUES = ['bar', 'skw', 'lin', 'noBar'];\n/** Members of {@link MathShape} — centered|match only. */\nexport var MATH_SHP_VALUES = ['centered', 'match'];\n/** Members of {@link MathLimLoc}. */\nexport var MATH_LIMLOC_VALUES = ['undOvr', 'subSup'];\n/** Members of {@link MathTopBot}. */\nexport var MATH_TOPBOT_VALUES = ['top', 'bot'];\n/** Members of {@link MathBreakBin}. */\nexport var MATH_BREAKBIN_VALUES = ['before', 'after', 'repeat'];\n/** Members of {@link MathBreakBinSub}. */\nexport var MATH_BREAKBINSUB_VALUES = ['--', '-+', '+-'];\n/** Members of {@link MathScript}. */\nexport var MATH_SCRIPT_VALUES = [\n 'roman',\n 'script',\n 'fraktur',\n 'double-struck',\n 'sans-serif',\n 'monospace',\n];\n/** Members of {@link MathStyle}. */\nexport var MATH_STYLE_VALUES = ['p', 'b', 'i', 'bi'];\n/** Members of {@link MathSpacingRule}. */\nexport var MATH_SPACING_RULE_VALUES = [0, 1, 2, 3, 4];\n/** Parse ST_Jc; undefined when not a known token. */\nexport function parseMathJc(value) {\n return (MATH_JC_VALUES.indexOf(value) !== -1) ? value : undefined;\n}\n/** Parse ST_FType. */\nexport function parseMathFractionType(value) {\n return (MATH_FTYPE_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Shp. */\nexport function parseMathShape(value) {\n return (MATH_SHP_VALUES.indexOf(value) !== -1) ? value : undefined;\n}\n/** Parse ST_LimLoc. */\nexport function parseMathLimLoc(value) {\n return (MATH_LIMLOC_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_TopBot. */\nexport function parseMathTopBot(value) {\n return (MATH_TOPBOT_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_BreakBin. */\nexport function parseMathBreakBin(value) {\n return (MATH_BREAKBIN_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_BreakBinSub. */\nexport function parseMathBreakBinSub(value) {\n return (MATH_BREAKBINSUB_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Script. */\nexport function parseMathScript(value) {\n return (MATH_SCRIPT_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Style. */\nexport function parseMathStyle(value) {\n return (MATH_STYLE_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/**\n * ST_Integer2 range −2..2 (argSz).\n *\n * Source: ECMA-376-1 §22.1.3.5.\n */\nexport function isInteger2(value) {\n return Number.isInteger(value) && value >= -2 && value <= 2;\n}\n/**\n * ST_Integer255 range 1..255.\n *\n * Source: ECMA-376-1 §22.1.3.6.\n */\nexport function isInteger255(value) {\n return Number.isInteger(value) && value >= 1 && value <= 255;\n}\n/**\n * ST_UnSignedInteger ≥ 0.\n *\n * Source: ECMA-376-1 §22.1.3.14.\n */\nexport function isUnSignedInteger(value) {\n return Number.isInteger(value) && value >= 0;\n}\n/**\n * ST_SpacingRule 0..4.\n *\n * Source: ECMA-376-1 §22.1.3.11.\n */\nexport function isSpacingRule(value) {\n return Number.isInteger(value) && value >= 0 && value <= 4;\n}\n/** Parse OnOff-style val attribute (`1`/`true`/`on` → true). */\nexport function parseOnOff(value) {\n if (value === undefined) {\n return undefined;\n }\n var v = value.toLowerCase();\n if (v === '1' || v === 'true' || v === 'on') {\n return true;\n }\n if (v === '0' || v === 'false' || v === 'off') {\n return false;\n }\n return undefined;\n}\n/** Emit OnOff as `'1'` / `'0'`. */\nexport function emitOnOff(value) {\n return value ? '1' : '0';\n}\n","/**\n * Typed mathml errors (mathml-spec Errors section).\n *\n * Common-owned; docx-js passes them through untouched.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Schema violation detected on author/serialize of a typed math tree.\n *\n * Source: mathml-spec Errors section —\n * `elementPath` dotted model path (e.g. `'oMath.f.den'`),\n * `constraintKind` one of child-order | enum-value | required-child | value-range.\n *\n * @private\n * Internal error contract between the mathml model, parser, and serializer;\n * not part of the public authoring API.\n */\nvar MathmlValidationError = /** @class */ (function (_super) {\n __extends(MathmlValidationError, _super);\n function MathmlValidationError(message, elementPath, constraintKind) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.name = 'MathmlValidationError';\n _this.elementPath = elementPath;\n _this.constraintKind = constraintKind;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return MathmlValidationError;\n}(Error));\nexport { MathmlValidationError };\n/**\n * Mutation attempted on a preserve-only (degraded) math equation.\n *\n * Source: mathml-spec §8b — malformed load degrades; later mutate throws.\n *\n * @private\n * Internal error contract between the mathml model, parser, and serializer;\n * not part of the public authoring API.\n */\nvar MathmlReadOnlyError = /** @class */ (function (_super) {\n __extends(MathmlReadOnlyError, _super);\n function MathmlReadOnlyError(message) {\n var _newTarget = this.constructor;\n if (message === void 0) { message = 'Math equation is preserve-only and cannot be mutated'; }\n var _this = _super.call(this, message) || this;\n /**\n * Always `true` — the equation is locked in preserve-only mode and mutations are blocked.\n */\n _this.isPreserveOnly = true;\n _this.name = 'MathmlReadOnlyError';\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return MathmlReadOnlyError;\n}(Error));\nexport { MathmlReadOnlyError };\n","/**\n * MathElement base hierarchy for OMML typed DOM.\n *\n * Source: mathml-spec §7; ECMA-376-4 Annex A.8.1.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { MathmlReadOnlyError, MathmlValidationError } from '../errors';\nimport { isInteger2 } from './enums';\n/**\n * Abstract base for every OMML model node.\n *\n * @public\n */\nvar MathElement = /** @class */ (function () {\n function MathElement() {\n /** When true, mutation is blocked (preserve-only degradation). */\n this._preserveOnly = false;\n }\n Object.defineProperty(MathElement.prototype, \"preserveOnly\", {\n /**\n * Whether this node is locked in preserve-only mode (mutations blocked; original OpenXML is re-emitted).\n *\n * @private\n * Framework/parser state used for round-trip fidelity and host dirty tracking.\n */\n get: function () {\n return this._preserveOnly;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathElement.prototype, \"preservedXml\", {\n /**\n * Captured original OpenXML tree when the node is preserve-only or cannot be fully represented.\n *\n * @private\n * Used by the serializer and hosts to round-trip unmodified structure.\n */\n get: function () {\n return this._preservedXml;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Registers an internal mutation callback for change tracking and document synchronization.\n *\n * @private\n * Hosts (for example docx `MathInline`) inject dirty tracking; not part of the authoring API.\n */\n MathElement.prototype.setMutationListener = function (listener) {\n this._onMutate = listener;\n };\n /**\n * Marks this node preserve-only and stores the original OpenXML for round-trip preservation.\n *\n * @private\n * Used by the OMML parser for structural degradation and by document hosts to bubble a\n * child-level preserve-only lock up to the equation root.\n */\n MathElement.prototype.markPreserveOnly = function (xml) {\n this._preserveOnly = true;\n this._preservedXml = xml;\n };\n /**\n * Attach preserved XML without locking mutation (UnknownMathElement).\n *\n * @private\n */\n MathElement.prototype.attachPreservedXml = function (xml) {\n this._preservedXml = xml;\n };\n /** Guard + notify after a successful mutation. */\n MathElement.prototype.notifyMutated = function () {\n if (this._preserveOnly) {\n throw new MathmlReadOnlyError();\n }\n this._onMutate == null ? void 0 : this._onMutate();\n };\n /** Throw if preserve-only before a mutation begins. */\n MathElement.prototype.assertMutable = function () {\n if (this._preserveOnly) {\n throw new MathmlReadOnlyError();\n }\n };\n return MathElement;\n}());\nexport { MathElement };\n/**\n * Math text leaf (`m:t`) — literal character content inside a math run.\n *\n * Source: ECMA-376-1 §22.1.2.116 `CT_Text` — UTF-8 passthrough, no substitution.\n *\n * @public\n */\nvar MathText = /** @class */ (function (_super) {\n __extends(MathText, _super);\n function MathText(value, xmlSpace) {\n if (value === void 0) { value = ''; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this text leaf (`t`).\n */\n _this.type = 't';\n _this._value = value;\n _this._xmlSpace = xmlSpace;\n return _this;\n }\n Object.defineProperty(MathText.prototype, \"value\", {\n /**\n * Raw text content of this math text element (full UTF-8, no substitution).\n */\n get: function () {\n return this._value;\n },\n set: function (next) {\n this.assertMutable();\n this._value = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathText.prototype, \"xmlSpace\", {\n /**\n * Optional `xml:space` on `m:t` (`default` | `preserve`), same policy as Word `w:t`.\n *\n * @private\n * Serialization attribute for whitespace fidelity; prefer setting text via {@link value}.\n */\n get: function () {\n return this._xmlSpace;\n },\n set: function (next) {\n this.assertMutable();\n this._xmlSpace = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathText;\n}(MathElement));\nexport { MathText };\n/**\n * Argument container that holds ordered math elements inside a larger structure.\n *\n * @public\n */\nvar MathArgument = /** @class */ (function (_super) {\n __extends(MathArgument, _super);\n function MathArgument(properties, item, ctrlPr) {\n if (properties === void 0) { properties = {}; }\n if (item === void 0) { item = []; }\n var _this = _super.call(this) || this;\n /**\n * Discriminator for this math argument container.\n *\n * @public\n */\n _this.type = 'arg';\n if (properties.argSz !== undefined && !isInteger2(properties.argSz)) {\n throw new MathmlValidationError(\"argSz must be an integer in \\u22122..2 (ST_Integer2), got \" + String(properties.argSz), 'arg.argPr.argSz', 'value-range');\n }\n _this._properties = Object.freeze(__assign({}, properties));\n _this._item = __spread(item);\n _this._ctrlPr = ctrlPr;\n return _this;\n }\n Object.defineProperty(MathArgument.prototype, \"properties\", {\n /**\n * Gets or sets argument properties such as script size.\n *\n * @throws MathmlValidationError when script size is outside the allowed integer range.\n *\n * @public\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n if (next.argSz !== undefined && !isInteger2(next.argSz)) {\n throw new MathmlValidationError(\"argSz must be an integer in \\u22122..2 (ST_Integer2), got \" + String(next.argSz), 'arg.argPr.argSz', 'value-range');\n }\n this._properties = Object.freeze(__assign({}, next));\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathArgument.prototype, \"item\", {\n /**\n * Gets or sets the ordered math elements inside this argument.\n *\n * @public\n */\n get: function () {\n return this._item;\n },\n set: function (next) {\n this.assertMutable();\n this._item = __spread(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathArgument.prototype, \"ctrlPr\", {\n /**\n * Opaque control properties (`m:ctrlPr`) carried on the argument, when present.\n *\n * @private\n * Wire-fidelity carrier for WML run properties; not part of the public authoring API.\n */\n get: function () {\n return this._ctrlPr;\n },\n /**\n * @private\n */\n set: function (next) {\n this.assertMutable();\n this._ctrlPr = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Appends one math element at the end of {@link MathArgument.item}.\n */\n MathArgument.prototype.appendItem = function (child) {\n this.assertMutable();\n this._item.push(child);\n this.notifyMutated();\n return child;\n };\n return MathArgument;\n}(MathElement));\nexport { MathArgument };\n/**\n * Escape hatch for unrecognized `m:*` elements.\n *\n * Source: mathml-spec §8.5 — re-serializes verbatim.\n *\n * @public\n */\nvar UnknownMathElement = /** @class */ (function (_super) {\n __extends(UnknownMathElement, _super);\n function UnknownMathElement(localName, xml) {\n var _this = _super.call(this) || this;\n _this.type = 'unknown';\n _this.localName = localName;\n _this.attachPreservedXml(xml);\n return _this;\n }\n return UnknownMathElement;\n}(MathElement));\nexport { UnknownMathElement };\n/**\n * Convenience: build MathArgument from a list of elements.\n *\n * @private\n */\nexport function mathArg() {\n var elements = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n elements[_i] = arguments[_i];\n }\n return new MathArgument({}, elements);\n}\n","/**\n * Math root containers: `m:oMathPara`, `m:oMath`.\n *\n * Source: ECMA-376-4 Annex A.8.1 `CT_OMathPara`, `CT_OMath`.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { MathElement } from './math-element';\nimport { MathmlValidationError } from '../errors';\n/**\n * Display-math paragraph (`m:oMathPara`) — a block of one or more office-math equations.\n *\n * Child sequence: `oMathParaPr?`, `oMath` (1..∞).\n *\n * @public\n */\nvar MathParagraph = /** @class */ (function (_super) {\n __extends(MathParagraph, _super);\n function MathParagraph(properties, equations) {\n if (properties === void 0) { properties = {}; }\n if (equations === void 0) { equations = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this root (`oMathPara`).\n */\n _this.type = 'oMathPara';\n _this._properties = Object.freeze(__assign({}, properties));\n _this._equations = __spread(equations);\n return _this;\n }\n Object.defineProperty(MathParagraph.prototype, \"properties\", {\n /**\n * Paragraph-level math configuration (`m:oMathParaPr`), such as justification (`m:jc`).\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = Object.freeze(__assign({}, next));\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathParagraph.prototype, \"equations\", {\n /**\n * Ordered office-math equations in this paragraph (`m:oMath`), each a {@link MathOMath}.\n * At least one equation is required on serialize.\n */\n get: function () {\n return this._equations;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces the ordered `m:oMath` equations in this paragraph.\n */\n MathParagraph.prototype.setEquations = function (next) {\n this.assertMutable();\n this._equations = __spread(next);\n this.notifyMutated();\n };\n /**\n * Appends one office-math equation (`m:oMath`) at the end of this paragraph.\n */\n MathParagraph.prototype.appendEquation = function (equation) {\n this.assertMutable();\n this._equations.push(equation);\n this.notifyMutated();\n };\n /**\n * Validates that this paragraph has at least one `m:oMath` before serialization.\n *\n * @private\n * Called by the OMML serializer; not part of the public authoring API.\n */\n MathParagraph.prototype.assertSerializable = function (path) {\n if (path === void 0) { path = 'oMathPara'; }\n if (this._equations.length < 1) {\n throw new MathmlValidationError('m:oMathPara requires at least one m:oMath (CT_OMathPara)', path, 'required-child');\n }\n };\n return MathParagraph;\n}(MathElement));\nexport { MathParagraph };\n/**\n * Inline office-math root (`m:oMath`) — one equation body of math elements.\n *\n * Child sequence: `EG_OMathElements` (0..∞).\n *\n * @public\n */\nvar MathOMath = /** @class */ (function (_super) {\n __extends(MathOMath, _super);\n function MathOMath(children) {\n if (children === void 0) { children = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this root (`oMath`).\n */\n _this.type = 'oMath';\n _this._children = __spread(children);\n return _this;\n }\n Object.defineProperty(MathOMath.prototype, \"children\", {\n /**\n * Ordered math children of this equation (`EG_OMathElements`).\n */\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces the ordered math children of this equation.\n */\n MathOMath.prototype.setChildren = function (next) {\n this.assertMutable();\n this._children = __spread(next);\n this.notifyMutated();\n };\n /**\n * Appends one math element at the end of this equation.\n */\n MathOMath.prototype.appendChild = function (child) {\n this.assertMutable();\n this._children.push(child);\n this.notifyMutated();\n };\n return MathOMath;\n}(MathElement));\nexport { MathOMath };\n","/**\n * Typed OMML control classes (EG_OMathMathElements).\n *\n * Source: ECMA-376-4 Annex A.8.1; mathml-spec §7 / §11.2.\n * Constructors take props bag + fixed-sequence children (no boolean traps).\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { MathmlValidationError } from '../errors';\nimport { MathArgument, MathElement, MathText } from './math-element';\n// ─── Helpers ─────────────────────────────────────────────────────────────────\nfunction freezeProps(props) {\n return Object.freeze(__assign({}, props));\n}\nfunction asArg(value) {\n return value instanceof MathArgument ? value : new MathArgument({}, value);\n}\nfunction requireArgs(path, count, args) {\n for (var i = 0; i < count; i++) {\n if (args[i] === undefined) {\n throw new MathmlValidationError(\"Missing required argument at position \" + String(i), path, 'required-child');\n }\n }\n}\n// ─── Controls ────────────────────────────────────────────────────────────────\n/**\n * Accent math structure — a base expression with a combining accent character.\n *\n * @public\n */\nvar MathAccent = /** @class */ (function (_super) {\n __extends(MathAccent, _super);\n function MathAccent(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Discriminator for this math control kind.\n *\n * @public\n */\n _this.type = 'acc';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathAccent.prototype, \"properties\", {\n /**\n * Gets or sets accent configuration such as the accent character.\n *\n * @public\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathAccent.prototype, \"base\", {\n /**\n * Gets or sets the base mathematical expression under the accent.\n *\n * @public\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathAccent;\n}(MathElement));\nexport { MathAccent };\n/**\n * Over/under bar structure (`m:bar`) — a base expression with a bar accent.\n *\n * Child sequence: `barPr?`, `e`.\n *\n * @public\n */\nvar MathBar = /** @class */ (function (_super) {\n __extends(MathBar, _super);\n function MathBar(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`bar`).\n */\n _this.type = 'bar';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathBar.prototype, \"properties\", {\n /**\n * Bar configuration (`m:barPr`), such as bar position (`pos`).\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathBar.prototype, \"base\", {\n /**\n * Base mathematical expression under the bar (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathBar;\n}(MathElement));\nexport { MathBar };\n/**\n * Layout box structure (`m:box`) — groups a base for operator emulation and breaks.\n *\n * Child sequence: `boxPr?`, `e`.\n *\n * @public\n */\nvar MathBox = /** @class */ (function (_super) {\n __extends(MathBox, _super);\n function MathBox(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`box`).\n */\n _this.type = 'box';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathBox.prototype, \"properties\", {\n /**\n * Box configuration (`m:boxPr`), such as operator emulation and break flags.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathBox.prototype, \"base\", {\n /**\n * Base mathematical expression inside the box (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathBox;\n}(MathElement));\nexport { MathBox };\n/**\n * Border box structure (`m:borderBox`) — a base expression with optional borders and strikes.\n *\n * Child sequence: `borderBoxPr?`, `e`.\n *\n * @public\n */\nvar MathBorderBox = /** @class */ (function (_super) {\n __extends(MathBorderBox, _super);\n function MathBorderBox(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`borderBox`).\n */\n _this.type = 'borderBox';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathBorderBox.prototype, \"properties\", {\n /**\n * Border-box configuration (`m:borderBoxPr`), such as hidden sides and strike flags.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathBorderBox.prototype, \"base\", {\n /**\n * Base mathematical expression inside the border box (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathBorderBox;\n}(MathElement));\nexport { MathBorderBox };\n/**\n * Delimiter structure (`m:d`) — one or more arguments between begin/end characters.\n *\n * Child sequence: `dPr?`, `e` (1..∞).\n *\n * @public\n */\nvar MathDelimiter = /** @class */ (function (_super) {\n __extends(MathDelimiter, _super);\n function MathDelimiter(properties, elements) {\n if (properties === void 0) { properties = {}; }\n if (elements === void 0) { elements = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`d`).\n */\n _this.type = 'd';\n _this._properties = freezeProps(properties);\n _this._elements = elements.map(function (e) { return asArg(e); });\n return _this;\n }\n Object.defineProperty(MathDelimiter.prototype, \"properties\", {\n /**\n * Delimiter configuration (`m:dPr`), such as begin/end characters and grow.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathDelimiter.prototype, \"elements\", {\n /**\n * Ordered delimiter arguments (`m:e`), each an {@link MathArgument}.\n */\n get: function () {\n return this._elements;\n },\n /**\n * Replaces the ordered delimiter arguments (`m:e`) in document order.\n */\n set: function (next) {\n this.assertMutable();\n this._elements = __spread(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Validates that this delimiter has at least one argument before serialization.\n *\n * @private\n * Called by the OMML serializer; not part of the public authoring API.\n */\n MathDelimiter.prototype.assertSerializable = function (path) {\n if (path === void 0) { path = 'd'; }\n if (this._elements.length < 1) {\n throw new MathmlValidationError('m:d requires at least one m:e (CT_D)', path, 'required-child');\n }\n };\n return MathDelimiter;\n}(MathElement));\nexport { MathDelimiter };\n/**\n * Equation array structure (`m:eqArr`) — stacked equation rows as arguments.\n *\n * Child sequence: `eqArrPr?`, `e` (1..∞).\n *\n * @public\n */\nvar MathEquationArray = /** @class */ (function (_super) {\n __extends(MathEquationArray, _super);\n function MathEquationArray(properties, elements) {\n if (properties === void 0) { properties = {}; }\n if (elements === void 0) { elements = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`eqArr`).\n */\n _this.type = 'eqArr';\n _this._properties = freezeProps(properties);\n _this._elements = elements.map(function (e) { return asArg(e); });\n return _this;\n }\n Object.defineProperty(MathEquationArray.prototype, \"properties\", {\n /**\n * Equation-array configuration (`m:eqArrPr`), such as base justification and distribution.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathEquationArray.prototype, \"elements\", {\n /**\n * Ordered equation-array rows (`m:e`), each an {@link MathArgument}.\n */\n get: function () {\n return this._elements;\n },\n /**\n * Replaces the ordered equation-array rows (`m:e`) in document order.\n */\n set: function (next) {\n this.assertMutable();\n this._elements = __spread(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Validates that this equation array has at least one row before serialization.\n *\n * @private\n * Called by the OMML serializer; not part of the public authoring API.\n */\n MathEquationArray.prototype.assertSerializable = function (path) {\n if (path === void 0) { path = 'eqArr'; }\n if (this._elements.length < 1) {\n throw new MathmlValidationError('m:eqArr requires at least one m:e (CT_EqArr)', path, 'required-child');\n }\n };\n return MathEquationArray;\n}(MathElement));\nexport { MathEquationArray };\n/**\n * Fraction math structure — numerator over denominator with optional fraction style.\n *\n * @public\n */\nvar MathFraction = /** @class */ (function (_super) {\n __extends(MathFraction, _super);\n function MathFraction(properties, numerator, denominator) {\n if (properties === void 0) { properties = {}; }\n if (numerator === void 0) { numerator = []; }\n if (denominator === void 0) { denominator = []; }\n var _this = _super.call(this) || this;\n /**\n * Discriminator for this math control kind.\n *\n * @public\n */\n _this.type = 'f';\n _this._properties = freezeProps(properties);\n _this._numerator = asArg(numerator);\n _this._denominator = asArg(denominator);\n return _this;\n }\n Object.defineProperty(MathFraction.prototype, \"properties\", {\n /**\n * Gets or sets fraction configuration such as bar, skewed, linear, or no-bar style.\n *\n * @public\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathFraction.prototype, \"numerator\", {\n /**\n * Gets or sets the numerator of the fraction.\n *\n * @public\n */\n get: function () {\n return this._numerator;\n },\n set: function (next) {\n this.assertMutable();\n this._numerator = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathFraction.prototype, \"denominator\", {\n /**\n * Gets or sets the denominator of the fraction.\n *\n * @public\n */\n get: function () {\n return this._denominator;\n },\n set: function (next) {\n this.assertMutable();\n this._denominator = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathFraction;\n}(MathElement));\nexport { MathFraction };\n/**\n * Function-apply structure (`m:func`) — function name applied to a base expression.\n *\n * Child sequence: `funcPr?`, `fName`, `e`.\n *\n * @public\n */\nvar MathFunction = /** @class */ (function (_super) {\n __extends(MathFunction, _super);\n function MathFunction(properties, name, base) {\n if (properties === void 0) { properties = {}; }\n if (name === void 0) { name = []; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`func`).\n */\n _this.type = 'func';\n _this._properties = freezeProps(properties);\n _this._name = asArg(name);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathFunction.prototype, \"properties\", {\n /**\n * Function-apply configuration (`m:funcPr`).\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathFunction.prototype, \"name\", {\n /**\n * Function name argument (`m:fName`), for example `sin` or `log`.\n */\n get: function () {\n return this._name;\n },\n set: function (next) {\n this.assertMutable();\n this._name = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathFunction.prototype, \"base\", {\n /**\n * Base mathematical expression the function applies to (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathFunction;\n}(MathElement));\nexport { MathFunction };\n/**\n * Group-character structure (`m:groupChr`) — a base with a grouping character above or below.\n *\n * Child sequence: `groupChrPr?`, `e`.\n *\n * @public\n */\nvar MathGroupCharacter = /** @class */ (function (_super) {\n __extends(MathGroupCharacter, _super);\n function MathGroupCharacter(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`groupChr`).\n */\n _this.type = 'groupChr';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathGroupCharacter.prototype, \"properties\", {\n /**\n * Group-character configuration (`m:groupChrPr`), such as character and position.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathGroupCharacter.prototype, \"base\", {\n /**\n * Base mathematical expression under the group character (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathGroupCharacter;\n}(MathElement));\nexport { MathGroupCharacter };\n/**\n * Lower-limit structure (`m:limLow`) — a base expression with a limit below it.\n *\n * Child sequence: `limLowPr?`, `e`, `lim`.\n *\n * @public\n */\nvar MathLimitLower = /** @class */ (function (_super) {\n __extends(MathLimitLower, _super);\n function MathLimitLower(properties, base, lim) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n if (lim === void 0) { lim = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`limLow`).\n */\n _this.type = 'limLow';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n _this._lim = asArg(lim);\n return _this;\n }\n Object.defineProperty(MathLimitLower.prototype, \"properties\", {\n /**\n * Lower-limit configuration (`m:limLowPr`).\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathLimitLower.prototype, \"base\", {\n /**\n * Base mathematical expression above the lower limit (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathLimitLower.prototype, \"lim\", {\n /**\n * Lower-limit argument drawn beneath the base (`m:lim`).\n */\n get: function () {\n return this._lim;\n },\n set: function (next) {\n this.assertMutable();\n this._lim = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathLimitLower;\n}(MathElement));\nexport { MathLimitLower };\n/**\n * Upper-limit structure (`m:limUpp`) — a base expression with a limit above it.\n *\n * Child sequence: `limUppPr?`, `e`, `lim`.\n *\n * @public\n */\nvar MathLimitUpper = /** @class */ (function (_super) {\n __extends(MathLimitUpper, _super);\n function MathLimitUpper(properties, base, lim) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n if (lim === void 0) { lim = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`limUpp`).\n */\n _this.type = 'limUpp';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n _this._lim = asArg(lim);\n return _this;\n }\n Object.defineProperty(MathLimitUpper.prototype, \"properties\", {\n /**\n * Upper-limit configuration (`m:limUppPr`).\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathLimitUpper.prototype, \"base\", {\n /**\n * Base mathematical expression below the upper limit (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathLimitUpper.prototype, \"lim\", {\n /**\n * Upper-limit argument drawn above the base (`m:lim`).\n */\n get: function () {\n return this._lim;\n },\n set: function (next) {\n this.assertMutable();\n this._lim = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathLimitUpper;\n}(MathElement));\nexport { MathLimitUpper };\n/**\n * Matrix row (`m:mr`) — one row of matrix cell arguments.\n *\n * Child sequence: `e` (1..∞).\n *\n * @public\n */\nvar MathMatrixRow = /** @class */ (function (_super) {\n __extends(MathMatrixRow, _super);\n function MathMatrixRow(elements) {\n if (elements === void 0) { elements = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`mr`).\n */\n _this.type = 'mr';\n _this._elements = elements.map(function (e) { return asArg(e); });\n return _this;\n }\n Object.defineProperty(MathMatrixRow.prototype, \"elements\", {\n /**\n * Ordered cell arguments in this matrix row (`m:e`), each an {@link MathArgument}.\n */\n get: function () {\n return this._elements;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces the ordered cell arguments (`m:e`) in this matrix row.\n */\n MathMatrixRow.prototype.setElements = function (next) {\n this.assertMutable();\n this._elements = __spread(next);\n this.notifyMutated();\n };\n /**\n * Validates that this matrix row has at least one cell before serialization.\n *\n * @private\n * Called by the OMML serializer; not part of the public authoring API.\n */\n MathMatrixRow.prototype.assertSerializable = function (path) {\n if (path === void 0) { path = 'mr'; }\n if (this._elements.length < 1) {\n throw new MathmlValidationError('m:mr requires at least one m:e (CT_MR)', path, 'required-child');\n }\n };\n return MathMatrixRow;\n}(MathElement));\nexport { MathMatrixRow };\n/**\n * Matrix structure (`m:m`) — a grid of matrix rows.\n *\n * Child sequence: `mPr?`, `mr` (1..∞).\n *\n * @public\n */\nvar MathMatrix = /** @class */ (function (_super) {\n __extends(MathMatrix, _super);\n function MathMatrix(properties, rows) {\n if (properties === void 0) { properties = {}; }\n if (rows === void 0) { rows = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`m`).\n */\n _this.type = 'm';\n _this._properties = freezeProps(properties);\n _this._rows = __spread(rows);\n return _this;\n }\n Object.defineProperty(MathMatrix.prototype, \"properties\", {\n /**\n * Matrix configuration (`m:mPr`), such as base justification and placeholder visibility.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathMatrix.prototype, \"rows\", {\n /**\n * Ordered matrix rows (`m:mr`), each a {@link MathMatrixRow}.\n */\n get: function () {\n return this._rows;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces the ordered matrix rows (`m:mr`) in document order.\n */\n MathMatrix.prototype.setRows = function (next) {\n this.assertMutable();\n this._rows = __spread(next);\n this.notifyMutated();\n };\n /**\n * Validates that this matrix has at least one row (and each row is valid) before serialization.\n *\n * @private\n * Called by the OMML serializer; not part of the public authoring API.\n */\n MathMatrix.prototype.assertSerializable = function (path) {\n if (path === void 0) { path = 'm'; }\n if (this._rows.length < 1) {\n throw new MathmlValidationError('m:m requires at least one m:mr (CT_M)', path, 'required-child');\n }\n this._rows.forEach(function (row, i) { return row.assertSerializable(path + \".mr[\" + String(i) + \"]\"); });\n };\n return MathMatrix;\n}(MathElement));\nexport { MathMatrix };\n/**\n * N-ary operator structure (`m:nary`) — integral, sum, product, and similar operators.\n *\n * Child sequence: `naryPr?`, `sub`, `sup`, `e`.\n *\n * @public\n */\nvar MathNaryOperator = /** @class */ (function (_super) {\n __extends(MathNaryOperator, _super);\n function MathNaryOperator(properties, sub, sup, base) {\n if (properties === void 0) { properties = {}; }\n if (sub === void 0) { sub = []; }\n if (sup === void 0) { sup = []; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`nary`).\n */\n _this.type = 'nary';\n _this._properties = freezeProps(properties);\n _this._sub = asArg(sub);\n _this._sup = asArg(sup);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathNaryOperator.prototype, \"properties\", {\n /**\n * N-ary operator configuration (`m:naryPr`), such as operator character, limit location, and hide flags.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathNaryOperator.prototype, \"subscript\", {\n /**\n * Lower (subscript) limit of the n-ary operator (`m:sub`).\n */\n get: function () {\n return this._sub;\n },\n set: function (next) {\n this.assertMutable();\n this._sub = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathNaryOperator.prototype, \"superscript\", {\n /**\n * Upper (superscript) limit of the n-ary operator (`m:sup`).\n */\n get: function () {\n return this._sup;\n },\n set: function (next) {\n this.assertMutable();\n this._sup = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathNaryOperator.prototype, \"base\", {\n /**\n * Base mathematical expression the n-ary operator applies to (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathNaryOperator;\n}(MathElement));\nexport { MathNaryOperator };\n/**\n * Phantom structure (`m:phant`) — layout spacing from content that may be hidden.\n *\n * Child sequence: `phantPr?`, `e`.\n *\n * @public\n */\nvar MathPhantom = /** @class */ (function (_super) {\n __extends(MathPhantom, _super);\n function MathPhantom(properties, base) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`phant`).\n */\n _this.type = 'phant';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathPhantom.prototype, \"properties\", {\n /**\n * Phantom configuration (`m:phantPr`), such as show and zero-width/ascender/descender flags.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathPhantom.prototype, \"base\", {\n /**\n * Base mathematical expression used for phantom layout (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathPhantom;\n}(MathElement));\nexport { MathPhantom };\n/**\n * Radical structure (`m:rad`) — square root or nth-root with optional degree.\n *\n * Child sequence: `radPr?`, `deg`, `e`.\n *\n * @public\n */\nvar MathRadical = /** @class */ (function (_super) {\n __extends(MathRadical, _super);\n function MathRadical(properties, deg, base) {\n if (properties === void 0) { properties = {}; }\n if (deg === void 0) { deg = []; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`rad`).\n */\n _this.type = 'rad';\n _this._properties = freezeProps(properties);\n _this._deg = asArg(deg);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathRadical.prototype, \"properties\", {\n /**\n * Radical configuration (`m:radPr`), such as whether the degree is hidden.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathRadical.prototype, \"deg\", {\n /**\n * Degree argument of the radical (`m:deg`), for example the index of an nth root.\n */\n get: function () {\n return this._deg;\n },\n set: function (next) {\n this.assertMutable();\n this._deg = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathRadical.prototype, \"base\", {\n /**\n * Radicand — the expression under the radical sign (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathRadical;\n}(MathElement));\nexport { MathRadical };\n/**\n * Pre-sub-superscript structure (`m:sPre`) — scripts placed before the base.\n *\n * Child sequence: `sPrePr?`, `sub`, `sup`, `e`.\n *\n * @public\n */\nvar MathPreSubSuperscript = /** @class */ (function (_super) {\n __extends(MathPreSubSuperscript, _super);\n function MathPreSubSuperscript(properties, sub, sup, base) {\n if (properties === void 0) { properties = {}; }\n if (sub === void 0) { sub = []; }\n if (sup === void 0) { sup = []; }\n if (base === void 0) { base = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`sPre`).\n */\n _this.type = 'sPre';\n _this._properties = freezeProps(properties);\n _this._sub = asArg(sub);\n _this._sup = asArg(sup);\n _this._base = asArg(base);\n return _this;\n }\n Object.defineProperty(MathPreSubSuperscript.prototype, \"properties\", {\n /**\n * Pre-script configuration (`m:sPrePr`), such as script alignment.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathPreSubSuperscript.prototype, \"sub\", {\n /**\n * Subscript argument placed before the base (`m:sub`).\n */\n get: function () {\n return this._sub;\n },\n set: function (next) {\n this.assertMutable();\n this._sub = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathPreSubSuperscript.prototype, \"sup\", {\n /**\n * Superscript argument placed before the base (`m:sup`).\n */\n get: function () {\n return this._sup;\n },\n set: function (next) {\n this.assertMutable();\n this._sup = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathPreSubSuperscript.prototype, \"base\", {\n /**\n * Base mathematical expression after the pre-scripts (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathPreSubSuperscript;\n}(MathElement));\nexport { MathPreSubSuperscript };\n/**\n * Subscript structure (`m:sSub`) — a base with a subscript.\n *\n * Child sequence: `sSubPr?`, `e`, `sub`.\n *\n * @public\n */\nvar MathSubscript = /** @class */ (function (_super) {\n __extends(MathSubscript, _super);\n function MathSubscript(properties, base, sub) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n if (sub === void 0) { sub = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`sSub`).\n */\n _this.type = 'sSub';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n _this._sub = asArg(sub);\n return _this;\n }\n Object.defineProperty(MathSubscript.prototype, \"properties\", {\n /**\n * Subscript configuration (`m:sSubPr`), such as script alignment.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSubscript.prototype, \"base\", {\n /**\n * Base mathematical expression carrying the subscript (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSubscript.prototype, \"subscript\", {\n /**\n * Subscript argument (`m:sub`).\n */\n get: function () {\n return this._sub;\n },\n set: function (next) {\n this.assertMutable();\n this._sub = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathSubscript;\n}(MathElement));\nexport { MathSubscript };\n/**\n * Sub-superscript structure (`m:sSubSup`) — a base with both subscript and superscript.\n *\n * Child sequence: `sSubSupPr?`, `e`, `sub`, `sup`.\n *\n * @public\n */\nvar MathSubSuperscript = /** @class */ (function (_super) {\n __extends(MathSubSuperscript, _super);\n function MathSubSuperscript(properties, base, sub, sup) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n if (sub === void 0) { sub = []; }\n if (sup === void 0) { sup = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`sSubSup`).\n */\n _this.type = 'sSubSup';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n _this._sub = asArg(sub);\n _this._sup = asArg(sup);\n return _this;\n }\n Object.defineProperty(MathSubSuperscript.prototype, \"properties\", {\n /**\n * Sub-superscript configuration (`m:sSubSupPr`), such as script alignment.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSubSuperscript.prototype, \"base\", {\n /**\n * Base mathematical expression carrying both scripts (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSubSuperscript.prototype, \"subscript\", {\n /**\n * Subscript argument (`m:sub`).\n */\n get: function () {\n return this._sub;\n },\n set: function (next) {\n this.assertMutable();\n this._sub = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSubSuperscript.prototype, \"superscript\", {\n /**\n * Superscript argument (`m:sup`).\n */\n get: function () {\n return this._sup;\n },\n set: function (next) {\n this.assertMutable();\n this._sup = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathSubSuperscript;\n}(MathElement));\nexport { MathSubSuperscript };\n/**\n * Superscript structure (`m:sSup`) — a base with a superscript.\n *\n * Child sequence: `sSupPr?`, `e`, `sup`.\n *\n * @public\n */\nvar MathSuperscript = /** @class */ (function (_super) {\n __extends(MathSuperscript, _super);\n function MathSuperscript(properties, base, sup) {\n if (properties === void 0) { properties = {}; }\n if (base === void 0) { base = []; }\n if (sup === void 0) { sup = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`sSup`).\n */\n _this.type = 'sSup';\n _this._properties = freezeProps(properties);\n _this._base = asArg(base);\n _this._sup = asArg(sup);\n return _this;\n }\n Object.defineProperty(MathSuperscript.prototype, \"properties\", {\n /**\n * Superscript configuration (`m:sSupPr`), such as script alignment.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSuperscript.prototype, \"base\", {\n /**\n * Base mathematical expression carrying the superscript (`m:e`).\n */\n get: function () {\n return this._base;\n },\n set: function (next) {\n this.assertMutable();\n this._base = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathSuperscript.prototype, \"superscript\", {\n /**\n * Superscript argument (`m:sup`).\n */\n get: function () {\n return this._sup;\n },\n set: function (next) {\n this.assertMutable();\n this._sup = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathSuperscript;\n}(MathElement));\nexport { MathSuperscript };\n/**\n * Math run (`m:r`) — text and optional opaque WML run content inside an equation.\n *\n * Child sequence: `rPr?`, optional `w:rPr`, then (`m:t` | WML run content)*.\n * The constructor accepts a string (single {@link MathText}) or a children list.\n *\n * @public\n */\nvar MathRun = /** @class */ (function (_super) {\n __extends(MathRun, _super);\n function MathRun(textOrChildren, properties, wRPr, opaqueChildren) {\n if (textOrChildren === void 0) { textOrChildren = []; }\n if (properties === void 0) { properties = {}; }\n if (opaqueChildren === void 0) { opaqueChildren = []; }\n var _this = _super.call(this) || this;\n /**\n * Math element type for this control (`r`).\n */\n _this.type = 'r';\n _this._properties = freezeProps(properties);\n _this._wRPr = wRPr;\n _this._opaqueChildren = __spread(opaqueChildren);\n if (typeof textOrChildren === 'string') {\n _this._children = [new MathText(textOrChildren)];\n }\n else {\n _this._children = __spread(textOrChildren);\n }\n return _this;\n }\n Object.defineProperty(MathRun.prototype, \"properties\", {\n /**\n * Math run configuration (`m:rPr`), such as literal/normal flags, script, and style.\n */\n get: function () {\n return this._properties;\n },\n set: function (next) {\n this.assertMutable();\n this._properties = freezeProps(next);\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathRun.prototype, \"wRPr\", {\n /**\n * Optional WordprocessingML run properties (`w:rPr`) nested under this math run.\n *\n * @private\n * Opaque WML carrier for round-trip; not part of the public MathML authoring API.\n */\n get: function () {\n return this._wRPr;\n },\n /**\n * @private\n *\n */\n set: function (next) {\n this.assertMutable();\n this._wRPr = next;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathRun.prototype, \"children\", {\n /**\n * Ordered math children of this run (typically {@link MathText} nodes).\n */\n get: function () {\n return this._children;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MathRun.prototype, \"opaqueChildren\", {\n /**\n * Opaque non-math WML run-content siblings preserved in order with math texts.\n *\n * @private\n * Used by parse/serialize for round-trip fidelity; not part of the public authoring API.\n */\n get: function () {\n return this._opaqueChildren;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces the ordered math children of this run.\n */\n MathRun.prototype.setChildren = function (next) {\n this.assertMutable();\n this._children = __spread(next);\n this.notifyMutated();\n };\n Object.defineProperty(MathRun.prototype, \"text\", {\n /**\n * Concatenated text of all {@link MathText} children (full UTF-8 passthrough).\n * Assigning a value replaces children with a single {@link MathText}.\n */\n get: function () {\n return this._children.filter(function (c) { return c.type === 't'; }).map(function (t) { return t.value; }).join('');\n },\n set: function (next) {\n this.assertMutable();\n this._children = [new MathText(next)];\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n return MathRun;\n}(MathElement));\nexport { MathRun };\n// Suppress unused helper warning while keeping for serializer validation hooks.\nvoid requireArgs;\n","/**\n * Local structural OpenXml element-tree contract for mathml parse/serialize.\n *\n * office-common has no shared `src/core/xml` yet (TASK-9002/9003). This\n * mirrors ej2-docx `src/core/xml/model.ts` so TASK-9011 can pass the same\n * tree shape across the boundary. Unify when core XML lands.\n *\n * These types are part of the public `@syncfusion/ej2-office-common/mathml` surface\n * (parse/serialize boundary). Keep them public under stripInternal builds —\n * never tag this module as internal.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\n/** Create an immutable element node. */\nexport function createElement(namespaceUri, localName, prefix, options) {\n return { kind: 'element',\n namespaceUri: namespaceUri,\n localName: localName,\n prefix: prefix,\n attributes: function () {\n var _nc = options == null ? void 0 : options.attributes;\n return _nc != null ? _nc : [];\n }(),\n namespaceDeclarations: function () {\n var _nc = options == null ? void 0 : options.namespaceDeclarations;\n return _nc != null ? _nc : [];\n }(),\n children: function () {\n var _nc = options == null ? void 0 : options.children;\n return _nc != null ? _nc : [];\n }()\n };\n}\n/** Create a text node. */\nexport function createText(value) {\n return {\n kind: 'text',\n value: value\n };\n}\n/** Filter element children only. */\nexport function childElements(element) {\n return element.children.filter(function (c) { return c.kind === 'element'; });\n}\n/** Read the first matching attribute value by local name (any namespace). */\nexport function attrValue(element, localName) {\n return function () {\n var _om = element.attributes.find(function (a) { return a.localName === localName; });\n return _om == null ? void 0 : _om.value;\n }();\n}\n/** Read attribute value restricted to a namespace URI. */\nexport function attrValueNs(element, namespaceUri, localName) {\n return function () {\n var _om = element.attributes.find(function (a) { return a.namespaceUri === namespaceUri && a.localName === localName; });\n return _om == null ? void 0 : _om.value;\n }();\n}\n/** Concatenate direct text-node children. */\nexport function textContent(element) {\n var e_1, _a;\n var out = '';\n try {\n for (var _b = __values(element.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind === 'text') {\n out += child.value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return out;\n}\n","/**\n * Tolerant OMML element-tree → typed Math* DOM parser.\n *\n * Source: mathml-spec §8; ECMA-376-4 Annex A.8.1.\n * Never throws on load. Unknown m:* → UnknownMathElement.\n * Malformed required structure → markPreserveOnly + optional diagnostic.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { MATH_NAMESPACE, WML_TRANSITIONAL_NAMESPACE, XML_NAMESPACE } from '../constants';\nimport { attrValue, attrValueNs, childElements, textContent } from '../openxml';\nimport { parseMathFractionType, parseMathJc, parseMathLimLoc, parseMathScript, parseMathShape, parseMathStyle, parseMathTopBot, parseOnOff, isInteger2 } from '../model/enums';\nimport { MathArgument, MathText, UnknownMathElement } from '../model/math-element';\nimport { MathOMath, MathParagraph } from '../model/roots';\nimport { MathAccent, MathBar, MathBorderBox, MathBox, MathDelimiter, MathEquationArray, MathFraction, MathFunction, MathGroupCharacter, MathLimitLower, MathLimitUpper, MathMatrix, MathMatrixRow, MathNaryOperator, MathPhantom, MathPreSubSuperscript, MathRadical, MathRun, MathSubscript, MathSubSuperscript, MathSuperscript } from '../model/controls';\nfunction isMathNs(el) {\n return el.namespaceUri === MATH_NAMESPACE;\n}\nfunction findChild(parent, localName) {\n return childElements(parent).find(function (c) { return isMathNs(c) && c.localName === localName; });\n}\nfunction findChildren(parent, localName) {\n return childElements(parent).filter(function (c) { return isMathNs(c) && c.localName === localName; });\n}\nfunction readVal(el) {\n if (!el) {\n return undefined;\n }\n return attrValue(el, 'val');\n}\nfunction readOnOffChild(pr, localName) {\n if (!pr) {\n return undefined;\n }\n var child = findChild(pr, localName);\n if (!child) {\n return undefined;\n }\n // Presence with no val → true (OOXML OnOff default when empty element present).\n var v = attrValue(child, 'val');\n if (v === undefined) {\n return true;\n }\n return parseOnOff(v);\n}\nfunction readStringChild(pr, localName) {\n if (!pr) {\n return undefined;\n }\n return readVal(findChild(pr, localName));\n}\nfunction parseCtrlPr(pr) {\n if (!pr) {\n return undefined;\n }\n return findChild(pr, 'ctrlPr');\n}\nfunction degrade(xml, path, message, options, fallback) {\n (function () {\n var _oc = options == null ? void 0 : options.onDiagnostic;\n return _oc == null ? void 0 : _oc({\n path: path,\n message: message,\n localName: xml.localName\n });\n })();\n fallback.markPreserveOnly(xml);\n return fallback;\n}\nfunction parseArgPr(argPr) {\n if (!argPr) {\n return {};\n }\n var argSzEl = findChild(argPr, 'argSz');\n var raw = readVal(argSzEl);\n if (raw === undefined) {\n return {};\n }\n var n = Number(raw);\n if (!Number.isFinite(n) || !isInteger2(n)) {\n return {};\n }\n return {\n argSz: n\n };\n}\n/**\n * Parse `CT_OMathArg` (`m:e`, `m:num`, `m:den`, `m:sub`, …).\n */\nfunction parseArgument(el, options) {\n var e_1, _a;\n if (!el) {\n return new MathArgument();\n }\n var argPr = findChild(el, 'argPr');\n var props = parseArgPr(argPr);\n var ctrlPr = findChild(el, 'ctrlPr');\n var children = [];\n try {\n for (var _b = __values(childElements(el)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!isMathNs(child)) {\n continue;\n }\n if (child.localName === 'argPr' || child.localName === 'ctrlPr') {\n continue;\n }\n children.push(parseOne(child, options));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return new MathArgument(props, children, ctrlPr);\n}\nfunction parseManyArgs(parent, localName, options) {\n return findChildren(parent, localName).map(function (c) { return parseArgument(c, options); });\n}\n// ─── Property bag parsers ────────────────────────────────────────────────────\n// Bind optionals to locals before spreads so exactOptionalPropertyTypes never\n// sees `T | undefined` under a present key.\nfunction parseAccentPr(pr) {\n var chr = readStringChild(pr, 'chr');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (chr !== undefined ? {\n chr: chr\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseBarPr(pr) {\n var posRaw = readStringChild(pr, 'pos');\n var pos = posRaw !== undefined ? parseMathTopBot(posRaw) : undefined;\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (pos !== undefined ? {\n pos: pos\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseBoxPr(pr) {\n var isOperatorEmulated = readOnOffChild(pr, 'opEmu');\n var isNoBreak = readOnOffChild(pr, 'noBreak');\n var isDifferential = readOnOffChild(pr, 'diff');\n var isAligned = readOnOffChild(pr, 'aln');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (isOperatorEmulated !== undefined ? {\n isOperatorEmulated: isOperatorEmulated\n } : {}), (isNoBreak !== undefined ? {\n isNoBreak: isNoBreak\n } : {}), (isDifferential !== undefined ? {\n isDifferential: isDifferential\n } : {}), (isAligned !== undefined ? {\n isAligned: isAligned\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\n/** OMML local name → public boolean property on `MathBorderBoxProperties`. */\nvar BORDER_BOX_ONOFF = [['hideTop', 'isTopHidden'], ['hideBot', 'isBottomHidden'], ['hideLeft', 'isLeftHidden'], ['hideRight', 'isRightHidden'], ['strikeH', 'hasHorizontalStrike'], ['strikeV', 'hasVerticalStrike'], ['strikeBLTR', 'hasBottomLeftToTopRightStrike'], ['strikeTLBR', 'hasTopLeftToBottomRightStrike']];\nfunction parseBorderBoxPr(pr) {\n var e_2, _a;\n var out = {};\n try {\n for (var BORDER_BOX_ONOFF_1 = __values(BORDER_BOX_ONOFF), BORDER_BOX_ONOFF_1_1 = BORDER_BOX_ONOFF_1.next(); !BORDER_BOX_ONOFF_1_1.done; BORDER_BOX_ONOFF_1_1 = BORDER_BOX_ONOFF_1.next()) {\n var _b = __read(BORDER_BOX_ONOFF_1_1.value, 2), xmlName = _b[0], apiName = _b[1];\n var v = readOnOffChild(pr, xmlName);\n if (v !== undefined) {\n out[apiName] = v;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (BORDER_BOX_ONOFF_1_1 && !BORDER_BOX_ONOFF_1_1.done && (_a = BORDER_BOX_ONOFF_1.return)) _a.call(BORDER_BOX_ONOFF_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var ctrl = parseCtrlPr(pr);\n if (ctrl !== undefined) {\n out.ctrlPr = ctrl;\n }\n return out;\n}\nfunction parseDelimiterPr(pr) {\n var begChr = readStringChild(pr, 'begChr');\n var sepChr = readStringChild(pr, 'sepChr');\n var endChr = readStringChild(pr, 'endChr');\n var canGrow = readOnOffChild(pr, 'grow');\n var shpRaw = readStringChild(pr, 'shp');\n var shp = shpRaw !== undefined ? parseMathShape(shpRaw) : undefined;\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (begChr !== undefined ? {\n begChr: begChr\n } : {}), (sepChr !== undefined ? {\n sepChr: sepChr\n } : {}), (endChr !== undefined ? {\n endChr: endChr\n } : {}), (canGrow !== undefined ? {\n canGrow: canGrow\n } : {}), (shp !== undefined ? {\n shp: shp\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseEqArrPr(pr) {\n var baseJc = readStringChild(pr, 'baseJc');\n var hasMaxDistance = readOnOffChild(pr, 'maxDist');\n var hasObjectDistance = readOnOffChild(pr, 'objDist');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (baseJc !== undefined ? {\n baseJc: baseJc\n } : {}), (hasMaxDistance !== undefined ? {\n hasMaxDistance: hasMaxDistance\n } : {}), (hasObjectDistance !== undefined ? {\n hasObjectDistance: hasObjectDistance\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseFractionPr(pr) {\n var typeRaw = readStringChild(pr, 'type');\n var type = typeRaw !== undefined ? parseMathFractionType(typeRaw) : undefined;\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (type !== undefined ? {\n type: type\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseFunctionPr(pr) {\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseGroupChrPr(pr) {\n var chr = readStringChild(pr, 'chr');\n var posRaw = readStringChild(pr, 'pos');\n var pos = posRaw !== undefined ? parseMathTopBot(posRaw) : undefined;\n var vertRaw = readStringChild(pr, 'vertJc');\n var vertJc = vertRaw !== undefined ? parseMathTopBot(vertRaw) : undefined;\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (chr !== undefined ? {\n chr: chr\n } : {}), (pos !== undefined ? {\n pos: pos\n } : {}), (vertJc !== undefined ? {\n vertJc: vertJc\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseLimitPr(pr) {\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseMatrixPr(pr) {\n var baseJc = readStringChild(pr, 'baseJc');\n var isPlaceholderHidden = readOnOffChild(pr, 'plcHide');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (baseJc !== undefined ? {\n baseJc: baseJc\n } : {}), (isPlaceholderHidden !== undefined ? {\n isPlaceholderHidden: isPlaceholderHidden\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseNaryPr(pr) {\n var chr = readStringChild(pr, 'chr');\n var limRaw = readStringChild(pr, 'limLoc');\n var limLoc = limRaw !== undefined ? parseMathLimLoc(limRaw) : undefined;\n var canGrow = readOnOffChild(pr, 'grow');\n var isSubscriptHidden = readOnOffChild(pr, 'subHide');\n var isSuperscriptHidden = readOnOffChild(pr, 'supHide');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (chr !== undefined ? {\n chr: chr\n } : {}), (limLoc !== undefined ? {\n limLoc: limLoc\n } : {}), (canGrow !== undefined ? {\n canGrow: canGrow\n } : {}), (isSubscriptHidden !== undefined ? {\n isSubscriptHidden: isSubscriptHidden\n } : {}), (isSuperscriptHidden !== undefined ? {\n isSuperscriptHidden: isSuperscriptHidden\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parsePhantPr(pr) {\n var isShown = readOnOffChild(pr, 'show');\n var isZeroWidth = readOnOffChild(pr, 'zeroWid');\n var isZeroAscender = readOnOffChild(pr, 'zeroAsc');\n var isZeroDescender = readOnOffChild(pr, 'zeroDesc');\n var isTransparent = readOnOffChild(pr, 'transp');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (isShown !== undefined ? {\n isShown: isShown\n } : {}), (isZeroWidth !== undefined ? {\n isZeroWidth: isZeroWidth\n } : {}), (isZeroAscender !== undefined ? {\n isZeroAscender: isZeroAscender\n } : {}), (isZeroDescender !== undefined ? {\n isZeroDescender: isZeroDescender\n } : {}), (isTransparent !== undefined ? {\n isTransparent: isTransparent\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseRadPr(pr) {\n var isDegreeHidden = readOnOffChild(pr, 'degHide');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (isDegreeHidden !== undefined ? {\n isDegreeHidden: isDegreeHidden\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseScriptPr(pr) {\n var isScriptAligned = readOnOffChild(pr, 'alnScr');\n var ctrlPr = parseCtrlPr(pr);\n return __assign({}, (isScriptAligned !== undefined ? {\n isScriptAligned: isScriptAligned\n } : {}), (ctrlPr !== undefined ? {\n ctrlPr: ctrlPr\n } : {}));\n}\nfunction parseRunPr(pr) {\n if (!pr) {\n return {};\n }\n var isLiteral = readOnOffChild(pr, 'lit');\n var isNormal = readOnOffChild(pr, 'nor');\n var scrRaw = readStringChild(pr, 'scr');\n var styRaw = readStringChild(pr, 'sty');\n var scr = scrRaw !== undefined ? parseMathScript(scrRaw) : undefined;\n var sty = styRaw !== undefined ? parseMathStyle(styRaw) : undefined;\n var isAligned = readOnOffChild(pr, 'aln');\n var brkRaw = readStringChild(pr, 'brk');\n var brkNum = brkRaw !== undefined ? Number(brkRaw) : undefined;\n var brk = brkNum !== undefined && Number.isFinite(brkNum) ? brkNum : undefined;\n return __assign({}, (isLiteral !== undefined ? {\n isLiteral: isLiteral\n } : {}), (isNormal !== undefined ? {\n isNormal: isNormal\n } : {}), (scr !== undefined ? {\n scr: scr\n } : {}), (sty !== undefined ? {\n sty: sty\n } : {}), (isAligned !== undefined ? {\n isAligned: isAligned\n } : {}), (brk !== undefined ? {\n brk: brk\n } : {}));\n}\n// ─── Element dispatch ────────────────────────────────────────────────────────\nfunction parseText(el) {\n var space = attrValueNs(el, XML_NAMESPACE, 'space');\n var xmlSpace = space === 'preserve' || space === 'default' ? space : undefined;\n return new MathText(textContent(el), xmlSpace);\n}\nfunction parseRun(el, options) {\n var e_3, _a;\n var rPr = findChild(el, 'rPr');\n var props = parseRunPr(rPr);\n var wRPr;\n var children = [];\n var opaque = [];\n try {\n for (var _b = __values(childElements(el)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (isMathNs(child) && child.localName === 'rPr') {\n continue;\n }\n if (child.namespaceUri === WML_TRANSITIONAL_NAMESPACE && child.localName === 'rPr') {\n wRPr = child;\n continue;\n }\n if (isMathNs(child) && child.localName === 't') {\n children.push(parseText(child));\n continue;\n }\n if (isMathNs(child)) {\n children.push(parseOne(child, options));\n continue;\n }\n // Non-math run content — preserve opaque.\n opaque.push(child);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return new MathRun(children, props, wRPr, opaque);\n}\nfunction parseMatrixRow(el, options) {\n return new MathMatrixRow(parseManyArgs(el, 'e', options));\n}\nfunction parseOne(el, options) {\n if (!isMathNs(el)) {\n return new UnknownMathElement(el.localName, el);\n }\n switch (el.localName) {\n case 'oMathPara':\n return parseOMathPara(el, options);\n case 'oMath':\n return parseOMath(el, options);\n case 't':\n return parseText(el);\n case 'r':\n return parseRun(el, options);\n case 'acc':\n {\n var pr = findChild(el, 'accPr');\n return new MathAccent(parseAccentPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'bar':\n {\n var pr = findChild(el, 'barPr');\n return new MathBar(parseBarPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'box':\n {\n var pr = findChild(el, 'boxPr');\n return new MathBox(parseBoxPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'borderBox':\n {\n var pr = findChild(el, 'borderBoxPr');\n return new MathBorderBox(parseBorderBoxPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'd':\n {\n var pr = findChild(el, 'dPr');\n var elements = parseManyArgs(el, 'e', options);\n if (elements.length < 1) {\n return degrade(el, 'd', 'm:d missing required m:e', options, new MathDelimiter(parseDelimiterPr(pr), []));\n }\n return new MathDelimiter(parseDelimiterPr(pr), elements);\n }\n case 'eqArr':\n {\n var pr = findChild(el, 'eqArrPr');\n var elements = parseManyArgs(el, 'e', options);\n if (elements.length < 1) {\n return degrade(el, 'eqArr', 'm:eqArr missing required m:e', options, new MathEquationArray(parseEqArrPr(pr), []));\n }\n return new MathEquationArray(parseEqArrPr(pr), elements);\n }\n case 'f':\n {\n var pr = findChild(el, 'fPr');\n var num = findChild(el, 'num');\n var den = findChild(el, 'den');\n if (!num || !den) {\n return degrade(el, 'f', 'm:f missing required m:num and/or m:den', options, new MathFraction(parseFractionPr(pr), parseArgument(num, options), parseArgument(den, options)));\n }\n return new MathFraction(parseFractionPr(pr), parseArgument(num, options), parseArgument(den, options));\n }\n case 'func':\n {\n var pr = findChild(el, 'funcPr');\n return new MathFunction(parseFunctionPr(pr), parseArgument(findChild(el, 'fName'), options), parseArgument(findChild(el, 'e'), options));\n }\n case 'groupChr':\n {\n var pr = findChild(el, 'groupChrPr');\n return new MathGroupCharacter(parseGroupChrPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'limLow':\n {\n var pr = findChild(el, 'limLowPr');\n return new MathLimitLower(parseLimitPr(pr), parseArgument(findChild(el, 'e'), options), parseArgument(findChild(el, 'lim'), options));\n }\n case 'limUpp':\n {\n var pr = findChild(el, 'limUppPr');\n return new MathLimitUpper(parseLimitPr(pr), parseArgument(findChild(el, 'e'), options), parseArgument(findChild(el, 'lim'), options));\n }\n case 'm':\n {\n var pr = findChild(el, 'mPr');\n var rows = findChildren(el, 'mr').map(function (r) { return parseMatrixRow(r, options); });\n if (rows.length < 1) {\n return degrade(el, 'm', 'm:m missing required m:mr', options, new MathMatrix(parseMatrixPr(pr), []));\n }\n return new MathMatrix(parseMatrixPr(pr), rows);\n }\n case 'mr':\n return parseMatrixRow(el, options);\n case 'nary':\n {\n var pr = findChild(el, 'naryPr');\n // CT_Nary order: naryPr?, sub, sup, e\n return new MathNaryOperator(parseNaryPr(pr), parseArgument(findChild(el, 'sub'), options), parseArgument(findChild(el, 'sup'), options), parseArgument(findChild(el, 'e'), options));\n }\n case 'phant':\n {\n var pr = findChild(el, 'phantPr');\n return new MathPhantom(parsePhantPr(pr), parseArgument(findChild(el, 'e'), options));\n }\n case 'rad':\n {\n var pr = findChild(el, 'radPr');\n return new MathRadical(parseRadPr(pr), parseArgument(findChild(el, 'deg'), options), parseArgument(findChild(el, 'e'), options));\n }\n case 'sPre':\n {\n var pr = findChild(el, 'sPrePr');\n // CT_SPre: sPrePr?, sub, sup, e\n return new MathPreSubSuperscript(parseScriptPr(pr), parseArgument(findChild(el, 'sub'), options), parseArgument(findChild(el, 'sup'), options), parseArgument(findChild(el, 'e'), options));\n }\n case 'sSub':\n {\n var pr = findChild(el, 'sSubPr');\n return new MathSubscript(parseScriptPr(pr), parseArgument(findChild(el, 'e'), options), parseArgument(findChild(el, 'sub'), options));\n }\n case 'sSubSup':\n {\n var pr = findChild(el, 'sSubSupPr');\n return new MathSubSuperscript(parseScriptPr(pr), parseArgument(findChild(el, 'e'), options), parseArgument(findChild(el, 'sub'), options), parseArgument(findChild(el, 'sup'), options));\n }\n case 'sSup':\n {\n var pr = findChild(el, 'sSupPr');\n return new MathSuperscript(parseScriptPr(pr), parseArgument(findChild(el, 'e'), options), parseArgument(findChild(el, 'sup'), options));\n }\n default:\n return new UnknownMathElement(el.localName, el);\n }\n}\nfunction parseOMath(el, options) {\n var e_4, _a;\n var children = [];\n try {\n for (var _b = __values(childElements(el)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!isMathNs(child)) {\n // Non-math under oMath — wrap unknown.\n children.push(new UnknownMathElement(child.localName, child));\n continue;\n }\n children.push(parseOne(child, options));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return new MathOMath(children);\n}\nfunction parseOMathPara(el, options) {\n var pr = findChild(el, 'oMathParaPr');\n var jcRaw = pr ? readStringChild(pr, 'jc') : undefined;\n var jc = jcRaw !== undefined ? parseMathJc(jcRaw) : undefined;\n var props = __assign({}, (jc !== undefined ? {\n jc: jc\n } : {}));\n var equations = findChildren(el, 'oMath').map(function (o) { return parseOMath(o, options); });\n if (equations.length < 1) {\n return degrade(el, 'oMathPara', 'm:oMathPara missing required m:oMath', options, new MathParagraph(props, []));\n }\n return new MathParagraph(props, equations);\n}\n/**\n * Parse a single OMML root element (`m:oMathPara`, `m:oMath`, or any EG_OMathElements member)\n * into a typed {@link MathElement}.\n *\n * Tolerant: never throws. Unknown / malformed nodes degrade rather than abort.\n *\n * @public\n */\nexport function parseMathElement(root, options) {\n return parseOne(root, options);\n}\n/**\n * Parse zero or more sibling math roots (e.g. multiple `m:oMath` under a paragraph host).\n *\n * @public\n */\nexport function parseMathElements(roots, options) {\n return roots.map(function (r) { return parseMathElement(r, options); });\n}\n","/**\n * Strict typed Math* DOM → OMML OpenXml element-tree serializer.\n *\n * Source: mathml-spec §9; ECMA-376-4 Annex A.8.1.\n * Throws {@link MathmlValidationError} on schema violations (typed path).\n * Preserve-only / unknown nodes re-emit `preservedXml` verbatim.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { MATH_NAMESPACE, MATH_PREFIX_FALLBACKS, XML_NAMESPACE } from '../constants';\nimport { MathmlValidationError } from '../errors';\nimport { createElement, createText } from '../openxml';\nimport { MATH_FTYPE_VALUES, MATH_JC_VALUES, MATH_LIMLOC_VALUES, MATH_SCRIPT_VALUES, MATH_SHP_VALUES, MATH_STYLE_VALUES, MATH_TOPBOT_VALUES, isInteger2, isInteger255 } from '../model/enums';\nimport { UnknownMathElement } from '../model/math-element';\nfunction resolvePrefix(options) {\n var e_1, _a;\n if ((options == null ? void 0 : options.prefix) !== undefined && options.prefix.length > 0) {\n return options.prefix;\n }\n var reserved = new Set(function () {\n var _nc = options == null ? void 0 : options.reservedPrefixes;\n return _nc != null ? _nc : [];\n }());\n try {\n for (var MATH_PREFIX_FALLBACKS_1 = __values(MATH_PREFIX_FALLBACKS), MATH_PREFIX_FALLBACKS_1_1 = MATH_PREFIX_FALLBACKS_1.next(); !MATH_PREFIX_FALLBACKS_1_1.done; MATH_PREFIX_FALLBACKS_1_1 = MATH_PREFIX_FALLBACKS_1.next()) {\n var candidate = MATH_PREFIX_FALLBACKS_1_1.value;\n if (!reserved.has(candidate)) {\n return candidate;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (MATH_PREFIX_FALLBACKS_1_1 && !MATH_PREFIX_FALLBACKS_1_1.done && (_a = MATH_PREFIX_FALLBACKS_1.return)) _a.call(MATH_PREFIX_FALLBACKS_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return 'm999';\n}\nfunction needsXmlSpacePreserve(value) {\n if (value.length === 0) {\n return true;\n }\n var first = value[0];\n var last = value[value.length - 1];\n return first === ' ' || first === '\\t' || first === '\\n' || first === '\\r' || last === ' ' || last === '\\t' || last === '\\n' || last === '\\r';\n}\nfunction emitOnOff(value) {\n // ECMA-376 OnOffType — prefer canonical '1' / '0'.\n return value ? '1' : '0';\n}\nfunction mEl(ctx, localName, children, attributes) {\n if (children === void 0) { children = []; }\n if (attributes === void 0) { attributes = []; }\n return createElement(MATH_NAMESPACE, localName, ctx.prefix, {\n attributes: attributes,\n children: children\n });\n}\nfunction valAttr(value) {\n return {\n namespaceUri: '',\n localName: 'val',\n prefix: '',\n value: value\n };\n}\nfunction valEl(ctx, localName, value) {\n return mEl(ctx, localName, [], [valAttr(value)]);\n}\nfunction onOffEl(ctx, localName, value) {\n return mEl(ctx, localName, [], [valAttr(emitOnOff(value))]);\n}\nfunction pushCtrlPr(children, ctrlPr) {\n if (ctrlPr !== undefined) {\n children.push(ctrlPr);\n }\n}\nfunction assertInUnion(value, allowed, path, label) {\n if (!(allowed.indexOf(value) !== -1)) {\n throw new MathmlValidationError(\"Illegal \" + label + \" token '\" + value + \"' (not in schema enum)\", path, 'enum-value');\n }\n}\n/**\n * Serialize a MathArgument as a named CT_OMathArg element\n * (`e` | `num` | `den` | `sub` | `sup` | `lim` | `deg` | `fName`).\n */\nfunction emitArg(ctx, localName, arg) {\n var childPath = ctx.path + \".\" + localName;\n var kids = [];\n var argSz = arg.properties.argSz;\n if (argSz !== undefined) {\n if (!isInteger2(argSz)) {\n throw new MathmlValidationError(\"argSz must be an integer in \\u22122..2 (ST_Integer2), got \" + String(argSz), childPath + \".argPr.argSz\", 'value-range');\n }\n kids.push(mEl(ctx, 'argPr', [valEl(ctx, 'argSz', String(argSz))]));\n }\n for (var i = 0; i < arg.item.length; i++) {\n var child = arg.item[i];\n if (child === undefined) {\n continue;\n }\n kids.push(serializeNode(child, {\n prefix: ctx.prefix,\n path: childPath + \"[\" + String(i) + \"]\"\n }));\n }\n pushCtrlPr(kids, arg.ctrlPr);\n return mEl(ctx, localName, kids);\n}\nfunction emitText(ctx, node) {\n var attrs = [];\n var space = node.xmlSpace;\n if (space === undefined && needsXmlSpacePreserve(node.value)) {\n space = 'preserve';\n }\n if (space !== undefined) {\n attrs.push({\n namespaceUri: XML_NAMESPACE,\n localName: 'space',\n prefix: 'xml',\n value: space\n });\n }\n return mEl(ctx, 't', [createText(node.value)], attrs);\n}\nfunction emitRunPr(ctx, run) {\n var p = run.properties;\n var kids = [];\n if (p.isLiteral !== undefined) {\n kids.push(onOffEl(ctx, 'lit', p.isLiteral));\n }\n if (p.isNormal !== undefined) {\n kids.push(onOffEl(ctx, 'nor', p.isNormal));\n }\n if (p.scr !== undefined) {\n assertInUnion(p.scr, MATH_SCRIPT_VALUES, ctx.path + \".rPr.scr\", 'ST_Script');\n kids.push(valEl(ctx, 'scr', p.scr));\n }\n if (p.sty !== undefined) {\n assertInUnion(p.sty, MATH_STYLE_VALUES, ctx.path + \".rPr.sty\", 'ST_Style');\n kids.push(valEl(ctx, 'sty', p.sty));\n }\n if (p.brk !== undefined) {\n if (!isInteger255(p.brk) && !(Number.isInteger(p.brk) && p.brk === 0)) {\n // ST_Integer255 is 1..255; allow 0 as present break index edge (Word).\n if (!Number.isInteger(p.brk) || p.brk < 0 || p.brk > 255) {\n throw new MathmlValidationError(\"brk must be an integer in 0..255, got \" + String(p.brk), ctx.path + \".rPr.brk\", 'value-range');\n }\n }\n kids.push(valEl(ctx, 'brk', String(p.brk)));\n }\n if (p.isAligned !== undefined) {\n kids.push(onOffEl(ctx, 'aln', p.isAligned));\n }\n if (kids.length === 0) {\n return undefined;\n }\n return mEl(ctx, 'rPr', kids);\n}\nfunction emitRun(ctx, run) {\n var e_2, _a;\n var kids = [];\n var rPr = emitRunPr(ctx, run);\n if (rPr !== undefined) {\n kids.push(rPr);\n }\n if (run.wRPr !== undefined) {\n kids.push(run.wRPr);\n }\n for (var i = 0; i < run.children.length; i++) {\n var child = run.children[i];\n if (child === undefined) {\n continue;\n }\n kids.push(serializeNode(child, {\n prefix: ctx.prefix,\n path: ctx.path + \".r[\" + String(i) + \"]\"\n }));\n }\n try {\n for (var _b = __values(run.opaqueChildren), _c = _b.next(); !_c.done; _c = _b.next()) {\n var opaque = _c.value;\n kids.push(opaque);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return mEl(ctx, 'r', kids);\n}\nfunction emitAccent(ctx, node) {\n var kids = [];\n var prKids = [];\n if (node.properties.chr !== undefined) {\n prKids.push(valEl(ctx, 'chr', node.properties.chr));\n }\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'accPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'acc', kids);\n}\nfunction emitBar(ctx, node) {\n var kids = [];\n var prKids = [];\n if (node.properties.pos !== undefined) {\n assertInUnion(node.properties.pos, MATH_TOPBOT_VALUES, ctx.path + \".barPr.pos\", 'ST_TopBot');\n prKids.push(valEl(ctx, 'pos', node.properties.pos));\n }\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'barPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'bar', kids);\n}\nfunction emitBox(ctx, node) {\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.isOperatorEmulated !== undefined) {\n prKids.push(onOffEl(ctx, 'opEmu', p.isOperatorEmulated));\n }\n if (p.isNoBreak !== undefined) {\n prKids.push(onOffEl(ctx, 'noBreak', p.isNoBreak));\n }\n if (p.isDifferential !== undefined) {\n prKids.push(onOffEl(ctx, 'diff', p.isDifferential));\n }\n if (p.isAligned !== undefined) {\n prKids.push(onOffEl(ctx, 'aln', p.isAligned));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'boxPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'box', kids);\n}\n/** Public API boolean → OMML OnOff local name for `m:borderBoxPr`. */\nvar BORDER_BOX_ONOFF_EMIT = [['isTopHidden', 'hideTop'], ['isBottomHidden', 'hideBot'], ['isLeftHidden', 'hideLeft'], ['isRightHidden', 'hideRight'], ['hasHorizontalStrike', 'strikeH'], ['hasVerticalStrike', 'strikeV'], ['hasBottomLeftToTopRightStrike', 'strikeBLTR'], ['hasTopLeftToBottomRightStrike', 'strikeTLBR']];\nfunction emitBorderBox(ctx, node) {\n var e_3, _a;\n var kids = [];\n var prKids = [];\n var p = node.properties;\n try {\n for (var BORDER_BOX_ONOFF_EMIT_1 = __values(BORDER_BOX_ONOFF_EMIT), BORDER_BOX_ONOFF_EMIT_1_1 = BORDER_BOX_ONOFF_EMIT_1.next(); !BORDER_BOX_ONOFF_EMIT_1_1.done; BORDER_BOX_ONOFF_EMIT_1_1 = BORDER_BOX_ONOFF_EMIT_1.next()) {\n var _b = __read(BORDER_BOX_ONOFF_EMIT_1_1.value, 2), apiName = _b[0], xmlName = _b[1];\n var v = p[apiName];\n if (typeof v === 'boolean') {\n prKids.push(onOffEl(ctx, xmlName, v));\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (BORDER_BOX_ONOFF_EMIT_1_1 && !BORDER_BOX_ONOFF_EMIT_1_1.done && (_a = BORDER_BOX_ONOFF_EMIT_1.return)) _a.call(BORDER_BOX_ONOFF_EMIT_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'borderBoxPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'borderBox', kids);\n}\nfunction emitDelimiter(ctx, node) {\n var e_4, _a;\n node.assertSerializable(ctx.path);\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.begChr !== undefined) {\n prKids.push(valEl(ctx, 'begChr', p.begChr));\n }\n if (p.sepChr !== undefined) {\n prKids.push(valEl(ctx, 'sepChr', p.sepChr));\n }\n if (p.endChr !== undefined) {\n prKids.push(valEl(ctx, 'endChr', p.endChr));\n }\n if (p.canGrow !== undefined) {\n prKids.push(onOffEl(ctx, 'grow', p.canGrow));\n }\n if (p.shp !== undefined) {\n assertInUnion(p.shp, MATH_SHP_VALUES, ctx.path + \".dPr.shp\", 'ST_Shp');\n prKids.push(valEl(ctx, 'shp', p.shp));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'dPr', prKids));\n }\n try {\n for (var _b = __values(node.elements), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n kids.push(emitArg(ctx, 'e', el));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return mEl(ctx, 'd', kids);\n}\nfunction emitEqArr(ctx, node) {\n var e_5, _a;\n node.assertSerializable(ctx.path);\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.baseJc !== undefined) {\n prKids.push(valEl(ctx, 'baseJc', p.baseJc));\n }\n if (p.hasMaxDistance !== undefined) {\n prKids.push(onOffEl(ctx, 'maxDist', p.hasMaxDistance));\n }\n if (p.hasObjectDistance !== undefined) {\n prKids.push(onOffEl(ctx, 'objDist', p.hasObjectDistance));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'eqArrPr', prKids));\n }\n try {\n for (var _b = __values(node.elements), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n kids.push(emitArg(ctx, 'e', el));\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return mEl(ctx, 'eqArr', kids);\n}\nfunction emitFraction(ctx, node) {\n var kids = [];\n var prKids = [];\n if (node.properties.type !== undefined) {\n assertInUnion(node.properties.type, MATH_FTYPE_VALUES, ctx.path + \".fPr.type\", 'ST_FType');\n prKids.push(valEl(ctx, 'type', node.properties.type));\n }\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'fPr', prKids));\n }\n // CT_F order: fPr?, num, den (OMML local names unchanged)\n kids.push(emitArg(ctx, 'num', node.numerator));\n kids.push(emitArg(ctx, 'den', node.denominator));\n return mEl(ctx, 'f', kids);\n}\nfunction emitFunction(ctx, node) {\n var kids = [];\n var prKids = [];\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'funcPr', prKids));\n }\n // CT_Func: funcPr?, fName, e (OMML local name fName unchanged)\n kids.push(emitArg(ctx, 'fName', node.name));\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'func', kids);\n}\nfunction emitGroupChr(ctx, node) {\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.chr !== undefined) {\n prKids.push(valEl(ctx, 'chr', p.chr));\n }\n if (p.pos !== undefined) {\n assertInUnion(p.pos, MATH_TOPBOT_VALUES, ctx.path + \".groupChrPr.pos\", 'ST_TopBot');\n prKids.push(valEl(ctx, 'pos', p.pos));\n }\n if (p.vertJc !== undefined) {\n assertInUnion(p.vertJc, MATH_TOPBOT_VALUES, ctx.path + \".groupChrPr.vertJc\", 'ST_TopBot');\n prKids.push(valEl(ctx, 'vertJc', p.vertJc));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'groupChrPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'groupChr', kids);\n}\nfunction emitLimLow(ctx, node) {\n var kids = [];\n var prKids = [];\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'limLowPr', prKids));\n }\n // CT_LimLow: limLowPr?, e, lim\n kids.push(emitArg(ctx, 'e', node.base));\n kids.push(emitArg(ctx, 'lim', node.lim));\n return mEl(ctx, 'limLow', kids);\n}\nfunction emitLimUpp(ctx, node) {\n var kids = [];\n var prKids = [];\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'limUppPr', prKids));\n }\n // CT_LimUpp: limUppPr?, e, lim\n kids.push(emitArg(ctx, 'e', node.base));\n kids.push(emitArg(ctx, 'lim', node.lim));\n return mEl(ctx, 'limUpp', kids);\n}\nfunction emitMatrixRow(ctx, node) {\n var e_6, _a;\n node.assertSerializable(ctx.path);\n var kids = [];\n try {\n for (var _b = __values(node.elements), _c = _b.next(); !_c.done; _c = _b.next()) {\n var el = _c.value;\n kids.push(emitArg(ctx, 'e', el));\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return mEl(ctx, 'mr', kids);\n}\nfunction emitMatrix(ctx, node) {\n node.assertSerializable(ctx.path);\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.baseJc !== undefined) {\n prKids.push(valEl(ctx, 'baseJc', p.baseJc));\n }\n if (p.isPlaceholderHidden !== undefined) {\n prKids.push(onOffEl(ctx, 'plcHide', p.isPlaceholderHidden));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'mPr', prKids));\n }\n for (var i = 0; i < node.rows.length; i++) {\n var row = node.rows[i];\n if (row === undefined) {\n continue;\n }\n kids.push(emitMatrixRow({\n prefix: ctx.prefix,\n path: ctx.path + \".mr[\" + String(i) + \"]\"\n }, row));\n }\n return mEl(ctx, 'm', kids);\n}\nfunction emitNary(ctx, node) {\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.chr !== undefined) {\n prKids.push(valEl(ctx, 'chr', p.chr));\n }\n if (p.limLoc !== undefined) {\n assertInUnion(p.limLoc, MATH_LIMLOC_VALUES, ctx.path + \".naryPr.limLoc\", 'ST_LimLoc');\n prKids.push(valEl(ctx, 'limLoc', p.limLoc));\n }\n if (p.canGrow !== undefined) {\n prKids.push(onOffEl(ctx, 'grow', p.canGrow));\n }\n if (p.isSubscriptHidden !== undefined) {\n prKids.push(onOffEl(ctx, 'subHide', p.isSubscriptHidden));\n }\n if (p.isSuperscriptHidden !== undefined) {\n prKids.push(onOffEl(ctx, 'supHide', p.isSuperscriptHidden));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'naryPr', prKids));\n }\n // CT_Nary order: naryPr?, sub, sup, e\n kids.push(emitArg(ctx, 'sub', node.subscript));\n kids.push(emitArg(ctx, 'sup', node.superscript));\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'nary', kids);\n}\nfunction emitPhant(ctx, node) {\n var kids = [];\n var prKids = [];\n var p = node.properties;\n if (p.isShown !== undefined) {\n prKids.push(onOffEl(ctx, 'show', p.isShown));\n }\n if (p.isZeroWidth !== undefined) {\n prKids.push(onOffEl(ctx, 'zeroWid', p.isZeroWidth));\n }\n if (p.isZeroAscender !== undefined) {\n prKids.push(onOffEl(ctx, 'zeroAsc', p.isZeroAscender));\n }\n if (p.isZeroDescender !== undefined) {\n prKids.push(onOffEl(ctx, 'zeroDesc', p.isZeroDescender));\n }\n if (p.isTransparent !== undefined) {\n prKids.push(onOffEl(ctx, 'transp', p.isTransparent));\n }\n pushCtrlPr(prKids, p.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'phantPr', prKids));\n }\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'phant', kids);\n}\nfunction emitRad(ctx, node) {\n var kids = [];\n var prKids = [];\n if (node.properties.isDegreeHidden !== undefined) {\n prKids.push(onOffEl(ctx, 'degHide', node.properties.isDegreeHidden));\n }\n pushCtrlPr(prKids, node.properties.ctrlPr);\n if (prKids.length > 0) {\n kids.push(mEl(ctx, 'radPr', prKids));\n }\n // CT_Rad: radPr?, deg, e\n kids.push(emitArg(ctx, 'deg', node.deg));\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'rad', kids);\n}\nfunction emitScriptPr(ctx, prName, isScriptAligned, ctrlPr) {\n var prKids = [];\n if (isScriptAligned !== undefined) {\n prKids.push(onOffEl(ctx, 'alnScr', isScriptAligned));\n }\n pushCtrlPr(prKids, ctrlPr);\n if (prKids.length === 0) {\n return undefined;\n }\n return mEl(ctx, prName, prKids);\n}\nfunction emitSPre(ctx, node) {\n var kids = [];\n var pr = emitScriptPr(ctx, 'sPrePr', node.properties.isScriptAligned, node.properties.ctrlPr);\n if (pr !== undefined) {\n kids.push(pr);\n }\n // CT_SPre: sPrePr?, sub, sup, e\n kids.push(emitArg(ctx, 'sub', node.sub));\n kids.push(emitArg(ctx, 'sup', node.sup));\n kids.push(emitArg(ctx, 'e', node.base));\n return mEl(ctx, 'sPre', kids);\n}\nfunction emitSSub(ctx, node) {\n var kids = [];\n var pr = emitScriptPr(ctx, 'sSubPr', node.properties.isScriptAligned, node.properties.ctrlPr);\n if (pr !== undefined) {\n kids.push(pr);\n }\n // CT_SSub: sSubPr?, e, sub\n kids.push(emitArg(ctx, 'e', node.base));\n kids.push(emitArg(ctx, 'sub', node.subscript));\n return mEl(ctx, 'sSub', kids);\n}\nfunction emitSSubSup(ctx, node) {\n var kids = [];\n var pr = emitScriptPr(ctx, 'sSubSupPr', node.properties.isScriptAligned, node.properties.ctrlPr);\n if (pr !== undefined) {\n kids.push(pr);\n }\n // CT_SSubSup: sSubSupPr?, e, sub, sup\n kids.push(emitArg(ctx, 'e', node.base));\n kids.push(emitArg(ctx, 'sub', node.subscript));\n kids.push(emitArg(ctx, 'sup', node.superscript));\n return mEl(ctx, 'sSubSup', kids);\n}\nfunction emitSSup(ctx, node) {\n var kids = [];\n var pr = emitScriptPr(ctx, 'sSupPr', node.properties.isScriptAligned, node.properties.ctrlPr);\n if (pr !== undefined) {\n kids.push(pr);\n }\n // CT_SSup: sSupPr?, e, sup\n kids.push(emitArg(ctx, 'e', node.base));\n kids.push(emitArg(ctx, 'sup', node.superscript));\n return mEl(ctx, 'sSup', kids);\n}\nfunction emitOMath(ctx, node) {\n var kids = [];\n for (var i = 0; i < node.children.length; i++) {\n var child = node.children[i];\n if (child === undefined) {\n continue;\n }\n kids.push(serializeNode(child, {\n prefix: ctx.prefix,\n path: ctx.path + \"[\" + String(i) + \"]\"\n }));\n }\n return mEl(ctx, 'oMath', kids);\n}\nfunction emitOMathPara(ctx, node) {\n node.assertSerializable(ctx.path);\n var kids = [];\n if (node.properties.jc !== undefined) {\n assertInUnion(node.properties.jc, MATH_JC_VALUES, ctx.path + \".oMathParaPr.jc\", 'ST_Jc');\n kids.push(mEl(ctx, 'oMathParaPr', [valEl(ctx, 'jc', node.properties.jc)]));\n }\n for (var i = 0; i < node.equations.length; i++) {\n var eq = node.equations[i];\n if (eq === undefined) {\n continue;\n }\n kids.push(emitOMath({\n prefix: ctx.prefix,\n path: ctx.path + \".oMath[\" + String(i) + \"]\"\n }, eq));\n }\n return mEl(ctx, 'oMathPara', kids);\n}\nfunction serializeNode(node, ctx) {\n // Preserve-only degradation / unknown: re-emit captured XML verbatim.\n if (node.preserveOnly) {\n if (node.preservedXml === undefined) {\n throw new MathmlValidationError('preserve-only node missing preservedXml', ctx.path, 'required-child');\n }\n return node.preservedXml;\n }\n if (node instanceof UnknownMathElement) {\n if (node.preservedXml === undefined) {\n throw new MathmlValidationError('unknown math node missing preservedXml', ctx.path, 'required-child');\n }\n return node.preservedXml;\n }\n switch (node.type) {\n case 'oMathPara':\n return emitOMathPara(ctx, node);\n case 'oMath':\n return emitOMath(ctx, node);\n case 't':\n return emitText(ctx, node);\n case 'r':\n return emitRun(ctx, node);\n case 'acc':\n return emitAccent(ctx, node);\n case 'bar':\n return emitBar(ctx, node);\n case 'box':\n return emitBox(ctx, node);\n case 'borderBox':\n return emitBorderBox(ctx, node);\n case 'd':\n return emitDelimiter(ctx, node);\n case 'eqArr':\n return emitEqArr(ctx, node);\n case 'f':\n return emitFraction(ctx, node);\n case 'func':\n return emitFunction(ctx, node);\n case 'groupChr':\n return emitGroupChr(ctx, node);\n case 'limLow':\n return emitLimLow(ctx, node);\n case 'limUpp':\n return emitLimUpp(ctx, node);\n case 'm':\n return emitMatrix(ctx, node);\n case 'mr':\n return emitMatrixRow(ctx, node);\n case 'nary':\n return emitNary(ctx, node);\n case 'phant':\n return emitPhant(ctx, node);\n case 'rad':\n return emitRad(ctx, node);\n case 'sPre':\n return emitSPre(ctx, node);\n case 'sSub':\n return emitSSub(ctx, node);\n case 'sSubSup':\n return emitSSubSup(ctx, node);\n case 'sSup':\n return emitSSup(ctx, node);\n case 'arg':\n // Arguments are only emitted via emitArg with a schema local name.\n throw new MathmlValidationError('MathArgument cannot be serialized as a root; use a named CT_OMathArg slot', ctx.path, 'child-order');\n case 'unknown':\n // Handled above via instanceof; keep exhaustive.\n if (node.preservedXml !== undefined) {\n return node.preservedXml;\n }\n throw new MathmlValidationError('unknown math node missing preservedXml', ctx.path, 'required-child');\n default:\n {\n var _exhaustive = node.type;\n throw new MathmlValidationError(\"Unhandled math kind: \" + String(_exhaustive), ctx.path, 'required-child');\n }\n }\n}\n/**\n * Serialize a typed math node to an OpenXml element tree.\n *\n * Source: mathml-spec §9 — strict schema order; preserve-only re-emits XML.\n *\n * @public\n */\nexport function mathElementToOpenXml(node, options) {\n var prefix = resolvePrefix(options);\n return serializeNode(node, {\n prefix: prefix,\n path: node.type\n });\n}\n","/**\n * Deep clone and semantic equality for typed Math* DOM.\n *\n * Source: mathml-spec §4b / §10b; TASK-9010 §6 —\n * clone re-invokes constructors; preserved XML never travels with the clone\n * (UnknownMathElement keeps an internal content channel via constructor XML).\n * mathEqual compares shape, text, measures, enumerations (ignores listener).\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { MathArgument, MathText, UnknownMathElement, } from './model/math-element';\nimport { MathOMath, MathParagraph } from './model/roots';\nimport { MathAccent, MathBar, MathBorderBox, MathBox, MathDelimiter, MathEquationArray, MathFraction, MathFunction, MathGroupCharacter, MathLimitLower, MathLimitUpper, MathMatrix, MathMatrixRow, MathNaryOperator, MathPhantom, MathPreSubSuperscript, MathRadical, MathRun, MathSubscript, MathSubSuperscript, MathSuperscript, } from './model/controls';\n/** Deep-clone an OpenXml element tree (immutable structural copy). */\nfunction cloneOpenXmlElement(el) {\n return { kind: 'element',\n namespaceUri: el.namespaceUri,\n localName: el.localName,\n prefix: el.prefix,\n attributes: el.attributes.map(function (a) { return ({\n namespaceUri: a.namespaceUri,\n localName: a.localName,\n prefix: a.prefix,\n value: a.value,\n }); }),\n namespaceDeclarations: el.namespaceDeclarations.map(function (n) { return ({\n prefix: n.prefix,\n namespaceUri: n.namespaceUri,\n }); }),\n children: el.children.map(cloneOpenXmlChild),\n };\n}\nfunction cloneOpenXmlChild(child) {\n if (child.kind === 'text') {\n var t = { kind: 'text', value: child.value };\n return t;\n }\n return cloneOpenXmlElement(child);\n}\nfunction cloneCtrlPr(ctrlPr) {\n return ctrlPr === undefined ? undefined : cloneOpenXmlElement(ctrlPr);\n}\n/** Clone property bags that may carry opaque ctrlPr OpenXml. */\nfunction cloneAccentProps(p) {\n return __assign({}, (p.chr !== undefined ? { chr: p.chr } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneBarProps(p) {\n return __assign({}, (p.pos !== undefined ? { pos: p.pos } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneBoxProps(p) {\n return __assign({}, (p.isOperatorEmulated !== undefined ? { isOperatorEmulated: p.isOperatorEmulated } : {}), (p.isNoBreak !== undefined ? { isNoBreak: p.isNoBreak } : {}), (p.isDifferential !== undefined ? { isDifferential: p.isDifferential } : {}), (p.isAligned !== undefined ? { isAligned: p.isAligned } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneBorderBoxProps(p) {\n return __assign({}, (p.isTopHidden !== undefined ? { isTopHidden: p.isTopHidden } : {}), (p.isBottomHidden !== undefined ? { isBottomHidden: p.isBottomHidden } : {}), (p.isLeftHidden !== undefined ? { isLeftHidden: p.isLeftHidden } : {}), (p.isRightHidden !== undefined ? { isRightHidden: p.isRightHidden } : {}), (p.hasHorizontalStrike !== undefined ? { hasHorizontalStrike: p.hasHorizontalStrike } : {}), (p.hasVerticalStrike !== undefined ? { hasVerticalStrike: p.hasVerticalStrike } : {}), (p.hasBottomLeftToTopRightStrike !== undefined\n ? { hasBottomLeftToTopRightStrike: p.hasBottomLeftToTopRightStrike }\n : {}), (p.hasTopLeftToBottomRightStrike !== undefined\n ? { hasTopLeftToBottomRightStrike: p.hasTopLeftToBottomRightStrike }\n : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneDelimiterProps(p) {\n return __assign({}, (p.begChr !== undefined ? { begChr: p.begChr } : {}), (p.sepChr !== undefined ? { sepChr: p.sepChr } : {}), (p.endChr !== undefined ? { endChr: p.endChr } : {}), (p.canGrow !== undefined ? { canGrow: p.canGrow } : {}), (p.shp !== undefined ? { shp: p.shp } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneEqArrProps(p) {\n return __assign({}, (p.baseJc !== undefined ? { baseJc: p.baseJc } : {}), (p.hasMaxDistance !== undefined ? { hasMaxDistance: p.hasMaxDistance } : {}), (p.hasObjectDistance !== undefined ? { hasObjectDistance: p.hasObjectDistance } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneFractionProps(p) {\n return __assign({}, (p.type !== undefined ? { type: p.type } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneFunctionProps(p) {\n return __assign({}, (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneGroupChrProps(p) {\n return __assign({}, (p.chr !== undefined ? { chr: p.chr } : {}), (p.pos !== undefined ? { pos: p.pos } : {}), (p.vertJc !== undefined ? { vertJc: p.vertJc } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneLimitProps(p) {\n return __assign({}, (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneMatrixProps(p) {\n return __assign({}, (p.baseJc !== undefined ? { baseJc: p.baseJc } : {}), (p.isPlaceholderHidden !== undefined ? { isPlaceholderHidden: p.isPlaceholderHidden } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneNaryProps(p) {\n return __assign({}, (p.chr !== undefined ? { chr: p.chr } : {}), (p.limLoc !== undefined ? { limLoc: p.limLoc } : {}), (p.canGrow !== undefined ? { canGrow: p.canGrow } : {}), (p.isSubscriptHidden !== undefined ? { isSubscriptHidden: p.isSubscriptHidden } : {}), (p.isSuperscriptHidden !== undefined ? { isSuperscriptHidden: p.isSuperscriptHidden } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction clonePhantomProps(p) {\n return __assign({}, (p.isShown !== undefined ? { isShown: p.isShown } : {}), (p.isZeroWidth !== undefined ? { isZeroWidth: p.isZeroWidth } : {}), (p.isZeroAscender !== undefined ? { isZeroAscender: p.isZeroAscender } : {}), (p.isZeroDescender !== undefined ? { isZeroDescender: p.isZeroDescender } : {}), (p.isTransparent !== undefined ? { isTransparent: p.isTransparent } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneRadicalProps(p) {\n return __assign({}, (p.isDegreeHidden !== undefined ? { isDegreeHidden: p.isDegreeHidden } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneScriptProps(p) {\n return __assign({}, (p.isScriptAligned !== undefined ? { isScriptAligned: p.isScriptAligned } : {}), (p.ctrlPr !== undefined ? { ctrlPr: cloneCtrlPr(p.ctrlPr) } : {}));\n}\nfunction cloneRunProps(p) {\n return __assign({}, (p.isLiteral !== undefined ? { isLiteral: p.isLiteral } : {}), (p.isNormal !== undefined ? { isNormal: p.isNormal } : {}), (p.scr !== undefined ? { scr: p.scr } : {}), (p.sty !== undefined ? { sty: p.sty } : {}), (p.isAligned !== undefined ? { isAligned: p.isAligned } : {}), (p.brk !== undefined ? { brk: p.brk } : {}));\n}\nfunction cloneArgProps(p) {\n return __assign({}, (p.argSz !== undefined ? { argSz: p.argSz } : {}));\n}\nfunction cloneParaProps(p) {\n return __assign({}, (p.jc !== undefined ? { jc: p.jc } : {}));\n}\n/**\n * Deep-clone a math element via constructor re-invocation.\n * Preserved XML and preserve-only lock do **not** travel with the clone\n * (task §6 / spec §10b). UnknownMathElement reconstructs from a deep-cloned\n * OpenXml content channel.\n *\n * @private\n */\nexport function cloneMathElement(node) {\n switch (node.type) {\n case 't': {\n var t = node;\n return new MathText(t.value, t.xmlSpace);\n }\n case 'arg': {\n var a = node;\n return new MathArgument(cloneArgProps(a.properties), a.item.map(cloneMathElement), cloneCtrlPr(a.ctrlPr));\n }\n case 'oMathPara': {\n var p = node;\n return new MathParagraph(cloneParaProps(p.properties), p.equations.map(function (eq) { return cloneMathElement(eq); }));\n }\n case 'oMath': {\n var o = node;\n return new MathOMath(o.children.map(cloneMathElement));\n }\n case 'unknown': {\n var u = node;\n // Internal content channel only — deep-clone OpenXml, no preserveOnly lock.\n var xml = u.preservedXml;\n if (xml === undefined) {\n // Fallback empty unknown shell (should not occur for parser-built nodes).\n return new UnknownMathElement(u.localName, { kind: 'element',\n namespaceUri: '',\n localName: u.localName,\n prefix: '',\n attributes: [],\n namespaceDeclarations: [],\n children: [],\n });\n }\n return new UnknownMathElement(u.localName, cloneOpenXmlElement(xml));\n }\n case 'r': {\n var r = node;\n return new MathRun(r.children.map(cloneMathElement), cloneRunProps(r.properties), r.wRPr === undefined ? undefined : cloneOpenXmlElement(r.wRPr), r.opaqueChildren.map(cloneOpenXmlElement));\n }\n case 'acc': {\n var n = node;\n return new MathAccent(cloneAccentProps(n.properties), cloneMathElement(n.base));\n }\n case 'bar': {\n var n = node;\n return new MathBar(cloneBarProps(n.properties), cloneMathElement(n.base));\n }\n case 'box': {\n var n = node;\n return new MathBox(cloneBoxProps(n.properties), cloneMathElement(n.base));\n }\n case 'borderBox': {\n var n = node;\n return new MathBorderBox(cloneBorderBoxProps(n.properties), cloneMathElement(n.base));\n }\n case 'd': {\n var n = node;\n return new MathDelimiter(cloneDelimiterProps(n.properties), n.elements.map(function (e) { return cloneMathElement(e); }));\n }\n case 'eqArr': {\n var n = node;\n return new MathEquationArray(cloneEqArrProps(n.properties), n.elements.map(function (e) { return cloneMathElement(e); }));\n }\n case 'f': {\n var n = node;\n return new MathFraction(cloneFractionProps(n.properties), cloneMathElement(n.numerator), cloneMathElement(n.denominator));\n }\n case 'func': {\n var n = node;\n return new MathFunction(cloneFunctionProps(n.properties), cloneMathElement(n.name), cloneMathElement(n.base));\n }\n case 'groupChr': {\n var n = node;\n return new MathGroupCharacter(cloneGroupChrProps(n.properties), cloneMathElement(n.base));\n }\n case 'limLow': {\n var n = node;\n return new MathLimitLower(cloneLimitProps(n.properties), cloneMathElement(n.base), cloneMathElement(n.lim));\n }\n case 'limUpp': {\n var n = node;\n return new MathLimitUpper(cloneLimitProps(n.properties), cloneMathElement(n.base), cloneMathElement(n.lim));\n }\n case 'm': {\n var n = node;\n return new MathMatrix(cloneMatrixProps(n.properties), n.rows.map(function (row) { return cloneMathElement(row); }));\n }\n case 'mr': {\n var n = node;\n return new MathMatrixRow(n.elements.map(function (e) { return cloneMathElement(e); }));\n }\n case 'nary': {\n var n = node;\n return new MathNaryOperator(cloneNaryProps(n.properties), cloneMathElement(n.subscript), cloneMathElement(n.superscript), cloneMathElement(n.base));\n }\n case 'phant': {\n var n = node;\n return new MathPhantom(clonePhantomProps(n.properties), cloneMathElement(n.base));\n }\n case 'rad': {\n var n = node;\n return new MathRadical(cloneRadicalProps(n.properties), cloneMathElement(n.deg), cloneMathElement(n.base));\n }\n case 'sPre': {\n var n = node;\n return new MathPreSubSuperscript(cloneScriptProps(n.properties), cloneMathElement(n.sub), cloneMathElement(n.sup), cloneMathElement(n.base));\n }\n case 'sSub': {\n var n = node;\n return new MathSubscript(cloneScriptProps(n.properties), cloneMathElement(n.base), cloneMathElement(n.subscript));\n }\n case 'sSubSup': {\n var n = node;\n return new MathSubSuperscript(cloneScriptProps(n.properties), cloneMathElement(n.base), cloneMathElement(n.subscript), cloneMathElement(n.superscript));\n }\n case 'sSup': {\n var n = node;\n return new MathSuperscript(cloneScriptProps(n.properties), cloneMathElement(n.base), cloneMathElement(n.superscript));\n }\n default: {\n // Exhaustiveness: every MathElementType handled above.\n var _exhaustive = node.type;\n void _exhaustive;\n throw new Error(\"cloneMathElement: unhandled kind\");\n }\n }\n}\nfunction openXmlEqual(a, b) {\n if (a === undefined && b === undefined) {\n return true;\n }\n if (a === undefined || b === undefined) {\n return false;\n }\n if (a.namespaceUri !== b.namespaceUri ||\n a.localName !== b.localName ||\n a.prefix !== b.prefix ||\n a.attributes.length !== b.attributes.length ||\n a.namespaceDeclarations.length !== b.namespaceDeclarations.length ||\n a.children.length !== b.children.length) {\n return false;\n }\n for (var i = 0; i < a.attributes.length; i++) {\n var aa = a.attributes[i];\n var bb = b.attributes[i];\n if (aa.namespaceUri !== bb.namespaceUri ||\n aa.localName !== bb.localName ||\n aa.prefix !== bb.prefix ||\n aa.value !== bb.value) {\n return false;\n }\n }\n for (var i = 0; i < a.namespaceDeclarations.length; i++) {\n var aa = a.namespaceDeclarations[i];\n var bb = b.namespaceDeclarations[i];\n if (aa.prefix !== bb.prefix || aa.namespaceUri !== bb.namespaceUri) {\n return false;\n }\n }\n for (var i = 0; i < a.children.length; i++) {\n var ca = a.children[i];\n var cb = b.children[i];\n if (ca.kind !== cb.kind) {\n return false;\n }\n if (ca.kind === 'text' && cb.kind === 'text') {\n if (ca.value !== cb.value) {\n return false;\n }\n }\n else if (ca.kind === 'element' && cb.kind === 'element') {\n if (!openXmlEqual(ca, cb)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n return true;\n}\nfunction openXmlListEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!openXmlEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n}\nfunction propsEqual(a, b, ctrlPrKey) {\n if (ctrlPrKey === void 0) { ctrlPrKey = 'ctrlPr'; }\n var e_1, _a;\n var keys = new Set(__spread(Object.keys(a), Object.keys(b)));\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n if (key === ctrlPrKey) {\n if (!openXmlEqual(a[key], b[key])) {\n return false;\n }\n continue;\n }\n if (a[key] !== b[key]) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n}\nfunction elementsEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!mathEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Semantic equality of two math trees (shape, text, measures, enumerations).\n * Ignores mutation listeners. Compares preserve-only flag so degraded nodes\n * do not silently equal clean typed peers.\n *\n * @private\n */\nexport function mathEqual(a, b) {\n if (a.type !== b.type) {\n return false;\n }\n if (a.preserveOnly !== b.preserveOnly) {\n return false;\n }\n switch (a.type) {\n case 't': {\n var ta = a;\n var tb = b;\n return ta.value === tb.value && ta.xmlSpace === tb.xmlSpace;\n }\n case 'arg': {\n var aa = a;\n var bb = b;\n return (propsEqual(aa.properties, bb.properties) &&\n openXmlEqual(aa.ctrlPr, bb.ctrlPr) &&\n elementsEqual(aa.item, bb.item));\n }\n case 'oMathPara': {\n var pa = a;\n var pb = b;\n return (propsEqual(pa.properties, pb.properties) &&\n elementsEqual(pa.equations, pb.equations));\n }\n case 'oMath': {\n var oa = a;\n var ob = b;\n return elementsEqual(oa.children, ob.children);\n }\n case 'unknown': {\n var ua = a;\n var ub = b;\n return ua.localName === ub.localName && openXmlEqual(ua.preservedXml, ub.preservedXml);\n }\n case 'r': {\n var ra = a;\n var rb = b;\n return (propsEqual(ra.properties, rb.properties) &&\n openXmlEqual(ra.wRPr, rb.wRPr) &&\n elementsEqual(ra.children, rb.children) &&\n openXmlListEqual(ra.opaqueChildren, rb.opaqueChildren));\n }\n case 'acc': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'bar': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'box': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'borderBox': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'd': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n elementsEqual(na.elements, nb.elements));\n }\n case 'eqArr': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n elementsEqual(na.elements, nb.elements));\n }\n case 'f': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.numerator, nb.numerator) &&\n mathEqual(na.denominator, nb.denominator));\n }\n case 'func': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.name, nb.name) &&\n mathEqual(na.base, nb.base));\n }\n case 'groupChr': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'limLow': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base) &&\n mathEqual(na.lim, nb.lim));\n }\n case 'limUpp': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base) &&\n mathEqual(na.lim, nb.lim));\n }\n case 'm': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n elementsEqual(na.rows, nb.rows));\n }\n case 'mr': {\n var na = a;\n var nb = b;\n return elementsEqual(na.elements, nb.elements);\n }\n case 'nary': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.subscript, nb.subscript) &&\n mathEqual(na.superscript, nb.superscript) &&\n mathEqual(na.base, nb.base));\n }\n case 'phant': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base));\n }\n case 'rad': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.deg, nb.deg) &&\n mathEqual(na.base, nb.base));\n }\n case 'sPre': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.sub, nb.sub) &&\n mathEqual(na.sup, nb.sup) &&\n mathEqual(na.base, nb.base));\n }\n case 'sSub': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base) &&\n mathEqual(na.subscript, nb.subscript));\n }\n case 'sSubSup': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base) &&\n mathEqual(na.subscript, nb.subscript) &&\n mathEqual(na.superscript, nb.superscript));\n }\n case 'sSup': {\n var na = a;\n var nb = b;\n return (propsEqual(na.properties, nb.properties) &&\n mathEqual(na.base, nb.base) &&\n mathEqual(na.superscript, nb.superscript));\n }\n default: {\n var _exhaustive = a.type;\n void _exhaustive;\n return false;\n }\n }\n}\n","/*\n * Agile OFFCRYPTO constants cited from local [MS-OFFCRYPTO].\n *\n * @remarks\n * Never invent algorithm URIs, element names, or block keys. All values below\n * are taken from `specs/microsoft/[MS-OFFCRYPTO].md` §2.3.4.10–§2.3.4.15.\n * Re-exported from the encryption public surface for fixture / host harness use.\n *\n * @packageDocumentation\n */\n/**\n * EncryptionVersionInfo major for Agile: `0x0004` ([MS-OFFCRYPTO] §2.3.4.10).\n *\n * @public\n */\nexport var AGILE_VERSION_MAJOR = 0x0004;\n/**\n * EncryptionVersionInfo minor for Agile: `0x0004` ([MS-OFFCRYPTO] §2.3.4.10).\n *\n * @public\n */\nexport var AGILE_VERSION_MINOR = 0x0004;\n/** Reserved field after version MUST be 0x00000040 (§2.3.4.10). */\nexport var AGILE_RESERVED = 0x00000040;\n/** EncryptionInfo XML target namespace (§2.3.4.10). */\nexport var AGILE_ENCRYPTION_NS = 'http://schemas.microsoft.com/office/2006/encryption';\n/** PasswordKeyEncryptor URI on keyEncryptor (§2.3.4.10). */\nexport var PASSWORD_KEY_ENCRYPTOR_URI = 'http://schemas.microsoft.com/office/2006/keyEncryptor/password';\n/** PasswordKeyEncryptor element namespace (§2.3.4.10). */\nexport var PASSWORD_KEY_ENCRYPTOR_NS = 'http://schemas.microsoft.com/office/2006/keyEncryptor/password';\n/**\n * Block key for encryptedVerifierHashInput (§2.3.4.13).\n * Bytes: fe a7 d2 76 3b 4b 9e 79.\n */\nexport var BLOCK_KEY_VERIFIER_INPUT = Uint8Array.of(0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79);\n/**\n * Block key for encryptedVerifierHashValue (§2.3.4.13).\n * Bytes: d7 aa 0f 6d 30 61 34 4e.\n */\nexport var BLOCK_KEY_VERIFIER_HASH = Uint8Array.of(0xd7, 0xaa, 0x0f, 0x6d, 0x30, 0x61, 0x34, 0x4e);\n/**\n * Block key for encryptedKeyValue (§2.3.4.13).\n * Bytes: 14 6e 0b e7 ab ac d0 d6.\n */\nexport var BLOCK_KEY_ENCRYPTOR_KEY = Uint8Array.of(0x14, 0x6e, 0x0b, 0xe7, 0xab, 0xac, 0xd0, 0xd6);\n/**\n * Block key for encryptedHmacKey (§2.3.4.14).\n * Bytes: 5f b2 ad 01 0c b9 e1 f6.\n */\nexport var BLOCK_KEY_HMAC_KEY = Uint8Array.of(0x5f, 0xb2, 0xad, 0x01, 0x0c, 0xb9, 0xe1, 0xf6);\n/**\n * Block key for encryptedHmacValue (§2.3.4.14).\n * Bytes: a0 67 7f 02 b2 2c 84 33.\n */\nexport var BLOCK_KEY_HMAC_VALUE = Uint8Array.of(0xa0, 0x67, 0x7f, 0x02, 0xb2, 0x2c, 0x84, 0x33);\n/** EncryptedPackage segment size in bytes (§2.3.4.15). */\nexport var ENCRYPTED_PACKAGE_SEGMENT_SIZE = 4096;\n/** CFB root stream names for OFFCRYPTO (§2.3.4.4, §2.3.4.10). */\nexport var STREAM_ENCRYPTION_INFO = 'EncryptionInfo';\nexport var STREAM_ENCRYPTED_PACKAGE = 'EncryptedPackage';\n/** Maximum spinCount from ST_SpinCount (§2.3.4.10). */\nexport var MAX_SPIN_COUNT = 10000000;\n/**\n * Standard Encryption EncryptionVersionInfo minor version (§2.3.4.5).\n * Major is 2, 3, or 4 with minor 0x0002 — explicitly unsupported in Phase 6.\n */\nexport var STANDARD_ENCRYPTION_VERSION_MINOR = 0x0002;\n/** Key padding byte when Hfinal is shorter than keyBits/8 (§2.3.4.11). */\nexport var KEY_PAD_BYTE = 0x36;\n/** IV padding byte when IV is shorter than blockSize (§2.3.4.12). */\nexport var IV_PAD_BYTE = 0x36;\n","/**\n * Encryption-related error types shared across Office libraries.\n *\n * @remarks\n * Messages must never include the consumer password or key material.\n * Citation: [MS-OFFCRYPTO] §1.3.3.4, §2.3.4.4–§2.3.4.15.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar ONE_KIB = 1024;\nvar ONE_MIB = ONE_KIB * 1024;\nvar ONE_GIB = ONE_MIB * 1024;\n/**\n * Default decrypt limits aligned with typical Office package security defaults.\n */\nexport var DEFAULT_DECRYPT_SECURITY_LIMITS = Object.freeze({\n totalUncompressedBytes: 1 * ONE_GIB,\n singlePartUncompressedBytes: 256 * ONE_MIB,\n xmlNestingDepth: 256,\n xmlAttributesPerElement: 4096,\n textNodeLengthBytes: 32 * ONE_MIB,\n});\n/**\n * Builds effective decrypt limits from optional caller overrides.\n */\nexport function resolveDecryptLimits(overrides) {\n if (overrides === undefined) {\n return DEFAULT_DECRYPT_SECURITY_LIMITS;\n }\n var xmlNestingDepth = (overrides.xmlNestingDepth != null ? overrides.xmlNestingDepth : DEFAULT_DECRYPT_SECURITY_LIMITS.xmlNestingDepth);\n var xmlAttributesPerElement = (overrides.xmlAttributesPerElement != null ? overrides.xmlAttributesPerElement : DEFAULT_DECRYPT_SECURITY_LIMITS.xmlAttributesPerElement);\n var textNodeLengthBytes = (overrides.textNodeLengthBytes != null ? overrides.textNodeLengthBytes : DEFAULT_DECRYPT_SECURITY_LIMITS.textNodeLengthBytes);\n var resolved = __assign({ totalUncompressedBytes: (overrides.totalUncompressedBytes != null ? overrides.totalUncompressedBytes : DEFAULT_DECRYPT_SECURITY_LIMITS.totalUncompressedBytes), singlePartUncompressedBytes: (overrides.singlePartUncompressedBytes != null ? overrides.singlePartUncompressedBytes : DEFAULT_DECRYPT_SECURITY_LIMITS.singlePartUncompressedBytes) }, (xmlNestingDepth === undefined ? {} : { xmlNestingDepth: xmlNestingDepth }), (xmlAttributesPerElement === undefined ? {} : { xmlAttributesPerElement: xmlAttributesPerElement }), (textNodeLengthBytes === undefined ? {} : { textNodeLengthBytes: textNodeLengthBytes }));\n return Object.freeze(resolved);\n}\nvar PackageLimitError = /** @class */ (function (_super) {\n __extends(PackageLimitError, _super);\n function PackageLimitError(limit, options) {\n var _newTarget = this.constructor;\n if (options === void 0) { options = {}; }\n var _this = this;\n var partSuffix = options.partName === undefined ? '' : \" (part: \" + options.partName + \")\";\n var actualSuffix = options.actual === undefined ? '' : \"; actual value: \" + String(options.actual);\n _this = _super.call(this, \"Package security limit exceeded: \" + limit + partSuffix + actualSuffix) || this;\n _this.name = 'PackageLimitError';\n _this.limit = limit;\n _this.partName = options.partName;\n _this.actual = options.actual;\n // ES5 / AMD emit: restore prototype so `instanceof` works in browsers.\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return PackageLimitError;\n}(Error));\nexport { PackageLimitError };\n/**\n * Raised when the package is encrypted and cannot be opened as supplied.\n */\nvar EncryptedPackageError = /** @class */ (function (_super) {\n __extends(EncryptedPackageError, _super);\n function EncryptedPackageError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.name = 'EncryptedPackageError';\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return EncryptedPackageError;\n}(Error));\nexport { EncryptedPackageError };\n/**\n * Raised when a consumer-supplied password fails OFFCRYPTO verification.\n */\nvar InvalidPasswordError = /** @class */ (function (_super) {\n __extends(InvalidPasswordError, _super);\n function InvalidPasswordError(message) {\n var _newTarget = this.constructor;\n if (message === void 0) { message = 'Invalid password'; }\n var _this = _super.call(this, message) || this;\n _this.name = 'InvalidPasswordError';\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return InvalidPasswordError;\n}(Error));\nexport { InvalidPasswordError };\n/**\n * Raised when the package uses a recognized encryption method this build does not decrypt.\n */\nvar UnsupportedEncryptionError = /** @class */ (function (_super) {\n __extends(UnsupportedEncryptionError, _super);\n function UnsupportedEncryptionError(message) {\n var _newTarget = this.constructor;\n if (message === void 0) { message = 'Unsupported encryption method'; }\n var _this = _super.call(this, message) || this;\n _this.name = 'UnsupportedEncryptionError';\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedEncryptionError;\n}(Error));\nexport { UnsupportedEncryptionError };\n","/*\n * Hash / HMAC / AES-CBC primitives for Agile OFFCRYPTO.\n *\n * @remarks\n * [MS-OFFCRYPTO] §2.3.4.11–§2.3.4.15 pads AES-CBC plaintexts with **0x00** to\n * `blockSize`, not PKCS #7. Node's Web Crypto `AES-CBC` decrypt expects PKCS #7\n * and rejects Office ciphertexts. This module therefore uses the **Node.js\n * built-in** `node:crypto` (`createHash`, `createHmac`, `createDecipheriv` with\n * `setAutoPadding(false)`). That is a platform API, not a new npm dependency\n * (ADR / dependencies policy). No third-party crypto packages.\n *\n * Supported for v1: AES-128/192/256 + CBC; SHA-1 / SHA-256 / SHA-384 / SHA-512.\n * Symbols re-exported from the encryption package entry are public; keep\n * `@private`\n * only on helpers that are not part of that surface.\n *\n * @packageDocumentation\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { UnsupportedEncryptionError } from './errors';\nimport { IV_PAD_BYTE, KEY_PAD_BYTE } from './agile-constants';\nfunction __nodeCrypto() {\n try {\n return require('crypto');\n }\n catch (e) {\n throw new Error('Node crypto is required for Agile encryption');\n }\n}\nvar _a = __nodeCrypto(), createCipheriv = _a.createCipheriv, createDecipheriv = _a.createDecipheriv, createHash = _a.createHash, createHmac = _a.createHmac;\nvar HASH_TO_NODE = {\n 'SHA-1': 'sha1',\n SHA256: 'sha256',\n SHA384: 'sha384',\n SHA512: 'sha512',\n};\nvar HASH_DIGEST_BYTES = {\n 'SHA-1': 20,\n SHA256: 32,\n SHA384: 48,\n SHA512: 64,\n};\n/**\n * Maps OFFCRYPTO hashAlgorithm attribute to an internal name.\n *\n * @throws {UnsupportedEncryptionError} When the algorithm is not in the v1 set.\n */\nexport function resolveHashAlgorithm(name) {\n switch (name) {\n case 'SHA-1':\n case 'SHA1':\n return 'SHA-1';\n case 'SHA256':\n return 'SHA256';\n case 'SHA384':\n return 'SHA384';\n case 'SHA512':\n return 'SHA512';\n default:\n throw new UnsupportedEncryptionError(\"Unsupported OFFCRYPTO hashAlgorithm: \" + sanitizeAlgToken(name));\n }\n}\n/**\n * Validates cipherAlgorithm + cipherChaining for v1 (AES + CBC only).\n *\n * @throws {UnsupportedEncryptionError} When not AES/CBC.\n */\nexport function assertSupportedCipher(cipherAlgorithm, cipherChaining) {\n if (cipherAlgorithm !== 'AES') {\n throw new UnsupportedEncryptionError(\"Unsupported OFFCRYPTO cipherAlgorithm: \" + sanitizeAlgToken(cipherAlgorithm));\n }\n if (cipherChaining !== 'ChainingModeCBC') {\n throw new UnsupportedEncryptionError(\"Unsupported OFFCRYPTO cipherChaining: \" + sanitizeAlgToken(cipherChaining));\n }\n}\n/**\n * Validates AES keyBits (128 / 192 / 256).\n *\n * @throws {UnsupportedEncryptionError} When key length is not a supported AES size.\n */\nexport function assertAesKeyBits(keyBits) {\n if (keyBits !== 128 && keyBits !== 192 && keyBits !== 256) {\n throw new UnsupportedEncryptionError(\"Unsupported OFFCRYPTO AES keyBits: \" + String(keyBits));\n }\n}\n/** Digest length in bytes for a resolved hash algorithm. */\nexport function hashDigestLength(hash) {\n return HASH_DIGEST_BYTES[hash];\n}\n/** One-shot hash. */\nexport function hashBytes(hash, data) {\n var h = createHash(HASH_TO_NODE[hash]);\n h.update(data);\n return new Uint8Array(h.digest());\n}\n/** HMAC over message with key (DataIntegrity §2.3.4.14). */\nexport function hmacBytes(hash, key, message) {\n var h = createHmac(HASH_TO_NODE[hash], Buffer.from(key));\n h.update(message);\n return new Uint8Array(h.digest());\n}\n/**\n * Concatenates byte arrays.\n *\n * @public\n */\nexport function concatBytes() {\n var parts = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parts[_i] = arguments[_i];\n }\n var e_1, _a, e_2, _b;\n var total = 0;\n try {\n for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {\n var p = parts_1_1.value;\n total += p.byteLength;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var out = new Uint8Array(total);\n var offset = 0;\n try {\n for (var parts_2 = __values(parts), parts_2_1 = parts_2.next(); !parts_2_1.done; parts_2_1 = parts_2.next()) {\n var p = parts_2_1.value;\n out.set(p, offset);\n offset += p.byteLength;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (parts_2_1 && !parts_2_1.done && (_b = parts_2.return)) _b.call(parts_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return out;\n}\n/**\n * Encodes a JavaScript string as UTF-16LE (Unicode password bytes, §2.3.4.11).\n */\nexport function encodePasswordUtf16Le(password) {\n var out = new Uint8Array(password.length * 2);\n for (var i = 0; i < password.length; i++) {\n var code = password.charCodeAt(i);\n out[i * 2] = code & 0xff;\n out[i * 2 + 1] = (code >>> 8) & 0xff;\n }\n return out;\n}\n/**\n * Password-based encryption key (§2.3.4.11).\n *\n * H0 = H(salt + password); Hn = H(iterator LE u32 + Hn-1) for spinCount iterations;\n * Hfinal = H(Hn + blockKey); pad/truncate to keyBits/8 with 0x36.\n */\nexport function deriveAgileKey(hash, salt, passwordUtf16Le, spinCount, blockKey, keyBits) {\n var hn = hashBytes(hash, concatBytes(salt, passwordUtf16Le));\n var iterator = new Uint8Array(4);\n var iteratorView = new DataView(iterator.buffer);\n for (var i = 0; i < spinCount; i++) {\n iteratorView.setUint32(0, i, true);\n hn = hashBytes(hash, concatBytes(iterator, hn));\n }\n var hfinal = hashBytes(hash, concatBytes(hn, blockKey));\n return padOrTruncate(hfinal, keyBits / 8, KEY_PAD_BYTE);\n}\n/**\n * Initialization vector (§2.3.4.12).\n *\n * With blockKey: IV = H(keySalt + blockKey); without: IV = keySalt.\n * Pad/truncate to blockSize with 0x36.\n */\nexport function deriveAgileIv(hash, keySalt, blockKey, blockSize) {\n var raw = blockKey === undefined ? keySalt : hashBytes(hash, concatBytes(keySalt, blockKey));\n return padOrTruncate(raw, blockSize, IV_PAD_BYTE);\n}\n/**\n * AES-CBC decrypt with zero padding (no PKCS #7 strip).\n *\n * @param key - AES key (16/24/32 bytes).\n * @param iv - IV of blockSize bytes (AES block is 16; OFFCRYPTO blockSize is 16 for AES).\n * @param ciphertext - Length MUST be a multiple of 16.\n * @returns Plaintext of the same length as ciphertext (including zero pad).\n */\nexport function aesCbcDecrypt(key, iv, ciphertext) {\n if (ciphertext.byteLength === 0) {\n return new Uint8Array(0);\n }\n if (ciphertext.byteLength % 16 !== 0) {\n throw new UnsupportedEncryptionError('OFFCRYPTO AES-CBC ciphertext length is not block-aligned');\n }\n if (iv.byteLength !== 16) {\n throw new UnsupportedEncryptionError('OFFCRYPTO AES-CBC IV must be 16 bytes');\n }\n var algo = aesAlgorithmName(key.byteLength);\n var decipher = createDecipheriv(algo, Buffer.from(key), Buffer.from(iv));\n decipher.setAutoPadding(false);\n var part1 = decipher.update(Buffer.from(ciphertext));\n var part2 = decipher.final();\n if (part2.byteLength === 0) {\n return new Uint8Array(part1);\n }\n var out = new Uint8Array(part1.byteLength + part2.byteLength);\n out.set(part1, 0);\n out.set(part2, part1.byteLength);\n return out;\n}\n/**\n * AES-CBC encrypt with zero padding (no PKCS #7).\n *\n * @remarks\n * Used by test fixture builders and host encrypt harnesses. Same zero-pad\n * rules as decrypt ([MS-OFFCRYPTO] §2.3.4.13 / §2.3.4.15).\n *\n * @public\n */\nexport function aesCbcEncrypt(key, iv, plaintext) {\n if (iv.byteLength !== 16) {\n throw new UnsupportedEncryptionError('OFFCRYPTO AES-CBC IV must be 16 bytes');\n }\n var blockSize = 16;\n var paddedLen = plaintext.byteLength === 0\n ? blockSize\n : Math.ceil(plaintext.byteLength / blockSize) * blockSize;\n var padded = new Uint8Array(paddedLen);\n padded.set(plaintext, 0);\n // remaining bytes stay 0x00 (Agile zero-pad, §2.3.4.13 / §2.3.4.15).\n var algo = aesAlgorithmName(key.byteLength);\n var cipher = createCipheriv(algo, Buffer.from(key), Buffer.from(iv));\n cipher.setAutoPadding(false);\n var part1 = cipher.update(Buffer.from(padded));\n var part2 = cipher.final();\n if (part2.byteLength === 0) {\n return new Uint8Array(part1);\n }\n var out = new Uint8Array(part1.byteLength + part2.byteLength);\n out.set(part1, 0);\n out.set(part2, part1.byteLength);\n return out;\n}\n/**\n * Constant-time comparison of two equal-length buffers.\n * Returns false when lengths differ (not constant-time on length).\n */\nexport function timingSafeEqual(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n var diff = 0;\n for (var i = 0; i < a.byteLength; i++) {\n // Lengths already equal; index is in range. Avoid non-null assertions.\n var left = (a[i] != null ? a[i] : 0);\n var right = (b[i] != null ? b[i] : 0);\n diff |= left ^ right;\n }\n return diff === 0;\n}\nfunction padOrTruncate(data, size, padByte) {\n if (data.byteLength === size) {\n return data;\n }\n if (data.byteLength > size) {\n return data.subarray(0, size);\n }\n var out = new Uint8Array(size);\n out.set(data, 0);\n out.fill(padByte, data.byteLength);\n return out;\n}\nfunction aesAlgorithmName(keyBytes) {\n switch (keyBytes) {\n case 16:\n return 'aes-128-cbc';\n case 24:\n return 'aes-192-cbc';\n case 32:\n return 'aes-256-cbc';\n default:\n throw new UnsupportedEncryptionError('Unsupported AES key length');\n }\n}\n/** Strip control chars so algorithm tokens cannot smuggle secrets into messages. */\nfunction sanitizeAlgToken(token) {\n var cleaned = token.replace(/[^\\w.\\-:/+]/g, '').slice(0, 64);\n return cleaned.length > 0 ? cleaned : '(unrecognized)';\n}\n","/*\n * Minimal attribute-oriented XML element parser for OFFCRYPTO EncryptionInfo.\n *\n * @remarks\n * EncryptionInfo XML is a small attribute-heavy tree (encryption / keyData /\n * dataIntegrity / keyEncryptors). This parser intentionally does **not** pull a\n * full OOXML DOM. It supports nested elements, attributes, default namespaces,\n * and rejects DOCTYPE / entity expansion.\n *\n * @private\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { EncryptedPackageError, PackageLimitError, } from './errors';\nvar DEFAULT_XML_NESTING = 256;\nvar DEFAULT_XML_ATTRS = 4096;\nvar DEFAULT_TEXT_NODE = 32 * 1024 * 1024;\n/**\n * Parses EncryptionInfo UTF-8 XML into a single root element tree.\n *\n * @throws {EncryptedPackageError} Malformed XML.\n * @throws {PackageLimitError} Nesting / attribute / text limits.\n */\nexport function parseEncryptionInfoXml(xmlText, limits, partName) {\n if (partName === void 0) { partName = 'EncryptionInfo'; }\n if (/<!DOCTYPE/i.test(xmlText) || /<!ENTITY/i.test(xmlText)) {\n throw new EncryptedPackageError('EncryptionInfo XML must not contain DTD or entities');\n }\n var maxDepth = (limits.xmlNestingDepth != null ? limits.xmlNestingDepth : DEFAULT_XML_NESTING);\n var maxAttrs = (limits.xmlAttributesPerElement != null ? limits.xmlAttributesPerElement : DEFAULT_XML_ATTRS);\n var maxText = (limits.textNodeLengthBytes != null ? limits.textNodeLengthBytes : DEFAULT_TEXT_NODE);\n var i = 0;\n var length = xmlText.length;\n var skipWs = function () {\n while (i < length) {\n var c = xmlText.charCodeAt(i);\n if (c === 0x20 || c === 0x09 || c === 0x0a || c === 0x0d) {\n i += 1;\n }\n else {\n break;\n }\n }\n };\n var peek = function () { return (i < length ? xmlText[i] : ''); };\n var startsWith = function (s) { return xmlText.startsWith(s, i); };\n var readName = function () {\n var start = i;\n while (i < length) {\n var c = xmlText[i];\n if (/[A-Za-z0-9:_.-]/.test(c)) {\n i += 1;\n }\n else {\n break;\n }\n }\n if (i === start) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: expected name');\n }\n return xmlText.slice(start, i);\n };\n var decodeEntities = function (raw) {\n return raw\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&apos;/g, \"'\")\n .replace(/&amp;/g, '&');\n };\n var readAttrValue = function () {\n var quote = peek();\n if (quote !== '\"' && quote !== \"'\") {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: attribute value');\n }\n i += 1;\n var start = i;\n while (i < length && xmlText[i] !== quote) {\n i += 1;\n if (i - start > maxText) {\n throw new PackageLimitError('textNodeLengthBytes', { partName: partName, actual: i - start });\n }\n }\n if (i >= length) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed attribute');\n }\n var value = xmlText.slice(start, i);\n i += 1; // closing quote\n return decodeEntities(value);\n };\n var resolveQName = function (qName, nsStack, isAttr) {\n var colon = qName.indexOf(':');\n var prefix = colon === -1 ? '' : qName.slice(0, colon);\n var localName = colon === -1 ? qName : qName.slice(colon + 1);\n if (isAttr && prefix === '') {\n return { localName: localName, namespaceUri: '' };\n }\n if (prefix === 'xmlns') {\n return { localName: localName, namespaceUri: 'http://www.w3.org/2000/xmlns/' };\n }\n for (var s = nsStack.length - 1; s >= 0; s--) {\n var uri = nsStack[s].get(prefix);\n if (uri !== undefined) {\n return { localName: localName, namespaceUri: uri };\n }\n }\n return { localName: localName, namespaceUri: '' };\n };\n var parseElement = function (nsStack, depth) {\n if (depth > maxDepth) {\n throw new PackageLimitError('xmlNestingDepth', { partName: partName, actual: depth });\n }\n if (peek() !== '<') {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: expected element');\n }\n i += 1; // <\n if (peek() === '/') {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unexpected end tag');\n }\n // Skip processing instructions / comments / XML declaration at this level via caller.\n var rawName = readName();\n skipWs();\n var pendingAttrs = [];\n var selfClosing = false;\n var localNs = new Map();\n while (i < length && peek() !== '>' && peek() !== '/') {\n var attrName = readName();\n skipWs();\n if (peek() !== '=') {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: expected =');\n }\n i += 1;\n skipWs();\n var attrValue = readAttrValue();\n skipWs();\n if (attrName === 'xmlns') {\n localNs.set('', attrValue);\n }\n else if (attrName.startsWith('xmlns:')) {\n localNs.set(attrName.slice(6), attrValue);\n }\n else {\n pendingAttrs.push({ qName: attrName, value: attrValue });\n }\n if (pendingAttrs.length > maxAttrs) {\n throw new PackageLimitError('xmlAttributesPerElement', {\n partName: partName,\n actual: pendingAttrs.length,\n });\n }\n }\n if (startsWith('/>')) {\n selfClosing = true;\n i += 2;\n }\n else if (peek() === '>') {\n i += 1;\n }\n else {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: element tag');\n }\n var childNsStack = __spread(nsStack, [localNs]);\n var nameResolved = resolveQName(rawName, childNsStack, false);\n var attributes = pendingAttrs.map(function (a) {\n var r = resolveQName(a.qName, childNsStack, true);\n return { localName: r.localName, namespaceUri: r.namespaceUri, value: a.value };\n });\n if (selfClosing) {\n return { kind: 'element',\n localName: nameResolved.localName,\n namespaceUri: nameResolved.namespaceUri,\n attributes: attributes,\n children: [],\n };\n }\n var children = [];\n for (;;) {\n skipWs();\n if (i >= length) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed element');\n }\n if (startsWith('</')) {\n i += 2;\n var endName = readName();\n skipWs();\n if (peek() !== '>') {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: end tag');\n }\n i += 1;\n if (endName !== rawName) {\n throw new EncryptedPackageError(\"EncryptionInfo XML is invalid: mismatched end tag \" + endName);\n }\n break;\n }\n if (startsWith('<!--')) {\n var end = xmlText.indexOf('-->', i + 4);\n if (end < 0) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed comment');\n }\n i = end + 3;\n continue;\n }\n if (startsWith('<?')) {\n var end = xmlText.indexOf('?>', i + 2);\n if (end < 0) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed PI');\n }\n i = end + 2;\n continue;\n }\n if (peek() === '<') {\n children.push(parseElement(childNsStack, depth + 1));\n continue;\n }\n // Text node — EncryptionInfo does not need text content; skip with limit.\n var textStart = i;\n while (i < length && peek() !== '<') {\n i += 1;\n if (i - textStart > maxText) {\n throw new PackageLimitError('textNodeLengthBytes', {\n partName: partName,\n actual: i - textStart,\n });\n }\n }\n }\n return { kind: 'element',\n localName: nameResolved.localName,\n namespaceUri: nameResolved.namespaceUri,\n attributes: attributes,\n children: children,\n };\n };\n // Skip BOM / XML declaration / leading comments.\n skipWs();\n if (startsWith('\\uFEFF')) {\n i += 1;\n skipWs();\n }\n while (startsWith('<?') || startsWith('<!--')) {\n if (startsWith('<?')) {\n var end = xmlText.indexOf('?>', i + 2);\n if (end < 0) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed declaration');\n }\n i = end + 2;\n }\n else {\n var end = xmlText.indexOf('-->', i + 4);\n if (end < 0) {\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: unclosed comment');\n }\n i = end + 3;\n }\n skipWs();\n }\n var root = parseElement([new Map()], 1);\n skipWs();\n if (i < length) {\n // Allow trailing whitespace only (already skipped); anything else is junk.\n throw new EncryptedPackageError('EncryptionInfo XML is invalid: trailing content');\n }\n return root;\n}\n","/*\n * Parse EncryptionInfo stream for Agile encryption ([MS-OFFCRYPTO] §2.3.4.10).\n *\n * @remarks\n * Binary header: VersionMajor, VersionMinor (2 bytes each LE), Reserved (4 bytes LE),\n * then UTF-8 XML. Agile is **4.4** with Reserved **0x00000040**.\n * Standard Encryption (minor version 2) is explicitly unsupported.\n *\n * @private\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { AGILE_ENCRYPTION_NS, AGILE_RESERVED, AGILE_VERSION_MAJOR, AGILE_VERSION_MINOR, MAX_SPIN_COUNT, PASSWORD_KEY_ENCRYPTOR_URI, STANDARD_ENCRYPTION_VERSION_MINOR, } from './agile-constants';\nimport { assertAesKeyBits, assertSupportedCipher, resolveHashAlgorithm, } from './crypto-primitives';\nimport { EncryptedPackageError, UnsupportedEncryptionError, } from './errors';\nimport { parseEncryptionInfoXml } from './encryption-info-xml';\nfunction __gt() {\n // Prefer Node global; fall back to browser window. Avoid @types/node.\n var g = (function () {\n try {\n // eslint-disable-next-line no-new-func\n return Function('return this')();\n }\n catch (e) {\n return {};\n }\n })();\n return g || {};\n}\nvar HEADER_BYTES = 8;\n/**\n * Parses EncryptionInfo stream bytes into an Agile model.\n *\n * @throws {UnsupportedEncryptionError} Standard Encryption or unknown version/alg.\n * @throws {EncryptedPackageError} Truncated or missing required Agile fields.\n */\nexport function parseAgileEncryptionInfo(encryptionInfo, limits) {\n if (encryptionInfo.byteLength < HEADER_BYTES + 1) {\n throw new EncryptedPackageError('EncryptionInfo stream is truncated');\n }\n var view = new DataView(encryptionInfo.buffer, encryptionInfo.byteOffset, encryptionInfo.byteLength);\n var versionMajor = view.getUint16(0, true);\n var versionMinor = view.getUint16(2, true);\n var reserved = view.getUint32(4, true);\n // Standard Encryption: major 2|3|4, minor 2 ([MS-OFFCRYPTO] §2.3.4.5).\n if (versionMinor === STANDARD_ENCRYPTION_VERSION_MINOR &&\n (versionMajor === 2 || versionMajor === 3 || versionMajor === 4)) {\n throw new UnsupportedEncryptionError('OFFCRYPTO Standard Encryption (EncryptionInfo minor version 2) is not supported; Agile (4.4) only');\n }\n if (versionMajor !== AGILE_VERSION_MAJOR || versionMinor !== AGILE_VERSION_MINOR) {\n throw new UnsupportedEncryptionError(\"Unsupported EncryptionInfo version \" + String(versionMajor) + \".\" + String(versionMinor));\n }\n if (reserved !== AGILE_RESERVED) {\n throw new UnsupportedEncryptionError(\"Unsupported EncryptionInfo reserved field 0x\" + reserved.toString(16));\n }\n var xmlBytes = encryptionInfo.subarray(HEADER_BYTES);\n var xmlText = utf8Decode(xmlBytes);\n var root;\n try {\n root = parseEncryptionInfoXml(xmlText, limits, 'EncryptionInfo');\n }\n catch (err) {\n if (err instanceof EncryptedPackageError || err instanceof UnsupportedEncryptionError) {\n throw err;\n }\n if (err instanceof Error && err.name === 'PackageLimitError') {\n throw err;\n }\n var msg = err instanceof Error ? err.message : 'XML parse failed';\n throw new EncryptedPackageError(\"EncryptionInfo XML is invalid: \" + msg);\n }\n if (root.localName !== 'encryption' || root.namespaceUri !== AGILE_ENCRYPTION_NS) {\n // Accept default-ns resolution failures only when localName matches and NS empty\n // after serializers omit xmlns on root (rare); still require encryption localName.\n if (root.localName !== 'encryption') {\n throw new EncryptedPackageError('EncryptionInfo root element is not encryption');\n }\n if (root.namespaceUri !== '' && root.namespaceUri !== AGILE_ENCRYPTION_NS) {\n throw new EncryptedPackageError('EncryptionInfo root element is not encryption');\n }\n }\n var keyDataEl = findChild(root, AGILE_ENCRYPTION_NS, 'keyData');\n var dataIntegrityEl = findChildOptional(root, AGILE_ENCRYPTION_NS, 'dataIntegrity');\n var keyEncryptorsEl = findChild(root, AGILE_ENCRYPTION_NS, 'keyEncryptors');\n var keyData = parseKeyData(keyDataEl);\n var dataIntegrity = dataIntegrityEl === undefined ? undefined : parseDataIntegrity(dataIntegrityEl);\n var passwordKeyEncryptor = parsePasswordKeyEncryptor(keyEncryptorsEl);\n return { keyData: keyData, dataIntegrity: dataIntegrity, passwordKeyEncryptor: passwordKeyEncryptor };\n}\nfunction parseKeyData(el) {\n var saltSize = requirePositiveIntAttr(el, 'saltSize');\n var blockSize = requirePositiveIntAttr(el, 'blockSize');\n var keyBits = requirePositiveIntAttr(el, 'keyBits');\n var hashSize = requirePositiveIntAttr(el, 'hashSize');\n var cipherAlgorithm = requireAttr(el, 'cipherAlgorithm');\n var cipherChaining = requireAttr(el, 'cipherChaining');\n var hashAlgorithmRaw = requireAttr(el, 'hashAlgorithm');\n var saltValue = requireBase64Attr(el, 'saltValue');\n assertSupportedCipher(cipherAlgorithm, cipherChaining);\n assertAesKeyBits(keyBits);\n var hashAlgorithm = resolveHashAlgorithm(hashAlgorithmRaw);\n if (blockSize !== 16) {\n throw new UnsupportedEncryptionError(\"Unsupported OFFCRYPTO blockSize: \" + String(blockSize) + \" (AES requires 16)\");\n }\n if (saltValue.byteLength !== saltSize) {\n throw new EncryptedPackageError('keyData saltValue length does not match saltSize');\n }\n return {\n saltSize: saltSize,\n blockSize: blockSize,\n keyBits: keyBits,\n hashSize: hashSize,\n cipherAlgorithm: cipherAlgorithm,\n cipherChaining: cipherChaining,\n hashAlgorithm: hashAlgorithm,\n saltValue: saltValue,\n };\n}\nfunction parseDataIntegrity(el) {\n return {\n encryptedHmacKey: requireBase64Attr(el, 'encryptedHmacKey'),\n encryptedHmacValue: requireBase64Attr(el, 'encryptedHmacValue'),\n };\n}\nfunction parsePasswordKeyEncryptor(keyEncryptorsEl) {\n var e_1, _a;\n var encryptorEls = keyEncryptorsEl.children.filter(function (c) { return c.kind === 'element' && c.localName === 'keyEncryptor'; });\n if (encryptorEls.length === 0) {\n throw new EncryptedPackageError('EncryptionInfo has no keyEncryptor');\n }\n var passwordEl;\n try {\n for (var encryptorEls_1 = __values(encryptorEls), encryptorEls_1_1 = encryptorEls_1.next(); !encryptorEls_1_1.done; encryptorEls_1_1 = encryptorEls_1.next()) {\n var ke = encryptorEls_1_1.value;\n var uri = getAttr(ke, 'uri');\n if (uri === PASSWORD_KEY_ENCRYPTOR_URI) {\n passwordEl = findEncryptedKey(ke);\n break;\n }\n if (uri !== undefined && uri.length > 0) {\n throw new UnsupportedEncryptionError('OFFCRYPTO certificate (or non-password) keyEncryptor is not supported');\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (encryptorEls_1_1 && !encryptorEls_1_1.done && (_a = encryptorEls_1.return)) _a.call(encryptorEls_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (passwordEl === undefined) {\n throw new UnsupportedEncryptionError('OFFCRYPTO EncryptionInfo has no password keyEncryptor');\n }\n var spinCount = requireNonNegativeIntAttr(passwordEl, 'spinCount');\n if (spinCount > MAX_SPIN_COUNT) {\n throw new EncryptedPackageError(\"OFFCRYPTO spinCount exceeds maximum allowed (\" + String(MAX_SPIN_COUNT) + \")\");\n }\n var saltSize = requirePositiveIntAttr(passwordEl, 'saltSize');\n var blockSize = requirePositiveIntAttr(passwordEl, 'blockSize');\n var keyBits = requirePositiveIntAttr(passwordEl, 'keyBits');\n var hashSize = requirePositiveIntAttr(passwordEl, 'hashSize');\n var cipherAlgorithm = requireAttr(passwordEl, 'cipherAlgorithm');\n var cipherChaining = requireAttr(passwordEl, 'cipherChaining');\n var hashAlgorithmRaw = requireAttr(passwordEl, 'hashAlgorithm');\n var saltValue = requireBase64Attr(passwordEl, 'saltValue');\n var encryptedVerifierHashInput = requireBase64Attr(passwordEl, 'encryptedVerifierHashInput');\n var encryptedVerifierHashValue = requireBase64Attr(passwordEl, 'encryptedVerifierHashValue');\n var encryptedKeyValue = requireBase64Attr(passwordEl, 'encryptedKeyValue');\n assertSupportedCipher(cipherAlgorithm, cipherChaining);\n assertAesKeyBits(keyBits);\n var hashAlgorithm = resolveHashAlgorithm(hashAlgorithmRaw);\n if (blockSize !== 16) {\n throw new UnsupportedEncryptionError(\"Unsupported password keyEncryptor blockSize: \" + String(blockSize));\n }\n if (saltValue.byteLength !== saltSize) {\n throw new EncryptedPackageError('encryptedKey saltValue length does not match saltSize');\n }\n return {\n spinCount: spinCount,\n saltSize: saltSize,\n blockSize: blockSize,\n keyBits: keyBits,\n hashSize: hashSize,\n cipherAlgorithm: cipherAlgorithm,\n cipherChaining: cipherChaining,\n hashAlgorithm: hashAlgorithm,\n saltValue: saltValue,\n encryptedVerifierHashInput: encryptedVerifierHashInput,\n encryptedVerifierHashValue: encryptedVerifierHashValue,\n encryptedKeyValue: encryptedKeyValue,\n };\n}\nfunction findEncryptedKey(keyEncryptor) {\n var e_2, _a;\n try {\n for (var _b = __values(keyEncryptor.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind !== 'element') {\n continue;\n }\n if (child.localName === 'encryptedKey') {\n return child;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return undefined;\n}\nfunction findChild(parent, ns, localName) {\n var el = findChildOptional(parent, ns, localName);\n if (el === undefined) {\n throw new EncryptedPackageError(\"EncryptionInfo missing element \" + localName);\n }\n return el;\n}\nfunction findChildOptional(parent, ns, localName) {\n var e_3, _a, e_4, _b;\n try {\n for (var _c = __values(parent.children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n if (child.kind !== 'element') {\n continue;\n }\n if (child.localName === localName && (child.namespaceUri === ns || child.namespaceUri === '')) {\n return child;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _e = __values(parent.children), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n if (child.kind === 'element' && child.localName === localName) {\n return child;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return undefined;\n}\nfunction getAttr(el, localName) {\n var e_5, _a;\n try {\n for (var _b = __values(el.attributes), _c = _b.next(); !_c.done; _c = _b.next()) {\n var a = _c.value;\n if (a.localName === localName) {\n return a.value;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return undefined;\n}\nfunction requireAttr(el, localName) {\n var v = getAttr(el, localName);\n if (v === undefined || v.length === 0) {\n throw new EncryptedPackageError(\"EncryptionInfo missing attribute \" + localName);\n }\n return v;\n}\nfunction requirePositiveIntAttr(el, localName) {\n var raw = requireAttr(el, localName);\n var n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n <= 0) {\n throw new EncryptedPackageError(\"EncryptionInfo attribute \" + localName + \" is invalid\");\n }\n return n;\n}\nfunction requireNonNegativeIntAttr(el, localName) {\n var raw = requireAttr(el, localName);\n var n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n < 0) {\n throw new EncryptedPackageError(\"EncryptionInfo attribute \" + localName + \" is invalid\");\n }\n return n;\n}\nfunction requireBase64Attr(el, localName) {\n var raw = requireAttr(el, localName);\n try {\n return base64Decode(raw);\n }\n catch (_a) {\n throw new EncryptedPackageError(\"EncryptionInfo attribute \" + localName + \" is not valid base64\");\n }\n}\nfunction base64Decode(value) {\n var normalized = value.replace(/\\s+/g, '');\n if (typeof __gt().atob === 'function') {\n var bin = __gt().atob(normalized);\n var out = new Uint8Array(bin.length);\n for (var i = 0; i < bin.length; i++) {\n out[i] = bin.charCodeAt(i);\n }\n return out;\n }\n return new Uint8Array(Buffer.from(normalized, 'base64'));\n}\nfunction utf8Decode(bytes) {\n return new TextDecoder('utf-8', { fatal: true }).decode(bytes);\n}\n","/*\n * Password key encryptor verifier and intermediate key ([MS-OFFCRYPTO] §2.3.4.13).\n *\n * @remarks\n * 1. Derive key with blockKey `BLOCK_KEY_VERIFIER_INPUT`; decrypt encryptedVerifierHashInput.\n * 2. Hash the decrypted verifier input; derive key with `BLOCK_KEY_VERIFIER_HASH`;\n * decrypt encryptedVerifierHashValue; compare first hashSize bytes → else InvalidPasswordError.\n * 3. Derive key with `BLOCK_KEY_ENCRYPTED_KEY`; decrypt encryptedKeyValue → intermediate key\n * (truncated to keyBits/8).\n *\n * Integrity HMAC failure uses the same InvalidPasswordError (fail-closed; do not\n * distinguish wrong password vs tampered package in the public message).\n *\n * @private\n */\nimport { InvalidPasswordError } from './errors';\nimport { BLOCK_KEY_ENCRYPTOR_KEY, BLOCK_KEY_VERIFIER_HASH, BLOCK_KEY_VERIFIER_INPUT, } from './agile-constants';\nimport { aesCbcDecrypt, deriveAgileIv, deriveAgileKey, encodePasswordUtf16Le, hashBytes, timingSafeEqual, } from './crypto-primitives';\n/**\n * Verifies the password and returns the secret key used to decrypt EncryptedPackage\n * (decrypted encryptedKeyValue, truncated to keyBits/8).\n *\n * @throws {InvalidPasswordError} When verifier hash does not match.\n */\nexport function unlockIntermediateKey(password, encryptor) {\n var passwordBytes = encodePasswordUtf16Le(password);\n var hashAlgorithm = encryptor.hashAlgorithm, saltValue = encryptor.saltValue, spinCount = encryptor.spinCount, keyBits = encryptor.keyBits, blockSize = encryptor.blockSize, hashSize = encryptor.hashSize;\n // --- verifier hash input ---\n var keyVerifierInput = deriveAgileKey(hashAlgorithm, saltValue, passwordBytes, spinCount, BLOCK_KEY_VERIFIER_INPUT, keyBits);\n var ivVerifierInput = deriveAgileIv(hashAlgorithm, saltValue, undefined, blockSize);\n var verifierInputPadded = aesCbcDecrypt(keyVerifierInput, ivVerifierInput, encryptor.encryptedVerifierHashInput);\n // §2.3.4.13: verifier input is saltSize random bytes (zero-padded to blockSize on encrypt).\n if (verifierInputPadded.byteLength < encryptor.saltSize) {\n throw new InvalidPasswordError();\n }\n var verifierInput = verifierInputPadded.subarray(0, encryptor.saltSize);\n var verifierHashComputed = hashBytes(hashAlgorithm, verifierInput);\n // --- verifier hash value ---\n var keyVerifierHash = deriveAgileKey(hashAlgorithm, saltValue, passwordBytes, spinCount, BLOCK_KEY_VERIFIER_HASH, keyBits);\n var ivVerifierHash = deriveAgileIv(hashAlgorithm, saltValue, undefined, blockSize);\n var verifierHashDecrypted = aesCbcDecrypt(keyVerifierHash, ivVerifierHash, encryptor.encryptedVerifierHashValue);\n var expectedLen = Math.min(hashSize, verifierHashComputed.byteLength, verifierHashDecrypted.byteLength);\n if (expectedLen <= 0) {\n throw new InvalidPasswordError();\n }\n if (!timingSafeEqual(verifierHashComputed.subarray(0, expectedLen), verifierHashDecrypted.subarray(0, expectedLen))) {\n throw new InvalidPasswordError();\n }\n // --- encrypted key value → intermediate / secret key ---\n var keyEncryptedKey = deriveAgileKey(hashAlgorithm, saltValue, passwordBytes, spinCount, BLOCK_KEY_ENCRYPTOR_KEY, keyBits);\n var ivEncryptedKey = deriveAgileIv(hashAlgorithm, saltValue, undefined, blockSize);\n var decryptedKey = aesCbcDecrypt(keyEncryptedKey, ivEncryptedKey, encryptor.encryptedKeyValue);\n var keyLen = keyBits / 8;\n if (decryptedKey.byteLength < keyLen) {\n throw new InvalidPasswordError();\n }\n return decryptedKey.subarray(0, keyLen);\n}\n","/*\n * Minimal OLE Compound File Binary (CFB) reader for OFFCRYPTO streams.\n *\n * @remarks\n * Reads only what is required to extract root storage streams named\n * `EncryptionInfo` and `EncryptedPackage` ([MS-OFFCRYPTO] §2.3.4.4,\n * §2.3.4.10). Layout fields follow the well-known CFB header / FAT /\n * directory structure used by ECMA-376 encrypted packages. This is **not** a\n * full [MS-CFB] implementation — no local MS-CFB corpus is present under\n * `specs/`; only the subset needed for named-stream extraction is coded.\n *\n * Fail closed on truncated headers, broken FAT chains, or missing streams.\n *\n * @private\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { EncryptedPackageError } from './errors';\nimport { STREAM_ENCRYPTED_PACKAGE, STREAM_ENCRYPTION_INFO } from './agile-constants';\n/** OLE CFB header signature ([MS-CFB]). */\nvar OLE_CFB_SIGNATURE = Object.freeze([0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1]);\n/** Sector size shift for 512-byte sectors (common default). */\nvar SECTOR_SHIFT_512 = 9;\n/** Sector size shift for 4096-byte sectors. */\nvar SECTOR_SHIFT_4096 = 12;\nvar ENDOFCHAIN = 0xfffffffe;\nvar FREESECT = 0xffffffff;\nvar FATSECT = 0xfffffffd;\nvar DIFSECT = 0xfffffffc;\nvar DIR_ENTRY_SIZE = 128;\nvar MAX_DIR_ENTRIES = 65536;\nvar MAX_FAT_SECTORS = 1048576;\n/**\n * Extracts `\\EncryptionInfo` and `\\EncryptedPackage` from an OFFCRYPTO CFB.\n *\n * @param input - Entire OLE compound-file bytes.\n * @throws {EncryptedPackageError} When structure is incomplete or streams missing.\n */\nexport function readOffCryptoStreams(input) {\n if (input.byteLength < 512) {\n throw new EncryptedPackageError('OFFCRYPTO package is truncated (CFB header)');\n }\n for (var i = 0; i < OLE_CFB_SIGNATURE.length; i++) {\n if (input[i] !== OLE_CFB_SIGNATURE[i]) {\n throw new EncryptedPackageError('Package is not a valid OLE compound file');\n }\n }\n var view = new DataView(input.buffer, input.byteOffset, input.byteLength);\n var sectorShift = view.getUint16(30, true);\n if (sectorShift !== SECTOR_SHIFT_512 && sectorShift !== SECTOR_SHIFT_4096) {\n throw new EncryptedPackageError('Unsupported CFB sector size');\n }\n var sectorSize = 1 << sectorShift;\n var miniSectorShift = view.getUint16(32, true);\n if (miniSectorShift !== 6) {\n // Standard mini-sector is 64 bytes; refuse unknown layouts.\n throw new EncryptedPackageError('Unsupported CFB mini-sector size');\n }\n var miniSectorSize = 1 << miniSectorShift;\n var miniStreamCutoff = view.getUint32(56, true);\n var firstDirSector = view.getUint32(48, true);\n var firstMiniFatSector = view.getUint32(60, true);\n var miniFatSectorCount = view.getUint32(64, true);\n var fatSectorCount = view.getUint32(44, true);\n var firstDifatSector = view.getUint32(68, true);\n var difatSectorCount = view.getUint32(72, true);\n if (fatSectorCount > MAX_FAT_SECTORS) {\n throw new EncryptedPackageError('CFB FAT is unreasonably large');\n }\n var difat = [];\n for (var i = 0; i < 109; i++) {\n var sect = view.getUint32(76 + i * 4, true);\n if (sect !== FREESECT) {\n difat.push(sect);\n }\n }\n var difatSect = firstDifatSector;\n for (var n = 0; n < difatSectorCount; n++) {\n if (difatSect === ENDOFCHAIN || difatSect === FREESECT) {\n break;\n }\n var offset = sectorOffset(difatSect, sectorSize);\n ensureRange(input, offset, sectorSize);\n var entriesPerSector = sectorSize / 4 - 1;\n for (var i = 0; i < entriesPerSector; i++) {\n var sect = view.getUint32(offset + i * 4, true);\n if (sect !== FREESECT) {\n difat.push(sect);\n }\n }\n difatSect = view.getUint32(offset + entriesPerSector * 4, true);\n }\n if (difat.length < fatSectorCount) {\n throw new EncryptedPackageError('CFB DIFAT is truncated');\n }\n var fat = [];\n for (var i = 0; i < fatSectorCount; i++) {\n var fatSect = difat[i];\n if (fatSect === undefined) {\n throw new EncryptedPackageError('CFB DIFAT is truncated');\n }\n var offset = sectorOffset(fatSect, sectorSize);\n ensureRange(input, offset, sectorSize);\n var entries_1 = sectorSize / 4;\n for (var j = 0; j < entries_1; j++) {\n fat.push(view.getUint32(offset + j * 4, true));\n }\n }\n var directoryBytes = readChain(input, view, fat, firstDirSector, sectorSize, undefined);\n if (directoryBytes.byteLength < DIR_ENTRY_SIZE) {\n throw new EncryptedPackageError('CFB directory is empty');\n }\n var entryCount = Math.min(Math.floor(directoryBytes.byteLength / DIR_ENTRY_SIZE), MAX_DIR_ENTRIES);\n var dirView = new DataView(directoryBytes.buffer, directoryBytes.byteOffset, directoryBytes.byteLength);\n var entries = [];\n for (var i = 0; i < entryCount; i++) {\n var base = i * DIR_ENTRY_SIZE;\n var nameLength = dirView.getUint16(base + 64, true);\n // nameLength includes the terminating null (2 bytes) when non-zero.\n var charCount = nameLength >= 2 ? Math.floor((nameLength - 2) / 2) : 0;\n var name_1 = '';\n for (var c = 0; c < charCount && c < 32; c++) {\n name_1 += String.fromCharCode(dirView.getUint16(base + c * 2, true));\n }\n var objectType = dirView.getUint8(base + 66);\n var childId = dirView.getUint32(base + 76, true);\n var startSector = dirView.getUint32(base + 116, true);\n // Stream size is 8 bytes LE; OFFCRYPTO streams fit in lower 32 bits for our limits.\n var streamSizeLow = dirView.getUint32(base + 120, true);\n var streamSizeHigh = dirView.getUint32(base + 124, true);\n if (streamSizeHigh !== 0) {\n throw new EncryptedPackageError('OFFCRYPTO stream exceeds supported size');\n }\n entries.push({\n name: name_1,\n objectType: objectType,\n startSector: startSector,\n streamSize: streamSizeLow,\n childId: childId,\n });\n }\n var root = entries[0];\n if (root === undefined || root.objectType !== 5) {\n throw new EncryptedPackageError('CFB root storage is missing');\n }\n // Collect names under root via sibling tree walk (left/right/child).\n var found = new Map();\n var visited = new Set();\n var walk = function (id) {\n if (id > 0xfffffffa || id >= entries.length || visited.has(id)) {\n return;\n }\n visited.add(id);\n var e = entries[id];\n if (e === undefined) {\n return;\n }\n var left = dirView.getUint32(id * DIR_ENTRY_SIZE + 68, true);\n var right = dirView.getUint32(id * DIR_ENTRY_SIZE + 72, true);\n walk(left);\n if (e.objectType === 2 /* stream */) {\n found.set(e.name, e);\n }\n walk(right);\n if (e.objectType === 1 /* storage */ || e.objectType === 5 /* root */) {\n walk(e.childId);\n }\n };\n walk(root.childId);\n var infoEntry = found.get(STREAM_ENCRYPTION_INFO);\n var pkgEntry = found.get(STREAM_ENCRYPTED_PACKAGE);\n if (infoEntry === undefined || pkgEntry === undefined) {\n throw new EncryptedPackageError('OFFCRYPTO streams EncryptionInfo and/or EncryptedPackage are missing');\n }\n var miniFat;\n var miniStream;\n var readStream = function (entry) {\n if (entry.streamSize === 0) {\n return new Uint8Array(0);\n }\n if (entry.streamSize < miniStreamCutoff && entry !== root) {\n if (miniFat === undefined) {\n miniFat = readMiniFat(input, view, fat, firstMiniFatSector, miniFatSectorCount, sectorSize);\n // Root stream size may be larger than mini data; chain until end.\n miniStream = readChain(input, view, fat, root.startSector, sectorSize, undefined);\n }\n if (miniStream === undefined) {\n throw new EncryptedPackageError('CFB mini-stream is unavailable');\n }\n return readMiniChain(miniStream, miniFat, entry.startSector, miniSectorSize, entry.streamSize);\n }\n return readChain(input, view, fat, entry.startSector, sectorSize, entry.streamSize);\n };\n return {\n encryptionInfo: readStream(infoEntry),\n encryptedPackage: readStream(pkgEntry),\n };\n}\nfunction sectorOffset(sectorIndex, sectorSize) {\n // Sector 0 starts after the 512-byte header for 512-byte sectors; for 4096,\n // header occupies the first sector region — offset is still (sector+1)*size\n // relative to file start for standard CFB.\n return (sectorIndex + 1) * sectorSize;\n}\nfunction ensureRange(input, offset, length) {\n if (offset < 0 || length < 0 || offset + length > input.byteLength) {\n throw new EncryptedPackageError('OFFCRYPTO package is truncated (CFB sector)');\n }\n}\nfunction readChain(input, view, fat, startSector, sectorSize, maxBytes) {\n if (startSector === ENDOFCHAIN || startSector === FREESECT) {\n return new Uint8Array(0);\n }\n var chunks = [];\n var total = 0;\n var sector = startSector;\n var guard = 0;\n var maxGuard = fat.length + 2;\n while (sector !== ENDOFCHAIN && sector !== FREESECT) {\n if (guard++ > maxGuard) {\n throw new EncryptedPackageError('CFB FAT chain is cyclic or unbounded');\n }\n if (sector === FATSECT || sector === DIFSECT) {\n throw new EncryptedPackageError('CFB FAT chain contains reserved sector');\n }\n if (sector < 0 || sector >= fat.length) {\n // Allow reading last data sector without FAT entry for short files: still need bounds.\n var offsetTry = sectorOffset(sector, sectorSize);\n if (offsetTry + sectorSize > input.byteLength && offsetTry >= input.byteLength) {\n throw new EncryptedPackageError('CFB FAT chain sector out of range');\n }\n }\n var offset = sectorOffset(sector, sectorSize);\n ensureRange(input, offset, Math.min(sectorSize, input.byteLength - offset));\n var take = Math.min(sectorSize, input.byteLength - offset);\n var slice = input.subarray(offset, offset + take);\n chunks.push(slice);\n total += slice.byteLength;\n if (maxBytes !== undefined && total >= maxBytes) {\n break;\n }\n if (sector >= fat.length) {\n throw new EncryptedPackageError('CFB FAT chain sector out of range');\n }\n var nextSector = fat[sector];\n if (nextSector === undefined) {\n throw new EncryptedPackageError('CFB FAT chain sector out of range');\n }\n sector = nextSector;\n }\n var out = concat(chunks);\n if (maxBytes !== undefined) {\n if (out.byteLength < maxBytes) {\n throw new EncryptedPackageError('OFFCRYPTO stream data is truncated');\n }\n return out.subarray(0, maxBytes);\n }\n return out;\n}\nfunction readMiniFat(input, view, fat, firstMiniFatSector, miniFatSectorCount, sectorSize) {\n if (miniFatSectorCount === 0 || firstMiniFatSector === ENDOFCHAIN) {\n return [];\n }\n var bytes = readChain(input, view, fat, firstMiniFatSector, sectorSize, miniFatSectorCount * sectorSize);\n var dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var entries = [];\n for (var i = 0; i + 4 <= bytes.byteLength; i += 4) {\n entries.push(dv.getUint32(i, true));\n }\n return entries;\n}\nfunction readMiniChain(miniStream, miniFat, startSector, miniSectorSize, streamSize) {\n var chunks = [];\n var total = 0;\n var sector = startSector;\n var guard = 0;\n var maxGuard = miniFat.length + 2;\n while (sector !== ENDOFCHAIN && sector !== FREESECT && total < streamSize) {\n if (guard++ > maxGuard) {\n throw new EncryptedPackageError('CFB mini-FAT chain is cyclic or unbounded');\n }\n var offset = sector * miniSectorSize;\n if (offset >= miniStream.byteLength) {\n throw new EncryptedPackageError('CFB mini-stream is truncated');\n }\n var take = Math.min(miniSectorSize, miniStream.byteLength - offset, streamSize - total);\n chunks.push(miniStream.subarray(offset, offset + take));\n total += take;\n if (sector >= miniFat.length) {\n throw new EncryptedPackageError('CFB mini-FAT sector out of range');\n }\n var nextMini = miniFat[sector];\n if (nextMini === undefined) {\n throw new EncryptedPackageError('CFB mini-FAT sector out of range');\n }\n sector = nextMini;\n }\n var out = concat(chunks);\n if (out.byteLength < streamSize) {\n throw new EncryptedPackageError('OFFCRYPTO mini-stream data is truncated');\n }\n return out.subarray(0, streamSize);\n}\nfunction concat(chunks) {\n var e_1, _a, e_2, _b;\n var total = 0;\n try {\n for (var chunks_1 = __values(chunks), chunks_1_1 = chunks_1.next(); !chunks_1_1.done; chunks_1_1 = chunks_1.next()) {\n var c = chunks_1_1.value;\n total += c.byteLength;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (chunks_1_1 && !chunks_1_1.done && (_a = chunks_1.return)) _a.call(chunks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var out = new Uint8Array(total);\n var offset = 0;\n try {\n for (var chunks_2 = __values(chunks), chunks_2_1 = chunks_2.next(); !chunks_2_1.done; chunks_2_1 = chunks_2.next()) {\n var c = chunks_2_1.value;\n out.set(c, offset);\n offset += c.byteLength;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (chunks_2_1 && !chunks_2_1.done && (_b = chunks_2.return)) _b.call(chunks_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return out;\n}\n","/*\n * Decrypt EncryptedPackage stream ([MS-OFFCRYPTO] §2.3.4.4, §2.3.4.15)\n * and optional DataIntegrity HMAC (§2.3.4.14).\n *\n * @remarks\n * Layout: 8-byte little-endian StreamSize (u64) + encrypted payload.\n * Payload is segmented in 4096-byte blocks; each segment uses blockKey =\n * segment number as LE u32 with KeyData.saltValue for the IV\n * (§2.3.4.12 / §2.3.4.15). Secret key is the intermediate key from the\n * password key encryptor.\n *\n * DataIntegrity: decrypt encryptedHmacKey with blockKey BLOCK_KEY_HMAC_KEY\n * and KeyData; decrypt encryptedHmacValue with BLOCK_KEY_HMAC_VALUE; HMAC\n * the **entire** EncryptedPackage stream (including StreamSize prefix)\n * with KeyData.hashAlgorithm; compare → fail closed as InvalidPasswordError.\n *\n * @private\n */\nimport { EncryptedPackageError, InvalidPasswordError, PackageLimitError, } from './errors';\nimport { BLOCK_KEY_HMAC_KEY, BLOCK_KEY_HMAC_VALUE, ENCRYPTED_PACKAGE_SEGMENT_SIZE, } from './agile-constants';\nimport { aesCbcDecrypt, deriveAgileIv, hashDigestLength, hmacBytes, timingSafeEqual, } from './crypto-primitives';\nvar STREAM_SIZE_BYTES = 8;\n/**\n * Decrypts EncryptedPackage ciphertext to plain OPC ZIP bytes.\n *\n * @param encryptedPackage - Full EncryptedPackage stream bytes.\n * @param secretKey - Intermediate key from password unlock (keyBits/8).\n * @param keyData - KeyData from EncryptionInfo.\n * @param dataIntegrity - Optional integrity structure.\n * @param limits - Security limits (single-part / total uncompressed caps).\n *\n * @throws {PackageLimitError} When StreamSize or ciphertext exceeds limits.\n * @throws {InvalidPasswordError} When DataIntegrity HMAC fails (fail-closed).\n * @throws {EncryptedPackageError} When stream structure is invalid.\n */\nexport function decryptEncryptedPackageStream(encryptedPackage, secretKey, keyData, dataIntegrity, limits) {\n if (encryptedPackage.byteLength < STREAM_SIZE_BYTES) {\n throw new EncryptedPackageError('EncryptedPackage stream is truncated');\n }\n // Hard cap ciphertext before any crypto work.\n var maxCipher = Math.max(limits.singlePartUncompressedBytes, limits.totalUncompressedBytes);\n if (encryptedPackage.byteLength >\n maxCipher + STREAM_SIZE_BYTES + ENCRYPTED_PACKAGE_SEGMENT_SIZE) {\n throw new PackageLimitError('singlePartUncompressedBytes', {\n actual: encryptedPackage.byteLength,\n });\n }\n var view = new DataView(encryptedPackage.buffer, encryptedPackage.byteOffset, encryptedPackage.byteLength);\n // StreamSize is u64 LE; JS safe integer covers realistic packages under limits.\n var streamSizeLow = view.getUint32(0, true);\n var streamSizeHigh = view.getUint32(4, true);\n if (streamSizeHigh !== 0) {\n throw new PackageLimitError('singlePartUncompressedBytes', {\n actual: Number.MAX_SAFE_INTEGER,\n });\n }\n var streamSize = streamSizeLow;\n if (streamSize > limits.singlePartUncompressedBytes) {\n throw new PackageLimitError('singlePartUncompressedBytes', { actual: streamSize });\n }\n if (streamSize > limits.totalUncompressedBytes) {\n throw new PackageLimitError('totalUncompressedBytes', { actual: streamSize });\n }\n var ciphertext = encryptedPackage.subarray(STREAM_SIZE_BYTES);\n if (ciphertext.byteLength === 0 && streamSize > 0) {\n throw new EncryptedPackageError('EncryptedPackage has StreamSize but no ciphertext');\n }\n // DataIntegrity over entire EncryptedPackage including StreamSize (§2.3.4.14).\n if (dataIntegrity !== undefined) {\n verifyDataIntegrity(encryptedPackage, secretKey, keyData, dataIntegrity);\n }\n var plain = decryptSegments(ciphertext, secretKey, keyData);\n if (plain.byteLength < streamSize) {\n throw new EncryptedPackageError('Decrypted EncryptedPackage is shorter than StreamSize');\n }\n return plain.subarray(0, streamSize);\n}\nfunction decryptSegments(ciphertext, secretKey, keyData) {\n var segmentSize = ENCRYPTED_PACKAGE_SEGMENT_SIZE;\n var blockSize = keyData.blockSize;\n var out = new Uint8Array(ciphertext.byteLength);\n var outOffset = 0;\n var segmentIndex = 0;\n var offset = 0;\n while (offset < ciphertext.byteLength) {\n var remaining = ciphertext.byteLength - offset;\n // Last segment may be shorter but must still be block-aligned (zero-pad encrypt).\n var segmentLen = remaining > segmentSize ? segmentSize : remaining;\n // If not last full logical segment and remaining > segmentSize we took segmentSize.\n // Ciphertext of each segment is rounded up to blockSize on encrypt; remaining should\n // already be multiple of blockSize for every piece.\n if (segmentLen % blockSize !== 0) {\n // Pad expectation: encryptor wrote full blocks; tolerate by rounding down if corrupt.\n throw new EncryptedPackageError('EncryptedPackage segment is not block-aligned');\n }\n var segmentCt = ciphertext.subarray(offset, offset + segmentLen);\n var blockKey = segmentBlockKey(segmentIndex);\n var iv = deriveAgileIv(keyData.hashAlgorithm, keyData.saltValue, blockKey, blockSize);\n var segmentPt = aesCbcDecrypt(secretKey, iv, segmentCt);\n out.set(segmentPt, outOffset);\n outOffset += segmentPt.byteLength;\n offset += segmentLen;\n segmentIndex += 1;\n }\n return out.subarray(0, outOffset);\n}\nfunction segmentBlockKey(segmentIndex) {\n var buf = new Uint8Array(4);\n new DataView(buf.buffer).setUint32(0, segmentIndex >>> 0, true);\n return buf;\n}\n/**\n * §2.3.4.14 DataIntegrity verification.\n *\n * Fail-closed: HMAC mismatch → InvalidPasswordError (same public class as wrong\n * password; do not leak integrity vs password distinction).\n */\nfunction verifyDataIntegrity(encryptedPackage, secretKey, keyData, dataIntegrity) {\n var hashAlgorithm = keyData.hashAlgorithm, saltValue = keyData.saltValue, blockSize = keyData.blockSize;\n var ivHmacKey = deriveAgileIv(hashAlgorithm, saltValue, BLOCK_KEY_HMAC_KEY, blockSize);\n var hmacKeyDecrypted = aesCbcDecrypt(secretKey, ivHmacKey, dataIntegrity.encryptedHmacKey);\n // HMAC key length is hash digest size; truncated after decrypt (zero-padded block).\n var digestLen = hashDigestLength(hashAlgorithm);\n if (hmacKeyDecrypted.byteLength < digestLen) {\n throw new InvalidPasswordError();\n }\n var hmacKey = hmacKeyDecrypted.subarray(0, digestLen);\n var ivHmacValue = deriveAgileIv(hashAlgorithm, saltValue, BLOCK_KEY_HMAC_VALUE, blockSize);\n var hmacValueDecrypted = aesCbcDecrypt(secretKey, ivHmacValue, dataIntegrity.encryptedHmacValue);\n if (hmacValueDecrypted.byteLength < digestLen) {\n throw new InvalidPasswordError();\n }\n var expectedHmac = hmacValueDecrypted.subarray(0, digestLen);\n var actualHmac = hmacBytes(hashAlgorithm, hmacKey, encryptedPackage);\n if (!timingSafeEqual(actualHmac.subarray(0, digestLen), expectedHmac)) {\n throw new InvalidPasswordError();\n }\n}\n","/**\n * Shared OFFCRYPTO Agile password decrypt for Office Open XML packages.\n *\n * @remarks\n * Implements [MS-OFFCRYPTO] Agile EncryptionInfo (4.4) + password keyEncryptor\n * + AES-CBC EncryptedPackage segment decrypt. Consumed by PowerPoint and other\n * Office libraries via `@syncfusion/ej2-office-common`.\n *\n * @packageDocumentation\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { parseAgileEncryptionInfo } from './agile-encryption-info';\nimport { unlockIntermediateKey } from './agile-password';\nimport { readOffCryptoStreams } from './cfb-reader';\nimport { decryptEncryptedPackageStream } from './decrypt-encrypted-package';\nimport { DEFAULT_DECRYPT_SECURITY_LIMITS, resolveDecryptLimits, } from './errors';\n/** OLE CFB header signature used by ECMA-376 OFFCRYPTO packages ([MS-CFB]). */\nvar OLE_CFB_SIGNATURE = Object.freeze([0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1]);\n/**\n * Returns whether `input` begins with the OLE compound-file signature used by\n * ECMA-376 OFFCRYPTO packages.\n *\n * @param input - Entire package bytes.\n * @returns `true` when the CFB signature matches.\n *\n * @public\n */\nexport function isOffCryptoPackage(input) {\n var bytes = input instanceof Uint8Array ? input : new Uint8Array(input);\n if (bytes.byteLength < OLE_CFB_SIGNATURE.length) {\n return false;\n }\n for (var i = 0; i < OLE_CFB_SIGNATURE.length; i++) {\n if (bytes[i] !== OLE_CFB_SIGNATURE[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Decrypts an OFFCRYPTO OLE CFB package to OPC ZIP bytes.\n *\n * @param input - Entire encrypted package bytes (CFB).\n * @param password - Consumer password (never logged; not retained).\n * @param limits - Decrypt size / XML guards (duck-types broader SecurityLimits).\n * @returns Decrypted OPC package bytes.\n *\n * @public\n */\nexport function decryptOffCryptoPackage(input, password, limits) {\n if (limits === void 0) { limits = DEFAULT_DECRYPT_SECURITY_LIMITS; }\n return __awaiter(this, void 0, void 0, function () {\n var resolved, streams, info, secretKey;\n return __generator(this, function (_a) {\n resolved = resolveDecryptLimits(limits);\n streams = readOffCryptoStreams(input);\n info = parseAgileEncryptionInfo(streams.encryptionInfo, resolved);\n secretKey = unlockIntermediateKey(password, info.passwordKeyEncryptor);\n return [2 /*return*/, decryptEncryptedPackageStream(streams.encryptedPackage, secretKey, info.keyData, info.dataIntegrity, resolved)];\n });\n });\n}\nexport { DEFAULT_DECRYPT_SECURITY_LIMITS, EncryptedPackageError, InvalidPasswordError, PackageLimitError, resolveDecryptLimits, UnsupportedEncryptionError, } from './errors';\n// Re-export internals needed by test fixtures / host encrypt harnesses.\nexport { AGILE_ENCRYPTION_NS, AGILE_RESERVED, AGILE_VERSION_MAJOR, AGILE_VERSION_MINOR, BLOCK_KEY_ENCRYPTOR_KEY, BLOCK_KEY_HMAC_KEY, BLOCK_KEY_HMAC_VALUE, BLOCK_KEY_VERIFIER_HASH, BLOCK_KEY_VERIFIER_INPUT, ENCRYPTED_PACKAGE_SEGMENT_SIZE, PASSWORD_KEY_ENCRYPTOR_NS, PASSWORD_KEY_ENCRYPTOR_URI, STREAM_ENCRYPTED_PACKAGE, STREAM_ENCRYPTION_INFO, } from './agile-constants';\nexport { aesCbcDecrypt, aesCbcEncrypt, concatBytes, deriveAgileIv, deriveAgileKey, encodePasswordUtf16Le, hashBytes, hashDigestLength, hmacBytes, timingSafeEqual, } from './crypto-primitives';\n","/**\n * Shared OOXML codecs and domain models for EJ2 Office JavaScript libraries.\n * Consume from git / local workspace; not published to npm.\n *\n * Feature modules are added incrementally (ink, mathml, encryption, …). Root\n * entry re-exports the public surface as features land, including the OFFCRYPTO\n * Agile decrypt surface from ./encryption.\n *\n * @packageDocumentation\n */\n/**\n * Package identity string for consumers proving resolution (TASK-9001).\n *\n * @public\n */\nexport var OFFICE_COMMON_PACKAGE_NAME = '@syncfusion/ej2-office-common';\nexport { INKML_NAMESPACE, INK_CONTENT_TYPE, INK_SOURCE_RELATIONSHIP_TYPE, WORDML_2010_NAMESPACE, WORDPROCESSING_INK_URI, INK_EFFECT_COLORS, inkEffectColor, computeInkBounds, decodeTrace, encodeTrace, scalePointsStretch, scalePointsUniform, addInkTrace, cloneInk, createInk, inkPathPoints, isOfficeInk, DIAG_INVALID_INK_TRACE, getLastInkParseDiagnostics, parseInkXml, serializeInkXml, EMUS_PER_POINT, formatUnitValue, pointsToUnit, unitValueToPoints, } from './features/ink/index';\n// ─── mathml (OMML) public surface — @syncfusion/ej2-office-common/mathml ──────────────────\nexport { MATH_NAMESPACE, MATH_PREFIX_FALLBACKS, WML_TRANSITIONAL_NAMESPACE, XML_NAMESPACE, MATH_BREAKBIN_VALUES, MATH_BREAKBINSUB_VALUES, MATH_FTYPE_VALUES, MATH_JC_VALUES, MATH_LIMLOC_VALUES, MATH_SCRIPT_VALUES, MATH_SHP_VALUES, MATH_SPACING_RULE_VALUES, MATH_STYLE_VALUES, MATH_TOPBOT_VALUES, emitOnOff, isInteger2, isInteger255, isSpacingRule, isUnSignedInteger, parseMathBreakBin, parseMathBreakBinSub, parseMathFractionType, parseMathJc, parseMathLimLoc, parseMathScript, parseMathShape, parseMathStyle, parseMathTopBot, parseOnOff, MathArgument, MathElement, MathText, UnknownMathElement, mathArg, MathOMath, MathParagraph, MathAccent, MathBar, MathBorderBox, MathBox, MathDelimiter, MathEquationArray, MathFraction, MathFunction, MathGroupCharacter, MathLimitLower, MathLimitUpper, MathMatrix, MathMatrixRow, MathNaryOperator, MathPhantom, MathPreSubSuperscript, MathRadical, MathRun, MathSubscript, MathSubSuperscript, MathSuperscript, parseMathElement, parseMathElements, mathElementToOpenXml, cloneMathElement, mathEqual, attrValue, attrValueNs, childElements, createElement, createText, textContent, } from './features/mathml/index';\nexport { decryptOffCryptoPackage, isOffCryptoPackage, DEFAULT_DECRYPT_SECURITY_LIMITS, EncryptedPackageError, InvalidPasswordError, PackageLimitError, resolveDecryptLimits, UnsupportedEncryptionError, \n// fixture / advanced crypto surface\nAGILE_ENCRYPTION_NS, AGILE_RESERVED, AGILE_VERSION_MAJOR, AGILE_VERSION_MINOR, BLOCK_KEY_ENCRYPTOR_KEY, BLOCK_KEY_HMAC_KEY, BLOCK_KEY_HMAC_VALUE, BLOCK_KEY_VERIFIER_HASH, BLOCK_KEY_VERIFIER_INPUT, ENCRYPTED_PACKAGE_SEGMENT_SIZE, PASSWORD_KEY_ENCRYPTOR_NS, PASSWORD_KEY_ENCRYPTOR_URI, STREAM_ENCRYPTED_PACKAGE, STREAM_ENCRYPTION_INFO, aesCbcDecrypt, aesCbcEncrypt, concatBytes, deriveAgileIv, deriveAgileKey, encodePasswordUtf16Le, hashBytes, hashDigestLength, hmacBytes, timingSafeEqual, } from './encryption/index';\n"],"names":["this","__values","__assign","DEFAULT_CONTEXT_REF","__read","__spread","ensureHash","XML_NAMESPACE","__extends","emitOnOff","findChild","getAttr","OLE_CFB_SIGNATURE"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-office-common.es5.js","sources":["../../src/office-common/features/mathml/constants.js","../../src/office-common/features/mathml/office-math/enums.js","../../src/office-common/features/mathml/office-math/property-store.js","../../src/office-common/features/mathml/office-math/owner-holder.js","../../src/office-common/features/mathml/office-math/xml-equal.js","../../src/office-common/features/mathml/office-math/basic.js","../../src/office-common/features/mathml/office-math/collection.js","../../src/office-common/features/mathml/office-math/keys.js","../../src/office-common/features/mathml/office-math/break.js","../../src/office-common/features/mathml/office-math/format.js","../../src/office-common/features/mathml/office-math/function-base.js","../../src/office-common/features/mathml/office-math/run-element.js","../../src/office-common/features/mathml/office-math/math-collection.js","../../src/office-common/features/mathml/office-math/functions-multi.js","../../src/office-common/features/mathml/office-math/matrix-row.js","../../src/office-common/features/mathml/office-math/matrix-column.js","../../src/office-common/features/mathml/office-math/matrix-collections.js","../../src/office-common/features/mathml/office-math/matrix.js","../../src/office-common/features/mathml/office-math/function-collection.js","../../src/office-common/features/mathml/office-math/office-math.js","../../src/office-common/features/mathml/office-math/functions-basic.js","../../src/office-common/features/mathml/latex/latex-symbols.js","../../src/office-common/features/mathml/latex/latex-parser.js","../../src/office-common/features/mathml/latex/latex-generator.js","../../src/office-common/features/mathml/office-math/math-paragraph.js","../../src/office-common/features/mathml/office-math/unknown-element.js","../../src/office-common/features/mathml/office-math/math-traversal.js","../../src/office-common/features/mathml/office-math/math-clone.js","../../src/office-common/features/mathml/office-math/math-equality.js","../../src/office-common/features/mathml/openxml.js","../../src/office-common/features/mathml/parse/office-math-properties.js","../../src/office-common/features/mathml/parse/office-math-parser.js","../../src/office-common/features/mathml/errors.js","../../src/office-common/features/mathml/serialize/omml-writer.js","../../src/office-common/features/mathml/serialize/office-math-properties-writer.js","../../src/office-common/features/mathml/serialize/office-math-serializer.js","../../src/office-common/features/mathml/model/enums.js","../../src/office-common/features/mathml/math-settings.js"],"sourcesContent":["/**\n * Cited Office Math Markup Language (OMML) constants.\n *\n * Sources:\n * - ECMA-376 Part 1 §22.1 (Office Math)\n * - ECMA-376 Part 4 Annex A.8.1 `shared-math.xsd`\n * - ECMA-376 Part 1 WordprocessingML transitional namespace\n * - W3C XML 1.0 `xml:` namespace (xml:space on m:t)\n */\n/**\n * Office Math namespace URI (`m:`).\n *\n * Source: ECMA-376-1 §22.1 /\n * `http://schemas.openxmlformats.org/officeDocument/2006/math`.\n *\n * @public\n */\nexport var MATH_NAMESPACE = 'http://schemas.openxmlformats.org/officeDocument/2006/math';\n/**\n * Preferred math prefix candidates for save-scoped registry.\n * First unused candidate wins: `m`, then `m1`, `m2`, …\n *\n * Source: mathml-spec §1.9 / §9.3.\n *\n * @public\n */\nexport var MATH_PREFIX_FALLBACKS = ['m', 'm1', 'm2', 'm3', 'm4', 'm5'];\n/**\n * WordprocessingML transitional namespace (`w:`).\n *\n * Used when bridging `w:rPr` / run content under `m:r` and `m:ctrlPr`\n * (ECMA-376-4 Annex A.8.1 `CT_R` / `CT_CtrlPr`).\n *\n * Source: ECMA-376-1 —\n * `http://schemas.openxmlformats.org/wordprocessingml/2006/main`.\n *\n * @public\n */\nexport var WML_TRANSITIONAL_NAMESPACE = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';\n/**\n * XML namespace used by `xml:space` on `m:t` (same policy as `w:t`).\n *\n * Source: W3C XML 1.0 — `http://www.w3.org/XML/1998/namespace`.\n *\n * @public\n */\nexport var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n","/**\n * Office Math authoring enumerations.\n *\n * Values mirror the Compression `Syncfusion.Office` Math enums so scratch-level\n * authoring behaves identically to DocIO. OMML token mapping lives in the\n * parser/serializer.\n */\n/** Math paragraph justification. @public */\nexport var MathJustification;\n(function (MathJustification) {\n MathJustification[MathJustification[\"CenterGroup\"] = 0] = \"CenterGroup\";\n MathJustification[MathJustification[\"Center\"] = 1] = \"Center\";\n MathJustification[MathJustification[\"Left\"] = 2] = \"Left\";\n MathJustification[MathJustification[\"Right\"] = 3] = \"Right\";\n})(MathJustification || (MathJustification = {}));\n/** Math script (font family class) of a run. @public */\nexport var MathFontType;\n(function (MathFontType) {\n MathFontType[MathFontType[\"DoubleStruck\"] = 0] = \"DoubleStruck\";\n MathFontType[MathFontType[\"Fraktur\"] = 1] = \"Fraktur\";\n MathFontType[MathFontType[\"Monospace\"] = 2] = \"Monospace\";\n MathFontType[MathFontType[\"Roman\"] = 3] = \"Roman\";\n MathFontType[MathFontType[\"SansSerif\"] = 4] = \"SansSerif\";\n MathFontType[MathFontType[\"Script\"] = 5] = \"Script\";\n})(MathFontType || (MathFontType = {}));\n/** Math run style. @public */\nexport var MathStyleType;\n(function (MathStyleType) {\n MathStyleType[MathStyleType[\"Italic\"] = 0] = \"Italic\";\n MathStyleType[MathStyleType[\"BoldItalic\"] = 1] = \"BoldItalic\";\n MathStyleType[MathStyleType[\"Bold\"] = 2] = \"Bold\";\n MathStyleType[MathStyleType[\"Regular\"] = 3] = \"Regular\";\n})(MathStyleType || (MathStyleType = {}));\n/** Identifies the concrete Math function created by the function factory. @public */\nexport var MathFunctionType;\n(function (MathFunctionType) {\n /** Unrecognized `m:*` element preserved verbatim; never created by the factory. */\n MathFunctionType[MathFunctionType[\"Unknown\"] = 0] = \"Unknown\";\n MathFunctionType[MathFunctionType[\"Accent\"] = 1] = \"Accent\";\n MathFunctionType[MathFunctionType[\"Bar\"] = 2] = \"Bar\";\n MathFunctionType[MathFunctionType[\"BorderBox\"] = 3] = \"BorderBox\";\n MathFunctionType[MathFunctionType[\"Box\"] = 4] = \"Box\";\n MathFunctionType[MathFunctionType[\"Delimiter\"] = 5] = \"Delimiter\";\n MathFunctionType[MathFunctionType[\"EquationArray\"] = 6] = \"EquationArray\";\n MathFunctionType[MathFunctionType[\"Fraction\"] = 7] = \"Fraction\";\n MathFunctionType[MathFunctionType[\"Function\"] = 8] = \"Function\";\n MathFunctionType[MathFunctionType[\"GroupCharacter\"] = 9] = \"GroupCharacter\";\n MathFunctionType[MathFunctionType[\"Limit\"] = 10] = \"Limit\";\n MathFunctionType[MathFunctionType[\"Matrix\"] = 11] = \"Matrix\";\n MathFunctionType[MathFunctionType[\"NArray\"] = 12] = \"NArray\";\n MathFunctionType[MathFunctionType[\"Phantom\"] = 13] = \"Phantom\";\n MathFunctionType[MathFunctionType[\"Radical\"] = 14] = \"Radical\";\n MathFunctionType[MathFunctionType[\"LeftSubSuperscript\"] = 15] = \"LeftSubSuperscript\";\n MathFunctionType[MathFunctionType[\"SubSuperscript\"] = 16] = \"SubSuperscript\";\n MathFunctionType[MathFunctionType[\"RightSubSuperscript\"] = 17] = \"RightSubSuperscript\";\n MathFunctionType[MathFunctionType[\"RunElement\"] = 18] = \"RunElement\";\n})(MathFunctionType || (MathFunctionType = {}));\n/** Delimiter shape. @public */\nexport var MathDelimiterShapeType;\n(function (MathDelimiterShapeType) {\n MathDelimiterShapeType[MathDelimiterShapeType[\"Centered\"] = 0] = \"Centered\";\n MathDelimiterShapeType[MathDelimiterShapeType[\"Match\"] = 1] = \"Match\";\n})(MathDelimiterShapeType || (MathDelimiterShapeType = {}));\n/** Fraction type. @public */\nexport var MathFractionType;\n(function (MathFractionType) {\n MathFractionType[MathFractionType[\"NormalFractionBar\"] = 0] = \"NormalFractionBar\";\n MathFractionType[MathFractionType[\"NoFractionBar\"] = 1] = \"NoFractionBar\";\n MathFractionType[MathFractionType[\"SkewedFractionBar\"] = 2] = \"SkewedFractionBar\";\n MathFractionType[MathFractionType[\"FractionInline\"] = 3] = \"FractionInline\";\n})(MathFractionType || (MathFractionType = {}));\n/** Horizontal alignment of a matrix column. @public */\nexport var MathHorizontalAlignment;\n(function (MathHorizontalAlignment) {\n MathHorizontalAlignment[MathHorizontalAlignment[\"Center\"] = 0] = \"Center\";\n MathHorizontalAlignment[MathHorizontalAlignment[\"Left\"] = 1] = \"Left\";\n MathHorizontalAlignment[MathHorizontalAlignment[\"Right\"] = 2] = \"Right\";\n})(MathHorizontalAlignment || (MathHorizontalAlignment = {}));\n/** Vertical alignment of a matrix or equation array. @public */\nexport var MathVerticalAlignment;\n(function (MathVerticalAlignment) {\n MathVerticalAlignment[MathVerticalAlignment[\"Center\"] = 0] = \"Center\";\n MathVerticalAlignment[MathVerticalAlignment[\"Top\"] = 1] = \"Top\";\n MathVerticalAlignment[MathVerticalAlignment[\"Bottom\"] = 2] = \"Bottom\";\n})(MathVerticalAlignment || (MathVerticalAlignment = {}));\n/** Spacing rule for matrix and equation array spacing. @public */\nexport var SpacingRule;\n(function (SpacingRule) {\n SpacingRule[SpacingRule[\"Single\"] = 0] = \"Single\";\n SpacingRule[SpacingRule[\"OneAndHalf\"] = 1] = \"OneAndHalf\";\n SpacingRule[SpacingRule[\"Double\"] = 2] = \"Double\";\n SpacingRule[SpacingRule[\"Exactly\"] = 3] = \"Exactly\";\n SpacingRule[SpacingRule[\"Multiple\"] = 4] = \"Multiple\";\n})(SpacingRule || (SpacingRule = {}));\n/** Script type of a single sub/superscript function. @public */\nexport var MathScriptType;\n(function (MathScriptType) {\n MathScriptType[MathScriptType[\"Superscript\"] = 0] = \"Superscript\";\n MathScriptType[MathScriptType[\"Subscript\"] = 1] = \"Subscript\";\n})(MathScriptType || (MathScriptType = {}));\n/** Limit type of a limit function. @public */\nexport var MathLimitType;\n(function (MathLimitType) {\n MathLimitType[MathLimitType[\"LowerLimit\"] = 0] = \"LowerLimit\";\n MathLimitType[MathLimitType[\"UpperLimit\"] = 1] = \"UpperLimit\";\n})(MathLimitType || (MathLimitType = {}));\n/** Em constant used by matrix spacing (half-em snapping). */\nexport var MATH_EM = 12;\n","/**\n * Explicit-value tracking for Math properties.\n *\n * Public getters return effective (Compression-compatible) defaults while the\n * store separately remembers which keys were assigned or parsed, so the\n * serializer emits only explicit values.\n */\n/**\n * Reusable keyed property store.\n *\n * @public\n */\nvar ExplicitPropertyStore = /** @class */ (function () {\n function ExplicitPropertyStore() {\n this._values = new Map();\n }\n /**\n * Whether the key was explicitly assigned or parsed.\n *\n * @param key\n */\n ExplicitPropertyStore.prototype.hasProperty = function (key) {\n return this._values.has(key);\n };\n /**\n * Returns the explicit value, or the lazily computed effective default.\n *\n * @param key\n * @param defaultValue\n */\n ExplicitPropertyStore.prototype.getProperty = function (key, defaultValue) {\n return this._values.has(key) ? this._values.get(key) : defaultValue();\n };\n /**\n * Assigns a value and marks it explicit, even when equal to the default.\n *\n * @param key\n * @param value\n */\n ExplicitPropertyStore.prototype.setProperty = function (key, value) {\n this._values.set(key, value);\n this.propertyChanged();\n };\n /**\n * Removes the explicit value so the effective default applies again.\n *\n * @param key\n */\n ExplicitPropertyStore.prototype.clearProperty = function (key) {\n if (this._values.delete(key)) {\n this.propertyChanged();\n }\n };\n /**\n * Whether a property was explicitly set or parsed from source.\n * Serializers use this to emit only explicit values.\n *\n * @param key\n */\n ExplicitPropertyStore.prototype.isExplicit = function (key) {\n return this.hasProperty(key);\n };\n /**\n * Copies every explicit property of `source` into this store, keeping explicitness.\n *\n * @param {ExplicitPropertyStore} source Store to copy from.\n * @returns {void}\n * @private\n */\n ExplicitPropertyStore.prototype.copyExplicitFrom = function (source) {\n var _this = this;\n source._values.forEach(function (value, key) { return _this._values.set(key, value); });\n };\n /**\n * Whether both stores hold the same explicit keys with equal values.\n *\n * @param {ExplicitPropertyStore} other Store to compare with.\n * @returns {boolean} True when the explicit properties are identical.\n * @private\n */\n ExplicitPropertyStore.prototype.explicitEquals = function (other) {\n if (this._values.size !== other._values.size) {\n return false;\n }\n var equal = true;\n this._values.forEach(function (value, key) {\n if (!other._values.has(key) || other._values.get(key) !== value) {\n equal = false;\n }\n });\n return equal;\n };\n /** Hook invoked after any mutation of the store. */\n ExplicitPropertyStore.prototype.propertyChanged = function () {\n // overridden by owner-aware subclasses\n };\n return ExplicitPropertyStore;\n}());\nexport { ExplicitPropertyStore };\n","/**\n * Base class of every owner-aware Math object.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ExplicitPropertyStore } from './property-store';\n/**\n * Holds the owner reference, bubbles mutations to the root and tracks explicit properties.\n *\n * @public\n */\nvar OwnerHolder = /** @class */ (function (_super) {\n __extends(OwnerHolder, _super);\n function OwnerHolder(owner) {\n var _this = _super.call(this) || this;\n _this._owner = owner;\n return _this;\n }\n Object.defineProperty(OwnerHolder.prototype, \"ownerMathEntity\", {\n /** The containing entity, or `undefined` for a root or detached object. */\n get: function () {\n return this._owner;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Re-parents this object.\n *\n * @param owner\n * @private\n */\n OwnerHolder.prototype.setOwner = function (owner) {\n this._owner = owner;\n };\n Object.defineProperty(OwnerHolder.prototype, \"isMatrixArgumentOwner\", {\n /**\n * True when this object is a matrix row or column, whose arguments are managed by synchronization.\n *\n * @private\n */\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Root-level mutation sink. The Math paragraph overrides it to notify the host.\n *\n * @private\n */\n OwnerHolder.prototype.rootMutated = function () {\n // no-op unless this object is the root\n };\n /**\n * Notifies the root that something below it changed.\n *\n * @private\n */\n OwnerHolder.prototype.notifyMutated = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var current = this;\n var next = current._owner;\n while (next instanceof OwnerHolder) {\n current = next;\n next = current._owner;\n }\n current.rootMutated();\n };\n OwnerHolder.prototype.propertyChanged = function () {\n this.notifyMutated();\n };\n return OwnerHolder;\n}(ExplicitPropertyStore));\nexport { OwnerHolder };\n","/**\n * Structural equality of preserved XML trees.\n */\n/**\n * Compares two XML nodes structurally (names, attributes, children, text).\n *\n * @param {OpenXmlChild} a First node.\n * @param {OpenXmlChild} b Second node.\n * @returns {boolean} True when both nodes are structurally identical.\n * @private\n */\nexport function xmlEqual(a, b) {\n if (a.kind === 'text' || b.kind === 'text') {\n return a.kind === b.kind && a.value === b.value;\n }\n var x = a;\n var y = b;\n return x.namespaceUri === y.namespaceUri && x.localName === y.localName\n && x.attributes.length === y.attributes.length\n && x.attributes.every(function (at, i) { return at.localName === y.attributes[i].localName\n && at.namespaceUri === y.attributes[i].namespaceUri && at.value === y.attributes[i].value; })\n && x.children.length === y.children.length\n && x.children.every(function (c, i) { return xmlEqual(c, y.children[i]); });\n}\n","/**\n * Minimal document-agnostic run and format used when no document adapter is supplied.\n */\nimport { xmlEqual } from './xml-equal';\n/**\n * Default character format of the standalone package. Keeps a parsed `m:ctrlPr` verbatim.\n *\n * @public\n */\nvar BasicRunFormat = /** @class */ (function () {\n /**\n * Creates the format.\n *\n * @param {OpenXmlElement} preservedXml Optional original `m:ctrlPr` element.\n */\n function BasicRunFormat(preservedXml) {\n this.preservedXml = preservedXml;\n }\n /**\n * Creates an independent copy.\n *\n * @returns {OfficeRunFormat} The copy.\n */\n BasicRunFormat.prototype.clone = function () {\n return new BasicRunFormat(this.preservedXml);\n };\n /**\n * Value equality with another format.\n *\n * @param {OfficeRunFormat} other The format to compare with.\n * @returns {boolean} True when both keep the same XML.\n */\n BasicRunFormat.prototype.equals = function (other) {\n var peer = other instanceof BasicRunFormat ? other : undefined;\n if (peer === undefined) {\n return false;\n }\n if (this.preservedXml === undefined || peer.preservedXml === undefined) {\n return this.preservedXml === peer.preservedXml;\n }\n return xmlEqual(this.preservedXml, peer.preservedXml);\n };\n return BasicRunFormat;\n}());\nexport { BasicRunFormat };\n/**\n * Default run of the standalone package. Keeps text and non-text children in source order.\n *\n * @public\n */\nvar BasicRun = /** @class */ (function () {\n function BasicRun() {\n /** Run character format. */\n this.characterFormat = new BasicRunFormat();\n /** Ordered run content: text segments and preserved children. */\n this.parts = [];\n }\n Object.defineProperty(BasicRun.prototype, \"text\", {\n /**\n * Concatenated text of all text segments.\n *\n * @returns {string} The run text.\n */\n get: function () {\n return this.parts.map(function (part) { return part.kind === 'text' ? part.value : ''; }).join('');\n },\n set: function (value) {\n var _this = this;\n var first = this.parts.map(function (part) { return part.kind; }).indexOf('text');\n var kept = this.parts.filter(function (part) { return part.kind !== 'text'; });\n var at = first < 0 ? kept.length : this.parts.slice(0, first).filter(function (p) { return p.kind !== 'text'; }).length;\n kept.splice(at, 0, { kind: 'text', value: value });\n this.parts.length = 0;\n kept.forEach(function (part) { return _this.parts.push(part); });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates an independent copy of the run.\n *\n * @returns {BasicRun} The copy.\n */\n BasicRun.prototype.clone = function () {\n var copy = new BasicRun();\n copy.characterFormat = this.characterFormat.clone();\n copy.runProperties = this.runProperties;\n this.parts.forEach(function (part) { return copy.parts.push(part); });\n return copy;\n };\n return BasicRun;\n}());\nexport { BasicRun };\n","/**\n * Generic owner-aware mutable collection used by every Math collection.\n */\n/**\n * Ordered collection that assigns/detaches owners and notifies the root on change.\n * Items are also reachable by numeric index (`collection[0]`).\n *\n * @public\n */\nvar OwnedCollection = /** @class */ (function () {\n function OwnedCollection(owner) {\n this.owner = owner;\n this._items = [];\n this._synced = 0;\n }\n Object.defineProperty(OwnedCollection.prototype, \"count\", {\n /** Number of items. */\n get: function () {\n return this._items.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the item at `index`.\n *\n * @param index\n */\n OwnedCollection.prototype.getItem = function (index) {\n this.checkIndex(index, this._items.length - 1);\n return this._items[index];\n };\n /**\n * Inserts an item at `index`; throws when it already belongs to a collection.\n *\n * @param index\n * @param item\n */\n OwnedCollection.prototype.insert = function (index, item) {\n this.insertItem(index, item);\n };\n /**\n * Removes the item; no-op when it is not in the collection.\n *\n * @param value\n */\n OwnedCollection.prototype.remove = function (value) {\n var index = this._items.indexOf(value);\n if (index >= 0) {\n this.removeAt(index);\n }\n };\n /**\n * Removes the item at `index`.\n *\n * @param index\n */\n OwnedCollection.prototype.removeAt = function (index) {\n this.checkIndex(index, this._items.length - 1);\n var removed = this._items.splice(index, 1)[0];\n this.detach(removed);\n this.afterChange();\n };\n /** Removes all items. */\n OwnedCollection.prototype.clear = function () {\n var _this = this;\n var removed = this._items.splice(0, this._items.length);\n removed.forEach(function (item) { return _this.detach(item); });\n this.afterChange();\n };\n /** Iterates the items in order. */\n OwnedCollection.prototype[Symbol.iterator] = function () {\n return this._items[Symbol.iterator]();\n };\n /**\n * Snapshot of the items.\n *\n * @private\n */\n OwnedCollection.prototype.toArray = function () {\n return this._items.slice();\n };\n /**\n * Appends without owner assignment or notification (view/internal use).\n *\n * @param item\n * @private\n */\n OwnedCollection.prototype.pushRaw = function (item) {\n this._items.push(item);\n this.syncIndexes();\n };\n /**\n * Inserts with owner assignment but without the matrix guard or validation (synchronization use).\n *\n * @param index\n * @param item\n * @private\n */\n OwnedCollection.prototype.insertRaw = function (index, item) {\n this.attach(item);\n this._items.splice(index, 0, item);\n this.syncIndexes();\n };\n /**\n * Assigns ownership of an item entering the collection.\n *\n * @param item\n */\n OwnedCollection.prototype.attach = function (item) {\n item.setOwner(this.owner);\n };\n /**\n * Removes by index and detaches without notification (synchronization use).\n *\n * @param index\n * @private\n */\n OwnedCollection.prototype.removeRawAt = function (index) {\n var removed = this._items.splice(index, 1)[0];\n this.detach(removed);\n this.syncIndexes();\n return removed;\n };\n /**\n * Inserts after validating index and ownership.\n *\n * @param index\n * @param item\n */\n OwnedCollection.prototype.insertItem = function (index, item) {\n this.checkIndex(index, this._items.length);\n if (this._items.indexOf(item) >= 0 || (item.ownerMathEntity !== undefined && item.ownerMathEntity !== this.owner)) {\n throw new Error('The item already belongs to a Math collection.');\n }\n item.setOwner(this.owner);\n this._items.splice(index, 0, item);\n this.afterChange();\n };\n /** Hook for subclasses after any structural change. */\n OwnedCollection.prototype.afterChange = function () {\n this.syncIndexes();\n this.owner.notifyMutated();\n };\n /**\n * Detaches a removed item.\n *\n * @param item\n */\n OwnedCollection.prototype.detach = function (item) {\n item.setOwner(undefined);\n };\n OwnedCollection.prototype.checkIndex = function (index, max) {\n if (!(index >= 0 && index <= max) || Math.floor(index) !== index) {\n throw new RangeError('Index ' + index + ' is out of range.');\n }\n };\n OwnedCollection.prototype.syncIndexes = function () {\n var self = this;\n for (var i = this._items.length; i < this._synced; i++) {\n delete self[i];\n }\n for (var i = 0; i < this._items.length; i++) {\n self[i] = this._items[i];\n }\n this._synced = this._items.length;\n };\n return OwnedCollection;\n}());\nexport { OwnedCollection };\n","/**\n * Property keys of the Office Math authoring model (same numbering as Compression).\n */\nexport var K = {\n AccentChar: 1, BarTop: 2,\n HideTop: 3, HideBottom: 4, HideRight: 5, HideLeft: 6,\n StrikeBLTR: 7, StrikeTLBR: 8, StrikeVertical: 9, StrikeHorizontal: 10,\n BoxAlign: 11, NoBreak: 12, EnableDifferential: 14, OperatorEmulator: 15,\n AlignAt: 16, BegChar: 17, EndChar: 18, NoRightChar: 19, NoLeftChar: 20,\n SeparatorChar: 21, Grow: 22, Shape: 23,\n EqArrAlign: 24, MaxDist: 25, ObjDist: 26, RowSpacing: 27, RowSpacingRule: 28,\n FractionType: 29, HasAlignTop: 30, GroupChar: 31, HasCharTop: 32,\n MatrixAlign: 33, ColumnWidth: 34, ColumnSpacingRule: 35, ColumnSpacing: 36, ColumnGap: 38, ColumnGapRule: 39, PlaceHoldHidden: 37,\n NAryChar: 41, HasGrow: 42, HideSubscript: 43, HideSuperscript: 44, SubSupLimit: 45,\n Show: 46, Smash: 47, Transparent: 48, ZeroAscent: 49, ZeroDescent: 50, ZeroWidth: 51,\n HideDegree: 51, SkipAlign: 52,\n HasAlignment: 53, HasLiteral: 54, HasNormalText: 55, Script: 56, Style: 57,\n ArgumentSize: 74, AlignPoint: 76, Justification: 77,\n LimitType: 80, ScriptType: 81\n};\n","/**\n * Math break (`m:brk`) and its collection.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { K } from './keys';\nimport { OwnerHolder } from './owner-holder';\nimport { OwnedCollection } from './collection';\n/**\n * Manual line break inside a Math run, box or run format.\n *\n * @public\n */\nvar OfficeMathBreak = /** @class */ (function (_super) {\n __extends(OfficeMathBreak, _super);\n function OfficeMathBreak() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(OfficeMathBreak.prototype, \"alignAt\", {\n /** Alignment point (`m:alnAt`) the next line aligns to. Default 0. */\n get: function () {\n return this.getProperty(K.AlignAt, function () { return 0; });\n },\n set: function (value) {\n this.setProperty(K.AlignAt, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBreak.prototype, \"hasExplicitAlignAt\", {\n /** Whether `alignAt` was set or parsed explicitly. */\n get: function () {\n return this.isExplicit(K.AlignAt);\n },\n enumerable: true,\n configurable: true\n });\n return OfficeMathBreak;\n}(OwnerHolder));\nexport { OfficeMathBreak };\n/**\n * Ordered collection of {@link OfficeMathBreak}.\n *\n * @public\n */\nvar OfficeMathBreakCollection = /** @class */ (function (_super) {\n __extends(OfficeMathBreakCollection, _super);\n function OfficeMathBreakCollection(owner) {\n return _super.call(this, owner) || this;\n }\n /**\n * Creates a break and appends it, or inserts it at `index`.\n *\n * @param index\n */\n OfficeMathBreakCollection.prototype.add = function (index) {\n var item = new OfficeMathBreak(this.owner);\n item.setOwner(undefined);\n this.insertItem(index === undefined ? this.count : index, item);\n return item;\n };\n return OfficeMathBreakCollection;\n}(OwnedCollection));\nexport { OfficeMathBreakCollection };\n","/**\n * Math run format (`m:rPr`).\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFontType, MathStyleType } from './enums';\nimport { K } from './keys';\nimport { OwnerHolder } from './owner-holder';\n/**\n * Math-specific run properties, separate from Word character formatting (`w:rPr`).\n *\n * @public\n */\nvar OfficeMathFormat = /** @class */ (function (_super) {\n __extends(OfficeMathFormat, _super);\n function OfficeMathFormat() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(OfficeMathFormat.prototype, \"hasAlignment\", {\n /** Aligns the run (`m:aln`). Default false. */\n get: function () { return this.getProperty(K.HasAlignment, function () { return false; }); },\n set: function (value) { this.setProperty(K.HasAlignment, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"hasLiteral\", {\n /** Literal text (`m:lit`). Default false. */\n get: function () { return this.getProperty(K.HasLiteral, function () { return false; }); },\n set: function (value) { this.setProperty(K.HasLiteral, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"hasNormalText\", {\n /** Normal text (`m:nor`). Default false. */\n get: function () { return this.getProperty(K.HasNormalText, function () { return false; }); },\n set: function (value) { this.setProperty(K.HasNormalText, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"font\", {\n /** Math font (`m:scr`). Default roman. */\n get: function () { return this.getProperty(K.Script, function () { return MathFontType.Roman; }); },\n set: function (value) { this.setProperty(K.Script, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"style\", {\n /** Math style (`m:sty`). Default italic. */\n get: function () { return this.getProperty(K.Style, function () { return MathStyleType.Italic; }); },\n set: function (value) { this.setProperty(K.Style, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"break\", {\n /** Optional manual break (`m:brk`). Not created automatically. */\n get: function () { return this._break; },\n set: function (value) {\n this._break = value;\n if (value !== undefined) {\n value.setOwner(this);\n }\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFormat.prototype, \"hasContent\", {\n /** Whether any `m:rPr` content must be written. */\n get: function () {\n var _this = this;\n return this._break !== undefined || [K.HasAlignment, K.HasLiteral, K.HasNormalText, K.Script, K.Style]\n .some(function (key) { return _this.isExplicit(key); });\n },\n enumerable: true,\n configurable: true\n });\n return OfficeMathFormat;\n}(OwnerHolder));\nexport { OfficeMathFormat };\n","/**\n * Base class of every Math function.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnerHolder } from './owner-holder';\n/**\n * Base of all concrete Math functions.\n *\n * @public\n */\nvar OfficeMathFunctionBase = /** @class */ (function (_super) {\n __extends(OfficeMathFunctionBase, _super);\n function OfficeMathFunctionBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(OfficeMathFunctionBase.prototype, \"controlProperties\", {\n /**\n * Character format of the function (`m:ctrlPr`). Created from the paragraph default on first access.\n */\n get: function () {\n if (this._controlProperties === undefined) {\n this._controlProperties = this.getDefaultControlProperties();\n }\n return this._controlProperties;\n },\n set: function (value) {\n this._controlProperties = value;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFunctionBase.prototype, \"hasControlProperties\", {\n /**\n * Whether control properties exist (assigned, parsed or accessed).\n *\n * @private\n */\n get: function () {\n return this._controlProperties !== undefined;\n },\n enumerable: true,\n configurable: true\n });\n OfficeMathFunctionBase.prototype.getDefaultControlProperties = function () {\n var entity = this.ownerMathEntity;\n while (entity !== undefined && !('defaultMathCharacterFormat' in entity)) {\n entity = entity.ownerMathEntity;\n }\n if (entity === undefined) {\n throw new Error('Math function is not attached to a Math paragraph.');\n }\n return entity.defaultMathCharacterFormat.clone();\n };\n return OfficeMathFunctionBase;\n}(OwnerHolder));\nexport { OfficeMathFunctionBase };\n","/**\n * Run element (`m:r`) holding a document-native run.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFunctionType } from './enums';\nimport { OfficeMathFunctionBase } from './function-base';\nimport { OfficeMathFormat } from './format';\nimport { BasicRun } from './basic';\n/**\n * Math run: native document run plus Math format (`m:rPr`).\n *\n * @public\n */\nvar OfficeMathRunElement = /** @class */ (function (_super) {\n __extends(OfficeMathRunElement, _super);\n function OfficeMathRunElement(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.RunElement;\n _this._mathFormat = new OfficeMathFormat(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathRunElement.prototype, \"item\", {\n /** The native document run. */\n get: function () { return this._item; },\n set: function (value) {\n this._item = value;\n if (value !== undefined) {\n value.ownerMathRunElement = this;\n }\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRunElement.prototype, \"text\", {\n /**\n * Text of the run (`m:t`). Uses the host adapter when the run is attached to a paragraph\n * that has one, otherwise a standalone run. Empty when no run exists yet.\n *\n * @returns {string} The run text.\n */\n get: function () {\n var adapter = this.findAdapter();\n if (this._item === undefined) {\n return '';\n }\n return adapter !== undefined ? adapter.getRunText(this._item) : this._item.text;\n },\n set: function (value) {\n var adapter = this.findAdapter();\n if (this._item === undefined) {\n this.item = adapter !== undefined ? adapter.createRun(this) : new BasicRun();\n }\n if (adapter !== undefined) {\n adapter.setRunText(this._item, value);\n this.notifyMutated();\n }\n else {\n this._item.text = value;\n this.notifyMutated();\n }\n },\n enumerable: true,\n configurable: true\n });\n OfficeMathRunElement.prototype.findAdapter = function () {\n var entity = this.ownerMathEntity;\n while (entity !== undefined) {\n var candidate = entity;\n if (candidate.adapter !== undefined) {\n return candidate.adapter;\n }\n entity = entity.ownerMathEntity;\n }\n return undefined;\n };\n Object.defineProperty(OfficeMathRunElement.prototype, \"mathFormat\", {\n /** Math run format (`m:rPr`). */\n get: function () { return this._mathFormat; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathRunElement;\n}(OfficeMathFunctionBase));\nexport { OfficeMathRunElement };\n","/**\n * Collection of equations (`OfficeMath`).\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnedCollection } from './collection';\nimport { OfficeMath } from './office-math';\n/**\n * Ordered collection of {@link OfficeMath} equations.\n *\n * @public\n */\nvar OfficeMathCollection = /** @class */ (function (_super) {\n __extends(OfficeMathCollection, _super);\n function OfficeMathCollection(owner) {\n return _super.call(this, owner) || this;\n }\n /**\n * Creates an equation and appends it, or inserts it at `index`.\n *\n * @param index\n */\n OfficeMathCollection.prototype.add = function (index) {\n var item = new OfficeMath();\n this.insertItem(index === undefined ? this.count : index, item);\n return item;\n };\n return OfficeMathCollection;\n}(OwnedCollection));\nexport { OfficeMathCollection };\n","/**\n * Multi-equation Math functions: delimiter, equation array, fraction, function, limit, n-ary, scripts.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFunctionType, MathDelimiterShapeType, MathFractionType, MathLimitType, MathScriptType, MathVerticalAlignment, SpacingRule } from './enums';\nimport { K } from './keys';\nimport { OfficeMathFunctionBase } from './function-base';\nimport { OfficeMath } from './office-math';\nimport { OfficeMathCollection } from './math-collection';\n/** Delimiter (`m:d`). @public */\nvar OfficeMathDelimiter = /** @class */ (function (_super) {\n __extends(OfficeMathDelimiter, _super);\n function OfficeMathDelimiter(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Delimiter;\n _this._equations = new OfficeMathCollection(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathDelimiter.prototype, \"beginCharacter\", {\n /** Opening character. Default `(`. */\n get: function () { return this.getProperty(K.BegChar, function () { return '('; }); },\n set: function (value) { this.setProperty(K.BegChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathDelimiter.prototype, \"endCharacter\", {\n /** Closing character. Default `)`. */\n get: function () { return this.getProperty(K.EndChar, function () { return ')'; }); },\n set: function (value) { this.setProperty(K.EndChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathDelimiter.prototype, \"separator\", {\n /** Separator character. Default `|`. */\n get: function () { return this.getProperty(K.SeparatorChar, function () { return '|'; }); },\n set: function (value) { this.setProperty(K.SeparatorChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathDelimiter.prototype, \"isGrow\", {\n /** Whether delimiters grow with content. Default true. */\n get: function () { return this.getProperty(K.Grow, function () { return true; }); },\n set: function (value) { this.setProperty(K.Grow, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathDelimiter.prototype, \"delimiterShape\", {\n /** Delimiter shape. Default centered. */\n get: function () { return this.getProperty(K.Shape, function () { return MathDelimiterShapeType.Centered; }); },\n set: function (value) { this.setProperty(K.Shape, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathDelimiter.prototype, \"equations\", {\n /** Argument equations. */\n get: function () { return this._equations; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathDelimiter;\n}(OfficeMathFunctionBase));\nexport { OfficeMathDelimiter };\n/**\n * Validates a row spacing value against its rule.\n *\n * @param value\n * @param rule\n * @private\n */\nexport function checkRowSpacing(value, rule) {\n if (rule === SpacingRule.Exactly && (value < 0 || value > 1584)) {\n throw new RangeError('RowSpacing must be between 0 pt and 1584 pt for Exactly spacing rule.');\n }\n if (rule === SpacingRule.Multiple && (value < 0 || value > 132)) {\n throw new RangeError('RowSpacing must be between 0 li and 132 li for Multiple spacing rule.');\n }\n}\n/** Equation array (`m:eqArr`). @public */\nvar OfficeMathEquationArray = /** @class */ (function (_super) {\n __extends(OfficeMathEquationArray, _super);\n function OfficeMathEquationArray(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.EquationArray;\n _this._equations = new OfficeMathCollection(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathEquationArray.prototype, \"verticalAlignment\", {\n /** Vertical alignment. Default center. */\n get: function () { return this.getProperty(K.EqArrAlign, function () { return MathVerticalAlignment.Center; }); },\n set: function (value) { this.setProperty(K.EqArrAlign, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathEquationArray.prototype, \"expandEquationContainer\", {\n /** Expand container. Default false. */\n get: function () { return this.getProperty(K.MaxDist, function () { return false; }); },\n set: function (value) { this.setProperty(K.MaxDist, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathEquationArray.prototype, \"expandEquationContent\", {\n /** Expand content. Default false. */\n get: function () { return this.getProperty(K.ObjDist, function () { return false; }); },\n set: function (value) { this.setProperty(K.ObjDist, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathEquationArray.prototype, \"rowSpacing\", {\n /** Row spacing; unit depends on `rowSpacingRule` (points for Exactly, lines for Multiple). Default 0. */\n get: function () { return this.getProperty(K.RowSpacing, function () { return 0; }); },\n set: function (value) {\n checkRowSpacing(value, this.rowSpacingRule);\n this.setProperty(K.RowSpacing, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathEquationArray.prototype, \"rowSpacingRule\", {\n /** Row spacing rule. Default single. */\n get: function () { return this.getProperty(K.RowSpacingRule, function () { return SpacingRule.Single; }); },\n set: function (value) { this.setProperty(K.RowSpacingRule, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathEquationArray.prototype, \"equations\", {\n /** Row equations. */\n get: function () { return this._equations; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathEquationArray;\n}(OfficeMathFunctionBase));\nexport { OfficeMathEquationArray };\n/** Fraction (`m:f`). @public */\nvar OfficeMathFraction = /** @class */ (function (_super) {\n __extends(OfficeMathFraction, _super);\n function OfficeMathFraction(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Fraction;\n _this._denominator = new OfficeMath(_this);\n _this._numerator = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathFraction.prototype, \"fractionType\", {\n /** Fraction type. Default normal bar. */\n get: function () { return this.getProperty(K.FractionType, function () { return MathFractionType.NormalFractionBar; }); },\n set: function (value) { this.setProperty(K.FractionType, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFraction.prototype, \"numerator\", {\n /** Numerator. */\n get: function () { return this._numerator; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFraction.prototype, \"denominator\", {\n /** Denominator. */\n get: function () { return this._denominator; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathFraction;\n}(OfficeMathFunctionBase));\nexport { OfficeMathFraction };\n/** Function application (`m:func`). @public */\nvar OfficeMathFunction = /** @class */ (function (_super) {\n __extends(OfficeMathFunction, _super);\n function OfficeMathFunction(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Function;\n _this._equation = new OfficeMath(_this);\n _this._functionName = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathFunction.prototype, \"equation\", {\n /** Argument equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathFunction.prototype, \"functionName\", {\n /** Function name equation. */\n get: function () { return this._functionName; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathFunction;\n}(OfficeMathFunctionBase));\nexport { OfficeMathFunction };\n/** Lower or upper limit (`m:limLow` / `m:limUpp`). @public */\nvar OfficeMathLimit = /** @class */ (function (_super) {\n __extends(OfficeMathLimit, _super);\n function OfficeMathLimit(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Limit;\n _this._equation = new OfficeMath(_this);\n _this._limit = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathLimit.prototype, \"limitType\", {\n /** Lower or upper limit. Default lower. */\n get: function () { return this.getProperty(K.LimitType, function () { return MathLimitType.LowerLimit; }); },\n set: function (value) { this.setProperty(K.LimitType, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathLimit.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathLimit.prototype, \"limit\", {\n /** Limit equation. */\n get: function () { return this._limit; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathLimit;\n}(OfficeMathFunctionBase));\nexport { OfficeMathLimit };\n/** N-ary operator (`m:nary`). @public */\nvar OfficeMathNArray = /** @class */ (function (_super) {\n __extends(OfficeMathNArray, _super);\n function OfficeMathNArray(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.NArray;\n _this._equation = new OfficeMath(_this);\n _this._subscript = new OfficeMath(_this);\n _this._superscript = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathNArray.prototype, \"nArrayCharacter\", {\n /** Operator character. Default U+222B. */\n get: function () { return this.getProperty(K.NAryChar, function () { return String.fromCharCode(8747); }); },\n set: function (value) { this.setProperty(K.NAryChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"hasGrow\", {\n /** Whether the operator grows. Default false. */\n get: function () { return this.getProperty(K.HasGrow, function () { return false; }); },\n set: function (value) { this.setProperty(K.HasGrow, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"hideLowerLimit\", {\n /** Hides the lower limit. Default false. */\n get: function () { return this.getProperty(K.HideSubscript, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideSubscript, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"hideUpperLimit\", {\n /** Hides the upper limit. Default false. */\n get: function () { return this.getProperty(K.HideSuperscript, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideSuperscript, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"subSuperscriptLimit\", {\n /** Limits as sub/superscript. Default true for the integral character, false otherwise. */\n get: function () {\n var _this = this;\n return this.getProperty(K.SubSupLimit, function () { return _this.nArrayCharacter === String.fromCharCode(8747); });\n },\n set: function (value) { this.setProperty(K.SubSupLimit, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"equation\", {\n /** Operand equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"subscript\", {\n /** Lower limit equation. */\n get: function () { return this._subscript; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathNArray.prototype, \"superscript\", {\n /** Upper limit equation. */\n get: function () { return this._superscript; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathNArray;\n}(OfficeMathFunctionBase));\nexport { OfficeMathNArray };\n/** Single subscript or superscript (`m:sSub` / `m:sSup`). @public */\nvar OfficeMathScript = /** @class */ (function (_super) {\n __extends(OfficeMathScript, _super);\n function OfficeMathScript(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.SubSuperscript;\n _this._equation = new OfficeMath(_this);\n _this._script = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathScript.prototype, \"scriptType\", {\n /** Subscript or superscript. Default superscript. */\n get: function () { return this.getProperty(K.ScriptType, function () { return MathScriptType.Superscript; }); },\n set: function (value) { this.setProperty(K.ScriptType, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathScript.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathScript.prototype, \"script\", {\n /** Script equation. */\n get: function () { return this._script; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathScript;\n}(OfficeMathFunctionBase));\nexport { OfficeMathScript };\n/** Combined right sub/superscript (`m:sSubSup`). @public */\nvar OfficeMathRightScript = /** @class */ (function (_super) {\n __extends(OfficeMathRightScript, _super);\n function OfficeMathRightScript(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.RightSubSuperscript;\n _this._equation = new OfficeMath(_this);\n _this._subscript = new OfficeMath(_this);\n _this._superscript = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathRightScript.prototype, \"isSkipAlign\", {\n /** Align scripts. Default true. */\n get: function () { return this.getProperty(K.SkipAlign, function () { return true; }); },\n set: function (value) { this.setProperty(K.SkipAlign, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRightScript.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRightScript.prototype, \"subscript\", {\n /** Subscript equation. */\n get: function () { return this._subscript; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRightScript.prototype, \"superscript\", {\n /** Superscript equation. */\n get: function () { return this._superscript; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathRightScript;\n}(OfficeMathFunctionBase));\nexport { OfficeMathRightScript };\n/** Left sub/superscript (`m:sPre`). @public */\nvar OfficeMathLeftScript = /** @class */ (function (_super) {\n __extends(OfficeMathLeftScript, _super);\n function OfficeMathLeftScript(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.LeftSubSuperscript;\n _this._equation = new OfficeMath(_this);\n _this._subscript = new OfficeMath(_this);\n _this._superscript = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathLeftScript.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathLeftScript.prototype, \"subscript\", {\n /** Subscript equation. */\n get: function () { return this._subscript; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathLeftScript.prototype, \"superscript\", {\n /** Superscript equation. */\n get: function () { return this._superscript; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathLeftScript;\n}(OfficeMathFunctionBase));\nexport { OfficeMathLeftScript };\n","/**\n * Matrix row.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnerHolder } from './owner-holder';\nimport { OwnedCollection } from './collection';\n/**\n * Cells of a row. Managed by matrix synchronization, so direct mutation is rejected.\n *\n * @public\n */\nvar OfficeMathMatrixRowArguments = /** @class */ (function (_super) {\n __extends(OfficeMathMatrixRowArguments, _super);\n function OfficeMathMatrixRowArguments(owner) {\n return _super.call(this, owner) || this;\n }\n /** Not supported: cells are created when columns are added. */\n OfficeMathMatrixRowArguments.prototype.add = function () { throw new Error('Cells are managed by the matrix; add a column instead.'); };\n /** Not supported: cells are managed by the matrix. */\n OfficeMathMatrixRowArguments.prototype.insert = function () { throw new Error('Cells are managed by the matrix.'); };\n /** Not supported: cells are managed by the matrix. */\n OfficeMathMatrixRowArguments.prototype.removeAt = function () { throw new Error('Cells are managed by the matrix; remove a column instead.'); };\n /** Not supported: cells are managed by the matrix. */\n OfficeMathMatrixRowArguments.prototype.remove = function () { throw new Error('Cells are managed by the matrix; remove a column instead.'); };\n /** Not supported: cells are managed by the matrix. */\n OfficeMathMatrixRowArguments.prototype.clear = function () { throw new Error('Cells are managed by the matrix; remove columns instead.'); };\n return OfficeMathMatrixRowArguments;\n}(OwnedCollection));\nexport { OfficeMathMatrixRowArguments };\n/**\n * Row of a matrix holding one cell per column.\n *\n * @public\n */\nvar OfficeMathMatrixRow = /** @class */ (function (_super) {\n __extends(OfficeMathMatrixRow, _super);\n function OfficeMathMatrixRow(owner) {\n var _this = _super.call(this, owner) || this;\n _this._arguments = new OfficeMathMatrixRowArguments(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathMatrixRow.prototype, \"arguments\", {\n /** Cells of the row. */\n get: function () { return this._arguments; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrixRow.prototype, \"rowIndex\", {\n /** Index of the row in its matrix, or -1 when detached. */\n get: function () {\n var matrix = this.ownerMathEntity;\n return matrix === undefined ? -1 : matrix.rowItems.indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n return OfficeMathMatrixRow;\n}(OwnerHolder));\nexport { OfficeMathMatrixRow };\n","/**\n * Matrix column.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnerHolder } from './owner-holder';\nimport { MathHorizontalAlignment } from './enums';\nimport { K } from './keys';\n/**\n * Read-only view of the cells of one column.\n *\n * @public\n */\nvar OfficeMathMatrixColumnArguments = /** @class */ (function () {\n function OfficeMathMatrixColumnArguments(items) {\n var _this = this;\n this._items = items;\n items.forEach(function (item, i) { _this[i] = item; });\n }\n Object.defineProperty(OfficeMathMatrixColumnArguments.prototype, \"count\", {\n /** Number of cells. */\n get: function () { return this._items.length; },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the cell at `index`.\n *\n * @param index\n */\n OfficeMathMatrixColumnArguments.prototype.getItem = function (index) {\n if (!(index >= 0 && index < this._items.length)) {\n throw new RangeError('Index ' + index + ' is out of range.');\n }\n return this._items[index];\n };\n /** Not supported: cells are created when rows are added. */\n OfficeMathMatrixColumnArguments.prototype.add = function () { throw new Error('Cells are managed by the matrix; add a row instead.'); };\n /** Iterates the cells top to bottom. */\n OfficeMathMatrixColumnArguments.prototype[Symbol.iterator] = function () { return this._items[Symbol.iterator](); };\n return OfficeMathMatrixColumnArguments;\n}());\nexport { OfficeMathMatrixColumnArguments };\n/**\n * Column of a matrix.\n *\n * @public\n */\nvar OfficeMathMatrixColumn = /** @class */ (function (_super) {\n __extends(OfficeMathMatrixColumn, _super);\n function OfficeMathMatrixColumn(owner) {\n return _super.call(this, owner) || this;\n }\n Object.defineProperty(OfficeMathMatrixColumn.prototype, \"horizontalAlignment\", {\n /** Horizontal alignment of the column. Default center. */\n get: function () {\n return this.getProperty(K.MatrixAlign, function () { return MathHorizontalAlignment.Center; });\n },\n set: function (value) { this.setProperty(K.MatrixAlign, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrixColumn.prototype, \"columnIndex\", {\n /** Index of the column in its matrix, or -1 when detached. */\n get: function () {\n var matrix = this.ownerMathEntity;\n return matrix === undefined ? -1 : matrix.columns.toArray().indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrixColumn.prototype, \"arguments\", {\n /** Cells of this column, one per row. */\n get: function () {\n var matrix = this.ownerMathEntity;\n var index = this.columnIndex;\n var cells = matrix === undefined ? [] : matrix.rowItems.map(function (row) { return row.arguments.getItem(index); });\n return new OfficeMathMatrixColumnArguments(cells);\n },\n enumerable: true,\n configurable: true\n });\n return OfficeMathMatrixColumn;\n}(OwnerHolder));\nexport { OfficeMathMatrixColumn };\n","/**\n * Matrix row and column collections that keep rows and columns synchronized.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnedCollection } from './collection';\nimport { OfficeMath } from './office-math';\nimport { OfficeMathMatrixRow } from './matrix-row';\nimport { OfficeMathMatrixColumn } from './matrix-column';\n/**\n * Rows of a matrix. New rows receive one cell per existing column.\n *\n * @public\n */\nvar OfficeMathMatrixRowCollection = /** @class */ (function (_super) {\n __extends(OfficeMathMatrixRowCollection, _super);\n function OfficeMathMatrixRowCollection(matrix) {\n var _this = _super.call(this, matrix) || this;\n _this.matrix = matrix;\n return _this;\n }\n /**\n * Creates a row and appends it, or inserts it at `index`.\n *\n * @param index\n */\n OfficeMathMatrixRowCollection.prototype.add = function (index) {\n var row = new OfficeMathMatrixRow();\n var columnCount = this.matrix.columns.count;\n for (var i = 0; i < columnCount; i++) {\n row.arguments.pushRaw(new OfficeMath(row));\n }\n this.insertItem(index === undefined ? this.count : index, row);\n return row;\n };\n OfficeMathMatrixRowCollection.prototype.afterChange = function () {\n this.matrix.relink();\n _super.prototype.afterChange.call(this);\n };\n return OfficeMathMatrixRowCollection;\n}(OwnedCollection));\nexport { OfficeMathMatrixRowCollection };\n/**\n * Columns of a matrix. Adding or removing a column adds or removes the cell in every row.\n *\n * @public\n */\nvar OfficeMathMatrixColumnCollection = /** @class */ (function (_super) {\n __extends(OfficeMathMatrixColumnCollection, _super);\n function OfficeMathMatrixColumnCollection(matrix) {\n var _this = _super.call(this, matrix) || this;\n _this.matrix = matrix;\n return _this;\n }\n /**\n * Creates a column and appends it, or inserts it at `index`.\n *\n * @param index\n */\n OfficeMathMatrixColumnCollection.prototype.add = function (index) {\n var position = index === undefined ? this.count : index;\n var column = new OfficeMathMatrixColumn();\n this.insertItem(position, column);\n return column;\n };\n /**\n * Removes the column and its cell in every row.\n *\n * @param index\n */\n OfficeMathMatrixColumnCollection.prototype.removeAt = function (index) {\n _super.prototype.removeAt.call(this, index);\n this.matrix.rowItems.forEach(function (row) { return row.arguments.removeRawAt(index); });\n this.matrix.relink();\n };\n /** Removes all columns and every cell. */\n OfficeMathMatrixColumnCollection.prototype.clear = function () {\n _super.prototype.clear.call(this);\n this.matrix.rowItems.forEach(function (row) {\n while (row.arguments.count > 0) {\n row.arguments.removeRawAt(row.arguments.count - 1);\n }\n });\n };\n OfficeMathMatrixColumnCollection.prototype.afterChange = function () {\n this.matrix.relink();\n _super.prototype.afterChange.call(this);\n };\n /**\n * Adds the matching cell to every row once the column is inserted.\n *\n * @param index\n * @param item\n */\n OfficeMathMatrixColumnCollection.prototype.insertItem = function (index, item) {\n _super.prototype.insertItem.call(this, index, item);\n this.matrix.rowItems.forEach(function (row) { return row.arguments.insertRaw(index, new OfficeMath(row)); });\n this.matrix.relink();\n };\n return OfficeMathMatrixColumnCollection;\n}(OwnedCollection));\nexport { OfficeMathMatrixColumnCollection };\n","/**\n * Matrix (`m:m`) function.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFunctionType, MathVerticalAlignment, SpacingRule } from './enums';\nimport { K } from './keys';\nimport { checkRowSpacing } from './functions-multi';\nimport { OfficeMathFunctionBase } from './function-base';\nimport { OfficeMathMatrixRowCollection, OfficeMathMatrixColumnCollection } from './matrix-collections';\n/**\n * Matrix whose rows and columns are kept synchronized: every row always has one cell per column.\n *\n * @public\n */\nvar OfficeMathMatrix = /** @class */ (function (_super) {\n __extends(OfficeMathMatrix, _super);\n function OfficeMathMatrix(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Matrix;\n _this._rows = new OfficeMathMatrixRowCollection(_this);\n _this._columns = new OfficeMathMatrixColumnCollection(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathMatrix.prototype, \"rows\", {\n /** Rows of the matrix. */\n get: function () { return this._rows; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columns\", {\n /** Columns of the matrix. */\n get: function () { return this._columns; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"verticalAlignment\", {\n /** Vertical alignment. Default center. */\n get: function () { return this.getProperty(K.MatrixAlign, function () { return MathVerticalAlignment.Center; }); },\n set: function (value) { this.setProperty(K.MatrixAlign, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"hidePlaceholder\", {\n /** Hides placeholders for empty cells. Default false. */\n get: function () { return this.getProperty(K.PlaceHoldHidden, function () { return false; }); },\n set: function (value) { this.setProperty(K.PlaceHoldHidden, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"rowSpacing\", {\n /** Row spacing; unit depends on `rowSpacingRule`. Default 0. */\n get: function () { return this.getProperty(K.RowSpacing, function () { return 0; }); },\n set: function (value) {\n checkRowSpacing(value, this.rowSpacingRule);\n this.setProperty(K.RowSpacing, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"rowSpacingRule\", {\n /** Row spacing rule (`m:rSpRule`). Default single. */\n get: function () { return this.getProperty(K.RowSpacingRule, function () { return SpacingRule.Single; }); },\n set: function (value) { this.setProperty(K.RowSpacingRule, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnGap\", {\n /** Column gap (`m:cGp`). Default 0. */\n get: function () { return this.getProperty(K.ColumnGap, function () { return 0; }); },\n set: function (value) { this.setProperty(K.ColumnGap, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnGapRule\", {\n /** Column gap rule (`m:cGpRule`). Default single. */\n get: function () { return this.getProperty(K.ColumnGapRule, function () { return SpacingRule.Single; }); },\n set: function (value) { this.setProperty(K.ColumnGapRule, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"hidePlaceHolders\", {\n /** DocIO-compatible alias of `hidePlaceholder` (`m:plcHide`). */\n get: function () { return this.hidePlaceholder; },\n set: function (value) { this.hidePlaceholder = value; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnSpacingRule\", {\n /** DocIO-compatible alias of `columnGapRule` (`m:cGpRule`). */\n get: function () { return this.columnGapRule; },\n set: function (value) { this.columnGapRule = value; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnWidth\", {\n /** DocIO-compatible name for the column width (`m:cSp`); shares storage with `columnSpacing`. */\n get: function () { return this.columnSpacing; },\n set: function (value) { this.columnSpacing = value; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnSpacing\", {\n /** Column spacing (`m:cSp`). Default 0. */\n get: function () { return this.getProperty(K.ColumnSpacing, function () { return 0; }); },\n set: function (value) { this.setProperty(K.ColumnSpacing, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathMatrix.prototype, \"columnGroups\", {\n /** Column groups: consecutive columns with identical alignment, in order. */\n get: function () {\n var groups = [];\n this._columns.toArray().forEach(function (column, index) {\n var last = groups[groups.length - 1];\n if (last !== undefined && last.horizontalAlignment === column.horizontalAlignment) {\n last.count++;\n }\n else {\n groups.push({ startIndex: index, count: 1, horizontalAlignment: column.horizontalAlignment });\n }\n });\n return groups;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Re-links every cell to its row and column after a structural change.\n *\n * @private\n */\n OfficeMathMatrix.prototype.relink = function () {\n var columns = this._columns.toArray();\n this._rows.toArray().forEach(function (row) {\n row.arguments.toArray().forEach(function (cell, i) { return cell.setOwnerColumn(columns[i]); });\n });\n };\n Object.defineProperty(OfficeMathMatrix.prototype, \"rowItems\", {\n /** @private */\n get: function () { return this._rows.toArray(); },\n enumerable: true,\n configurable: true\n });\n return OfficeMathMatrix;\n}(OfficeMathFunctionBase));\nexport { OfficeMathMatrix };\n","/**\n * Collection and factory of Math functions.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnedCollection } from './collection';\nimport { MathFunctionType, MathLimitType, MathScriptType } from './enums';\nimport { OfficeMathRunElement } from './run-element';\nimport { OfficeMathAccent, OfficeMathBar, OfficeMathBorderBox, OfficeMathBox, OfficeMathGroupCharacter, OfficeMathPhantom, OfficeMathRadical } from './functions-basic';\nimport { OfficeMathDelimiter, OfficeMathEquationArray, OfficeMathFraction, OfficeMathFunction, OfficeMathLimit, OfficeMathNArray, OfficeMathScript, OfficeMathRightScript, OfficeMathLeftScript } from './functions-multi';\nimport { OfficeMathMatrix } from './matrix';\n/**\n * Creates an unattached function of the given type.\n *\n * @param type\n * @private\n */\nexport function createMathFunction(type) {\n switch (type) {\n case MathFunctionType.Accent: return new OfficeMathAccent();\n case MathFunctionType.Bar: return new OfficeMathBar();\n case MathFunctionType.BorderBox: return new OfficeMathBorderBox();\n case MathFunctionType.Box: return new OfficeMathBox();\n case MathFunctionType.Delimiter: return new OfficeMathDelimiter();\n case MathFunctionType.EquationArray: return new OfficeMathEquationArray();\n case MathFunctionType.Fraction: return new OfficeMathFraction();\n case MathFunctionType.Function: return new OfficeMathFunction();\n case MathFunctionType.GroupCharacter: return new OfficeMathGroupCharacter();\n case MathFunctionType.Limit: return new OfficeMathLimit();\n case MathFunctionType.Matrix: return new OfficeMathMatrix();\n case MathFunctionType.NArray: return new OfficeMathNArray();\n case MathFunctionType.Phantom: return new OfficeMathPhantom();\n case MathFunctionType.Radical: return new OfficeMathRadical();\n case MathFunctionType.LeftSubSuperscript: return new OfficeMathLeftScript();\n case MathFunctionType.SubSuperscript: return new OfficeMathScript();\n case MathFunctionType.RightSubSuperscript: return new OfficeMathRightScript();\n case MathFunctionType.RunElement: return new OfficeMathRunElement();\n default: throw new RangeError('Unknown Math function type: ' + String(type));\n }\n}\n/**\n * Ordered collection of Math functions with a type-based factory.\n *\n * @public\n */\nvar OfficeMathFunctionCollection = /** @class */ (function (_super) {\n __extends(OfficeMathFunctionCollection, _super);\n function OfficeMathFunctionCollection(owner) {\n return _super.call(this, owner) || this;\n }\n /**\n * Creates a function of the given type and appends it, or inserts it at `index`.\n *\n * @param type\n * @param index\n */\n OfficeMathFunctionCollection.prototype.add = function (type, index) {\n var item = createMathFunction(type);\n this.insertItem(index === undefined ? this.count : index, item);\n return item;\n };\n return OfficeMathFunctionCollection;\n}(OwnedCollection));\nexport { OfficeMathFunctionCollection };\nexport { MathLimitType, MathScriptType };\n","/**\n * Office Math equation (`m:oMath`): a container of Math functions.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnerHolder } from './owner-holder';\nimport { OfficeMathFunctionCollection } from './function-collection';\nimport { OfficeMathBreakCollection } from './break';\nimport { K } from './keys';\n/**\n * Equation that holds an ordered list of Math functions.\n *\n * @public\n */\nvar OfficeMath = /** @class */ (function (_super) {\n __extends(OfficeMath, _super);\n function OfficeMath(owner) {\n var _this = _super.call(this, owner) || this;\n _this._functions = new OfficeMathFunctionCollection(_this);\n _this._breaks = new OfficeMathBreakCollection(_this);\n return _this;\n }\n Object.defineProperty(OfficeMath.prototype, \"breaks\", {\n /** Manual breaks owned by this equation; a box references one of them. */\n get: function () { return this._breaks; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"functions\", {\n /** Functions of this equation. */\n get: function () { return this._functions; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"argumentSize\", {\n /**\n * Argument size (`m:argPr/m:argSz`), from -2 to 2. Default 0.\n *\n * @returns {number} The argument size.\n */\n get: function () { return this.getProperty(K.ArgumentSize, function () { return 0; }); },\n set: function (value) {\n if (value < -2 || value > 2 || Math.floor(value) !== value) {\n throw new RangeError('ArgumentSize must be an integer between -2 and 2.');\n }\n this.setProperty(K.ArgumentSize, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"preservedControlProperties\", {\n /**\n * The original `m:ctrlPr` of an argument, kept verbatim for round trips.\n *\n * @returns {OpenXmlElement | undefined} The preserved element, when present.\n * @private\n */\n get: function () { return this._preservedControl; },\n set: function (value) {\n this._preservedControl = value;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"ownerMath\", {\n /** The nearest enclosing equation, or `undefined` for a top-level equation. */\n get: function () {\n var entity = this.ownerMathEntity;\n while (entity !== undefined) {\n if (entity instanceof OfficeMath) {\n return entity;\n }\n entity = entity.ownerMathEntity;\n }\n return undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"ownerRow\", {\n /** The matrix row that owns this cell, or `undefined` when it is not a matrix cell. */\n get: function () {\n var owner = this.ownerMathEntity;\n return owner !== undefined && 'arguments' in owner ? owner : undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMath.prototype, \"ownerColumn\", {\n /** The matrix column that contains this cell, or `undefined` when it is not a matrix cell. */\n get: function () { return this._column; },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n *\n * @param {ColumnLink | undefined} column The column the equation belongs to.\n * @returns {void}\n */\n OfficeMath.prototype.setOwnerColumn = function (column) { this._column = column; };\n return OfficeMath;\n}(OwnerHolder));\nexport { OfficeMath };\n","/**\n * Single-equation Math functions: accent, bar, border box, box, group character, phantom, radical.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFunctionType } from './enums';\nimport { K } from './keys';\nimport { OfficeMathFunctionBase } from './function-base';\nimport { OfficeMath } from './office-math';\n/** Accent (`m:acc`). @public */\nvar OfficeMathAccent = /** @class */ (function (_super) {\n __extends(OfficeMathAccent, _super);\n function OfficeMathAccent(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Accent;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathAccent.prototype, \"accentCharacter\", {\n /** Accent character. Default U+0302. */\n get: function () { return this.getProperty(K.AccentChar, function () { return String.fromCharCode(770); }); },\n set: function (value) { this.setProperty(K.AccentChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathAccent.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathAccent;\n}(OfficeMathFunctionBase));\nexport { OfficeMathAccent };\n/** Bar (`m:bar`). @public */\nvar OfficeMathBar = /** @class */ (function (_super) {\n __extends(OfficeMathBar, _super);\n function OfficeMathBar(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Bar;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathBar.prototype, \"barTop\", {\n /** Whether the bar is drawn above the base. Default false. */\n get: function () { return this.getProperty(K.BarTop, function () { return false; }); },\n set: function (value) { this.setProperty(K.BarTop, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBar.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathBar;\n}(OfficeMathFunctionBase));\nexport { OfficeMathBar };\n/** Border box (`m:borderBox`). @public */\nvar OfficeMathBorderBox = /** @class */ (function (_super) {\n __extends(OfficeMathBorderBox, _super);\n function OfficeMathBorderBox(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.BorderBox;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathBorderBox.prototype, \"hideTop\", {\n /** Hides the top border. Default false. */\n get: function () { return this.getProperty(K.HideTop, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideTop, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"hideBottom\", {\n /** Hides the bottom border. Default false. */\n get: function () { return this.getProperty(K.HideBottom, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideBottom, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"hideLeft\", {\n /** Hides the left border. Default false. */\n get: function () { return this.getProperty(K.HideLeft, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideLeft, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"hideRight\", {\n /** Hides the right border. Default false. */\n get: function () { return this.getProperty(K.HideRight, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideRight, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"strikeDiagonalUp\", {\n /** Diagonal strike from bottom-left to top-right. Default false. */\n get: function () { return this.getProperty(K.StrikeBLTR, function () { return false; }); },\n set: function (value) { this.setProperty(K.StrikeBLTR, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"strikeDiagonalDown\", {\n /** Diagonal strike from top-left to bottom-right. Default false. */\n get: function () { return this.getProperty(K.StrikeTLBR, function () { return false; }); },\n set: function (value) { this.setProperty(K.StrikeTLBR, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"strikeVertical\", {\n /** Vertical strike. Default false. */\n get: function () { return this.getProperty(K.StrikeVertical, function () { return false; }); },\n set: function (value) { this.setProperty(K.StrikeVertical, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"strikeHorizontal\", {\n /** Horizontal strike. Default false. */\n get: function () { return this.getProperty(K.StrikeHorizontal, function () { return false; }); },\n set: function (value) { this.setProperty(K.StrikeHorizontal, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBorderBox.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathBorderBox;\n}(OfficeMathFunctionBase));\nexport { OfficeMathBorderBox };\n/** Box (`m:box`). @public */\nvar OfficeMathBox = /** @class */ (function (_super) {\n __extends(OfficeMathBox, _super);\n function OfficeMathBox(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Box;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathBox.prototype, \"alignment\", {\n /** Operator alignment. Default false. */\n get: function () { return this.getProperty(K.BoxAlign, function () { return false; }); },\n set: function (value) { this.setProperty(K.BoxAlign, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBox.prototype, \"enableDifferential\", {\n /** Differential. Default false. */\n get: function () { return this.getProperty(K.EnableDifferential, function () { return false; }); },\n set: function (value) { this.setProperty(K.EnableDifferential, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBox.prototype, \"noBreak\", {\n /** Disallows line breaks inside the box. Default true. */\n get: function () { return this.getProperty(K.NoBreak, function () { return true; }); },\n set: function (value) { this.setProperty(K.NoBreak, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBox.prototype, \"operatorEmulator\", {\n /** Operator emulator. Default false. */\n get: function () { return this.getProperty(K.OperatorEmulator, function () { return false; }); },\n set: function (value) { this.setProperty(K.OperatorEmulator, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBox.prototype, \"break\", {\n /** Optional manual break. Not created automatically. */\n get: function () { return this._break; },\n set: function (value) {\n this._break = value;\n this.notifyMutated();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathBox.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathBox;\n}(OfficeMathFunctionBase));\nexport { OfficeMathBox };\n/** Group character (`m:groupChr`). @public */\nvar OfficeMathGroupCharacter = /** @class */ (function (_super) {\n __extends(OfficeMathGroupCharacter, _super);\n function OfficeMathGroupCharacter(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.GroupCharacter;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathGroupCharacter.prototype, \"hasAlignTop\", {\n /** Whether the group is aligned top. Default true. */\n get: function () { return this.getProperty(K.HasAlignTop, function () { return true; }); },\n set: function (value) { this.setProperty(K.HasAlignTop, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathGroupCharacter.prototype, \"hasCharacterTop\", {\n /** Whether the character is drawn on top. Default false. */\n get: function () { return this.getProperty(K.HasCharTop, function () { return false; }); },\n set: function (value) { this.setProperty(K.HasCharTop, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathGroupCharacter.prototype, \"groupCharacter\", {\n /** Grouping character. Default U+23DF. */\n get: function () { return this.getProperty(K.GroupChar, function () { return String.fromCharCode(9183); }); },\n set: function (value) { this.setProperty(K.GroupChar, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathGroupCharacter.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathGroupCharacter;\n}(OfficeMathFunctionBase));\nexport { OfficeMathGroupCharacter };\n/** Phantom (`m:phant`). @public */\nvar OfficeMathPhantom = /** @class */ (function (_super) {\n __extends(OfficeMathPhantom, _super);\n function OfficeMathPhantom(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Phantom;\n _this._equation = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathPhantom.prototype, \"show\", {\n /** Shows the phantom content. Default true. */\n get: function () { return this.getProperty(K.Show, function () { return true; }); },\n set: function (value) { this.setProperty(K.Show, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"transparent\", {\n /** Transparent. Default false. */\n get: function () { return this.getProperty(K.Transparent, function () { return false; }); },\n set: function (value) { this.setProperty(K.Transparent, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"zeroAscent\", {\n /** Zero ascent. Default false. */\n get: function () { return this.getProperty(K.ZeroAscent, function () { return false; }); },\n set: function (value) { this.setProperty(K.ZeroAscent, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"zeroDescent\", {\n /** Zero descent. Default false. */\n get: function () { return this.getProperty(K.ZeroDescent, function () { return false; }); },\n set: function (value) { this.setProperty(K.ZeroDescent, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"zeroWidth\", {\n /** Zero width. Default false. */\n get: function () { return this.getProperty(K.ZeroWidth, function () { return false; }); },\n set: function (value) { this.setProperty(K.ZeroWidth, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"smash\", {\n /** Smash. Default false. */\n get: function () { return this.getProperty(K.Smash, function () { return false; }); },\n set: function (value) { this.setProperty(K.Smash, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathPhantom.prototype, \"equation\", {\n /** Base equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathPhantom;\n}(OfficeMathFunctionBase));\nexport { OfficeMathPhantom };\n/** Radical (`m:rad`). @public */\nvar OfficeMathRadical = /** @class */ (function (_super) {\n __extends(OfficeMathRadical, _super);\n function OfficeMathRadical(owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Radical;\n _this._equation = new OfficeMath(_this);\n _this._degree = new OfficeMath(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathRadical.prototype, \"hideDegree\", {\n /** Hides the degree. Default false. */\n get: function () { return this.getProperty(K.HideDegree, function () { return false; }); },\n set: function (value) { this.setProperty(K.HideDegree, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRadical.prototype, \"degree\", {\n /** Degree equation. */\n get: function () { return this._degree; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathRadical.prototype, \"equation\", {\n /** Radicand equation. */\n get: function () { return this._equation; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathRadical;\n}(OfficeMathFunctionBase));\nexport { OfficeMathRadical };\n","/**\n * LaTeX command to Unicode symbol table (parity with compression `LaTeXConverter.GetSymbol`:\n * basic math, Greek, letter-like, operators, arrows, negated, geometry, non-renderable).\n * N-ary operators are intentionally absent; they are handled by the N-ary parser.\n *\n * @private\n */\nvar LATEX_SYMBOLS = {\n '\\\\pm': '\\u00B1',\n '\\\\infty': '\\u221E',\n '\\\\neq': '\\u2260',\n '\\\\times': '\\u00D7',\n '\\\\div': '\\u00F7',\n '\\\\propto': '\\u221D',\n '\\\\ll': '\\u226A',\n '\\\\gg': '\\u226B',\n '\\\\le': '\\u2264',\n '\\\\geq': '\\u2265',\n '\\\\mp': '\\u2213',\n '\\\\cong': '\\u2245',\n '\\\\approx': '\\u2248',\n '\\\\equiv': '\\u2261',\n '\\\\forall': '\\u2200',\n '\\\\complement': '\\u2201',\n '\\\\partial': '\\u2202',\n '\\\\cup': '\\u222A',\n '\\\\cap': '\\u2229',\n '\\\\emptyset': '\\u2205',\n '\\\\degf': '\\u2109',\n '\\\\degc': '\\u2103',\n '\\\\nabla': '\\u2207',\n '\\\\exists': '\\u2203',\n '\\\\nexists': '\\u2204',\n '\\\\in': '\\u2208',\n '\\\\ni': '\\u220B',\n '\\\\gets': '\\u2190',\n '\\\\uparrow': '\\u2191',\n '\\\\rightarrow': '\\u2192',\n '\\\\downarrow': '\\u2193',\n '\\\\leftrightarrow': '\\u2194',\n '\\\\therefore': '\\u2234',\n '\\\\lnot': '\\u00AC',\n '\\\\alpha': '\\u03B1',\n '\\\\beta': '\\u03B2',\n '\\\\gamma': '\\u03B3',\n '\\\\delta': '\\u03B4',\n '\\\\varepsilon': '\\u03B5',\n '\\\\epsilon': '\\u03F5',\n '\\\\theta': '\\u03B8',\n '\\\\vartheta': '\\u03D1',\n '\\\\mu': '\\u03BC',\n '\\\\pi': '\\u03C0',\n '\\\\rho': '\\u03C1',\n '\\\\sigma': '\\u03C3',\n '\\\\tau': '\\u03C4',\n '\\\\varphi': '\\u03C6',\n '\\\\omega': '\\u03C9',\n '\\\\ast': '\\u002A',\n '\\\\bullet': '\\u2219',\n '\\\\vdots': '\\u22EE',\n '\\\\cdots': '\\u22EF',\n '\\\\ddots': '\\u22F1',\n '\\\\aleph': '\\u2135',\n '\\\\beth': '\\u2136',\n '\\\\qed': '\\u220E',\n '\\\\zeta': '\\u03B6',\n '\\\\eta': '\\u03B7',\n '\\\\iota': '\\u03B9',\n '\\\\kappa': '\\u03BA',\n '\\\\lambda': '\\u03BB',\n '\\\\nu': '\\u03BD',\n '\\\\xi': '\\u03BE',\n '\\\\varpi': '\\u03D6',\n '\\\\varrho': '\\u03F1',\n '\\\\varsigma': '\\u03C2',\n '\\\\upsilon': '\\u03C5',\n '\\\\phi': '\\u03D5',\n '\\\\chi': '\\u03C7',\n '\\\\psi': '\\u03C8',\n '\\\\Gamma': '\\u0393',\n '\\\\Delta': '\\u0394',\n '\\\\Theta': '\\u0398',\n '\\\\Lambda': '\\u039B',\n '\\\\Xi': '\\u039E',\n '\\\\Pi': '\\u03A0',\n '\\\\Sigma': '\\u03A3',\n '\\\\Upsilon': '\\u03A5',\n '\\\\Phi': '\\u03A6',\n '\\\\Psi': '\\u03A8',\n '\\\\Omega': '\\u03A9',\n '\\\\mathbb{C}': '\\u0043',\n '\\\\mathcal{g}': '\\u0067',\n '\\\\mathcal{H}': '\\u0048',\n '\\\\mathfrak{H}': '\\u0048',\n '\\\\hbar': '\\u210F',\n '\\\\imath': '\\u0131',\n '\\\\mathfrak{I}': '\\u0049',\n '\\\\varkappa': '\\u03F0',\n '\\\\mathcal{L}': '\\u004C',\n '\\\\ell': '\\u006C',\n '\\\\mathbb{N}': '\\u004E',\n '\\\\wp': '\\u2118',\n '\\\\mathbb{Q}': '\\u0051',\n '\\\\mathcal{R}': '\\u0052',\n '\\\\mathfrak{R}': '\\u0052',\n '\\\\mathbb{R}': '\\u0052',\n '\\\\mathbb{Z}': '\\u005A',\n '\\\\mathcal{B}': '\\u0042',\n '\\\\mathcal{E}': '\\u0045',\n '\\\\mathcal{F}': '\\u0046',\n '\\\\mathcal{M}': '\\u004D',\n '\\\\mathcal{o}': '\\u006F',\n '\\\\gimel': '\\u2137',\n '\\\\daleth': '\\u2138',\n '\\\\circ': '\\u2218',\n '\\\\cdot': '\\u22C5',\n '\\\\uplus': '\\u228E',\n '\\\\sqcap': '\\u2293',\n '\\\\sqcup': '\\u2294',\n '\\\\land': '\\u2227',\n '\\\\vee': '\\u2228',\n '\\\\nless': '\\u226E',\n '\\\\nleq': '\\u2270',\n '\\\\ngt': '\\u226F',\n '\\\\ngeq': '\\u2271',\n '\\\\sim': '\\u223C',\n '\\\\simeq': '\\u2243',\n '\\\\nequiv': '\\u2262',\n '\\\\nsimeq': '\\u2244',\n '\\\\napprox': '\\u2249',\n '\\\\ncong': '\\u2247',\n '\\\\notin': '\\u2209',\n '\\\\subset': '\\u2282',\n '\\\\supset': '\\u2283',\n '\\\\subseteq': '\\u2286',\n '\\\\supseteq': '\\u2287',\n '\\\\prcue': '\\u227A',\n '\\\\succ': '\\u227B',\n '\\\\preccurlyeq': '\\u227C',\n '\\\\succcurlyeq': '\\u227D',\n '\\\\sqsubset': '\\u228F',\n '\\\\sqsupset': '\\u2290',\n '\\\\sqsubseteq': '\\u2291',\n '\\\\sqsupseteq': '\\u2292',\n '\\\\parallel': '\\u2225',\n '\\\\bot': '\\u22A5',\n '\\\\vdash': '\\u22A2',\n '\\\\dashv': '\\u22A3',\n '\\\\bowtie': '\\u22C8',\n '\\\\asymp': '\\u224D',\n '\\\\dotplus': '\\u2214',\n '\\\\dotminus': '\\u2238',\n '\\\\setminus': '\\u2216',\n '\\\\Cap': '\\u22D2',\n '\\\\Cup': '\\u22D3',\n '\\\\boxminus': '\\u229F',\n '\\\\boxtimes': '\\u22A0',\n '\\\\boxdot': '\\u22A1',\n '\\\\boxplus': '\\u229E',\n '\\\\divideontimes': '\\u22C7',\n '\\\\ltimes': '\\u22C9',\n '\\\\rtimes': '\\u22CA',\n '\\\\leftthreetimes': '\\u22CB',\n '\\\\rightthreetimes': '\\u22CC',\n '\\\\curlywedge': '\\u22CF',\n '\\\\curlyvee': '\\u22CE',\n '\\\\odash': '\\u229D',\n '\\\\intercal': '\\u22BA',\n '\\\\oplus': '\\u2295',\n '\\\\ominus': '\\u2296',\n '\\\\otimes': '\\u2297',\n '\\\\oslash': '\\u2298',\n '\\\\odot': '\\u2299',\n '\\\\oast': '\\u229B',\n '\\\\ocirc': '\\u229A',\n '\\\\dag': '\\u2020',\n '\\\\ddag': '\\u2021',\n '\\\\star': '\\u22C6',\n '\\\\diamond': '\\u22C4',\n '\\\\wr': '\\u2240',\n '\\\\triangle': '\\u25B3',\n '\\\\bigwedge': '\\u22C0',\n '\\\\bigvee': '\\u22C1',\n '\\\\bigodot': '\\u2A00',\n '\\\\bigotimes': '\\u2A02',\n '\\\\bigoplus': '\\u2A01',\n '\\\\bigsqcap': '\\u2A05',\n '\\\\bigsqcup': '\\u2A06',\n '\\\\biguplus': '\\u2A04',\n '\\\\bigudot': '\\u2A03',\n '\\\\because': '\\u2235',\n '\\\\lll': '\\u22D8',\n '\\\\ggg': '\\u22D9',\n '\\\\leqq': '\\u2266',\n '\\\\geqq': '\\u2267',\n '\\\\lesssim': '\\u2272',\n '\\\\gtrsim': '\\u2273',\n '\\\\lessdot': '\\u22D6',\n '\\\\gtrdot': '\\u22D7',\n '\\\\lessgtr': '\\u2276',\n '\\\\lesseqgtr': '\\u22DA',\n '\\\\gtrless': '\\u2277',\n '\\\\gtreqless': '\\u22DB',\n '\\\\Doteq': '\\u2251',\n '\\\\fallingdotseq': '\\u2252',\n '\\\\risingdotseq': '\\u2253',\n '\\\\backsim': '\\u223D',\n '\\\\approxeq': '\\u224A',\n '\\\\backsimeq': '\\u22CD',\n '\\\\curlyeqprec': '\\u22DE',\n '\\\\curlyeqsucc': '\\u22DF',\n '\\\\precsim': '\\u227E',\n '\\\\succsim': '\\u227F',\n '\\\\eqless': '\\u22DC',\n '\\\\eqgtr': '\\u22DD',\n '\\\\vartriangleleft': '\\u22B2',\n '\\\\vartriangleright': '\\u22B3',\n '\\\\trianglelefteq': '\\u22B4',\n '\\\\trianglerighteq': '\\u22B5',\n '\\\\models': '\\u22A8',\n '\\\\Subset': '\\u22D0',\n '\\\\Supset': '\\u22D1',\n '\\\\Vdash': '\\u22A9',\n '\\\\Vvdash': '\\u22AA',\n '\\\\eqcirc': '\\u2256',\n '\\\\circeq': '\\u2257',\n '\\\\Deltaeq': '\\u225C',\n '\\\\bumpeq': '\\u224F',\n '\\\\Bumpeq': '\\u224E',\n '\\\\between': '\\u226C',\n '\\\\pitchfork': '\\u22D4',\n '\\\\doteq': '\\u2250',\n '\\\\get': '\\u2190',\n '\\\\updownarrow': '\\u2195',\n '\\\\Leftarrow': '\\u21D0',\n '\\\\Rightarrow': '\\u21D2',\n '\\\\Uparrow': '\\u21D1',\n '\\\\Downarrow': '\\u21D3',\n '\\\\Leftrightarrow': '\\u21D4',\n '\\\\Updownarrow': '\\u21D5',\n '\\\\longleftarrow': '\\u27F5',\n '\\\\longrightarrow': '\\u27F6',\n '\\\\longleftrightarrow': '\\u27F7',\n '\\\\Longleftarrow': '\\u27F8',\n '\\\\Longrightarrow': '\\u27F9',\n '\\\\Longleftrightarrow': '\\u27FA',\n '\\\\nearrow': '\\u2197',\n '\\\\nwarrow': '\\u2196',\n '\\\\searrow': '\\u2198',\n '\\\\swarrow': '\\u2199',\n '\\\\nleftarrow': '\\u219A',\n '\\\\nrightarrow': '\\u219B',\n '\\\\nleftrightarrow': '\\u21AE',\n '\\\\nLeftarrow': '\\u21CD',\n '\\\\nRightarrow': '\\u21CF',\n '\\\\nLeftrightarrow': '\\u21CE',\n '\\\\dashleftarrow': '\\u21E0',\n '\\\\dashrightarrow': '\\u21E2',\n '\\\\mapstoleft': '\\u21A4',\n '\\\\mapsto': '\\u21A6',\n '\\\\longmapstoleft': '\\u27FB',\n '\\\\longmapsto': '\\u27FC',\n '\\\\hookleftarrow': '\\u21A9',\n '\\\\hookrightarrow': '\\u21AA',\n '\\\\leftharpoonup': '\\u21BC',\n '\\\\leftharpoondown': '\\u21BD',\n '\\\\rightharpoonup': '\\u21C0',\n '\\\\rightharpoondown': '\\u21C1',\n '\\\\upharpoonleft': '\\u21BF',\n '\\\\upharpoonright': '\\u21BE',\n '\\\\downharpoonleft': '\\u21C3',\n '\\\\downharpoonright': '\\u21C2',\n '\\\\leftrightharpoons': '\\u21CB',\n '\\\\rlhar': '\\u21CC',\n '\\\\leftleftarrows': '\\u21C7',\n '\\\\rightrightarrows': '\\u21C9',\n '\\\\upuparrows': '\\u21C8',\n '\\\\downdownarrows': '\\u21CA',\n '\\\\leftrightarrows': '\\u21C6',\n '\\\\rightleftarrows': '\\u21C4',\n '\\\\looparrowleft': '\\u21AB',\n '\\\\looparrowright': '\\u21AC',\n '\\\\leftarrowtail': '\\u21A2',\n '\\\\rightarrowtail': '\\u21A3',\n '\\\\Lsh': '\\u21B0',\n '\\\\Rsh': '\\u21B1',\n '\\\\ldsh': '\\u21B2',\n '\\\\rdsh': '\\u21B3',\n '\\\\Lleftarrow': '\\u21DA',\n '\\\\Rrightarrow': '\\u21DB',\n '\\\\twoheadleftarrow': '\\u219E',\n '\\\\twoheadrightarrow': '\\u21A0',\n '\\\\curvearrowleft': '\\u21B6',\n '\\\\curvearrowright': '\\u21B7',\n '\\\\circlearrowleft': '\\u21BA',\n '\\\\circlearrowright': '\\u21BB',\n '\\\\multimap': '\\u22B8',\n '\\\\leftrightwavearrow': '\\u21AD',\n '\\\\leftwavearrow': '\\u219C',\n '\\\\rightwavearrow': '\\u219D',\n '\\\\leftsquigarrow': '\\u21DC',\n '\\\\nsim': '\\u2241',\n '\\\\nasymp': '\\u226D',\n '\\\\lneqq': '\\u2268',\n '\\\\gneqq': '\\u2269',\n '\\\\nprec': '\\u2280',\n '\\\\nsucc': '\\u2281',\n '\\\\npreccurlyeq': '\\u22E0',\n '\\\\nsucccurlyeq': '\\u22E1',\n '\\\\notni': '\\u220C',\n '\\\\nsub': '\\u2284',\n '\\\\nsup': '\\u2285',\n '\\\\nsubseteq': '\\u2288',\n '\\\\nsupseteq': '\\u2289',\n '\\\\supsetneq': '\\u228B',\n '\\\\nsqsubseteq': '\\u22E2',\n '\\\\nsqsupseteq': '\\u22E3',\n '\\\\lnsim': '\\u22E6',\n '\\\\gnsim': '\\u22E7',\n '\\\\precnsim': '\\u22E8',\n '\\\\succnsim': '\\u22E9',\n '\\\\ntriangleleft': '\\u22EA',\n '\\\\ntriangleright': '\\u22EB',\n '\\\\ntrianglelefteq': '\\u22EC',\n '\\\\ntrianglerighteq': '\\u22ED',\n '\\\\nmid': '\\u2224',\n '\\\\nparallel': '\\u2226',\n '\\\\nvdash': '\\u22AC',\n '\\\\nvDash': '\\u22AD',\n '\\\\nVdash': '\\u22AE',\n '\\\\nVDash': '\\u22AF',\n '\\\\rightangle': '\\u221F',\n '\\\\angle': '\\u2220',\n '\\\\angmsd': '\\u2221',\n '\\\\angsph': '\\u2222',\n '\\\\angrtvb': '\\u22BE',\n '\\\\righttriangle': '\\u22BF',\n '\\\\epar': '\\u22D5',\n '\\\\colon': '\\u2236',\n '\\\\Colon': '\\u2237',\n '\\\\;': '\\u2005',\n};\n/**\n * Returns the Unicode symbol for a LaTeX command, or the input unchanged when unknown.\n *\n * @private\n */\nexport function getLatexSymbol(latex) {\n return Object.prototype.hasOwnProperty.call(LATEX_SYMBOLS, latex) ? LATEX_SYMBOLS[latex] : latex;\n}\nvar UNICODE_TO_LATEX = {\n 0x00B1: '\\\\pm',\n 0x221E: '\\\\infty',\n 0x2260: '\\\\neq',\n 0x00D7: '\\\\times',\n 0x00F7: '\\\\div',\n 0x221D: '\\\\propto',\n 0x226A: '\\\\ll',\n 0x226B: '\\\\gg',\n 0x2264: '\\\\le',\n 0x2265: '\\\\geq',\n 0x2213: '\\\\mp',\n 0x2245: '\\\\cong',\n 0x2248: '\\\\approx',\n 0x2261: '\\\\equiv',\n 0x2200: '\\\\forall',\n 0x2201: '\\\\complement',\n 0x2202: '\\\\partial',\n 0x221A: '\\\\sqrt',\n 0x221B: '\\\\cbrt',\n 0x221C: '\\\\qdrt',\n 0x222A: '\\\\cup',\n 0x2229: '\\\\cap',\n 0x2205: '\\\\emptyset',\n 0x2109: '\\\\degf',\n 0x2103: '\\\\degc',\n 0x2207: '\\\\nabla',\n 0x2203: '\\\\exists',\n 0x2204: '\\\\nexists',\n 0x2208: '\\\\in',\n 0x220B: '\\\\ni',\n 0x2190: '\\\\gets',\n 0x2191: '\\\\uparrow',\n 0x2192: '\\\\rightarrow',\n 0x2193: '\\\\downarrow',\n 0x2194: '\\\\leftrightarrow',\n 0x2234: '\\\\therefore',\n 0x00AC: '\\\\lnot',\n 0x03B1: '\\\\alpha',\n 0x03B2: '\\\\beta',\n 0x03B3: '\\\\gamma',\n 0x03B4: '\\\\delta',\n 0x03B5: '\\\\varepsilon',\n 0x03F5: '\\\\epsilon',\n 0x03B8: '\\\\theta',\n 0x03D1: '\\\\vartheta',\n 0x03BC: '\\\\mu',\n 0x03C0: '\\\\pi',\n 0x03C1: '\\\\rho',\n 0x03C3: '\\\\sigma',\n 0x03C4: '\\\\tau',\n 0x03C6: '\\\\varphi',\n 0x03C9: '\\\\omega',\n 0x002A: '\\\\ast',\n 0x2219: '\\\\bullet',\n 0x22EE: '\\\\vdots',\n 0x22EF: '\\\\cdots',\n 0x22F1: '\\\\ddots',\n 0x2135: '\\\\aleph',\n 0x2136: '\\\\beth',\n 0x220E: '\\\\qed',\n 0x03B6: '\\\\zeta',\n 0x03B7: '\\\\eta',\n 0x03B9: '\\\\iota',\n 0x03BA: '\\\\kappa',\n 0x03BB: '\\\\lambda',\n 0x03BD: '\\\\nu',\n 0x03BE: '\\\\xi',\n 0x03D6: '\\\\varpi',\n 0x03F1: '\\\\varrho',\n 0x03C2: '\\\\varsigma',\n 0x03C5: '\\\\upsilon',\n 0x03D5: '\\\\phi',\n 0x03C7: '\\\\chi',\n 0x03C8: '\\\\psi',\n 0x0393: '\\\\Gamma',\n 0x0394: '\\\\Delta',\n 0x0398: '\\\\Theta',\n 0x039B: '\\\\Lambda',\n 0x039E: '\\\\Xi',\n 0x03A0: '\\\\Pi',\n 0x03A3: '\\\\Sigma',\n 0x03A5: '\\\\Upsilon',\n 0x03A6: '\\\\Phi',\n 0x03A8: '\\\\Psi',\n 0x03A9: '\\\\Omega',\n 0x210F: '\\\\hbar',\n 0x0131: '\\\\imath',\n 0x03F0: '\\\\varkappa',\n 0x2118: '\\\\wp',\n 0x2137: '\\\\gimel',\n 0x2138: '\\\\daleth',\n 0x2218: '\\\\circ',\n 0x22C5: '\\\\cdot',\n 0x228E: '\\\\uplus',\n 0x2293: '\\\\sqcap',\n 0x2294: '\\\\sqcup',\n 0x2227: '\\\\land',\n 0x2228: '\\\\vee',\n 0x226E: '\\\\nless',\n 0x2270: '\\\\nleq',\n 0x226F: '\\\\ngt',\n 0x2271: '\\\\ngeq',\n 0x223C: '\\\\sim',\n 0x2243: '\\\\simeq',\n 0x2262: '\\\\nequiv',\n 0x2244: '\\\\nsimeq',\n 0x2249: '\\\\napprox',\n 0x2247: '\\\\ncong',\n 0x2209: '\\\\notin',\n 0x2282: '\\\\subset',\n 0x2283: '\\\\supset',\n 0x2286: '\\\\subseteq',\n 0x2287: '\\\\supseteq',\n 0x227A: '\\\\prcue',\n 0x227B: '\\\\succ',\n 0x227C: '\\\\preccurlyeq',\n 0x227D: '\\\\succcurlyeq',\n 0x228F: '\\\\sqsubset',\n 0x2290: '\\\\sqsupset',\n 0x2291: '\\\\sqsubseteq',\n 0x2292: '\\\\sqsupseteq',\n 0x2225: '\\\\parallel',\n 0x22A5: '\\\\bot',\n 0x22A2: '\\\\vdash',\n 0x22A3: '\\\\dashv',\n 0x22C8: '\\\\bowtie',\n 0x224D: '\\\\asymp',\n 0x2214: '\\\\dotplus',\n 0x2238: '\\\\dotminus',\n 0x2216: '\\\\setminus',\n 0x22D2: '\\\\Cap',\n 0x22D3: '\\\\Cup',\n 0x229F: '\\\\boxminus',\n 0x22A0: '\\\\boxtimes',\n 0x22A1: '\\\\boxdot',\n 0x229E: '\\\\boxplus',\n 0x22C7: '\\\\divideontimes',\n 0x22C9: '\\\\ltimes',\n 0x22CA: '\\\\rtimes',\n 0x22CB: '\\\\leftthreetimes',\n 0x22CC: '\\\\rightthreetimes',\n 0x22CF: '\\\\curlywedge',\n 0x22CE: '\\\\curlyvee',\n 0x229D: '\\\\odash',\n 0x22BA: '\\\\intercal',\n 0x2295: '\\\\oplus',\n 0x2296: '\\\\ominus',\n 0x2297: '\\\\otimes',\n 0x2298: '\\\\oslash',\n 0x2299: '\\\\odot',\n 0x229B: '\\\\oast',\n 0x229A: '\\\\ocirc',\n 0x2020: '\\\\dag',\n 0x2021: '\\\\ddag',\n 0x22C6: '\\\\star',\n 0x22C4: '\\\\diamond',\n 0x2240: '\\\\wr',\n 0x25B3: '\\\\triangle',\n 0x22C0: '\\\\bigwedge',\n 0x22C1: '\\\\bigvee',\n 0x2A00: '\\\\bigodot',\n 0x2A02: '\\\\bigotimes',\n 0x2A01: '\\\\bigoplus',\n 0x2A05: '\\\\bigsqcap',\n 0x2A06: '\\\\bigsqcup',\n 0x2A04: '\\\\biguplus',\n 0x2A03: '\\\\bigudot',\n 0x2235: '\\\\because',\n 0x22D8: '\\\\lll',\n 0x22D9: '\\\\ggg',\n 0x2266: '\\\\leqq',\n 0x2267: '\\\\geqq',\n 0x2272: '\\\\lesssim',\n 0x2273: '\\\\gtrsim',\n 0x22D6: '\\\\lessdot',\n 0x22D7: '\\\\gtrdot',\n 0x2276: '\\\\lessgtr',\n 0x22DA: '\\\\lesseqgtr',\n 0x2277: '\\\\gtrless',\n 0x22DB: '\\\\gtreqless',\n 0x2251: '\\\\Doteq',\n 0x2252: '\\\\fallingdotseq',\n 0x2253: '\\\\risingdotseq',\n 0x223D: '\\\\backsim',\n 0x224A: '\\\\approxeq',\n 0x22CD: '\\\\backsimeq',\n 0x22DE: '\\\\curlyeqprec',\n 0x22DF: '\\\\curlyeqsucc',\n 0x227E: '\\\\precsim',\n 0x227F: '\\\\succsim',\n 0x22DC: '\\\\eqless',\n 0x22DD: '\\\\eqgtr',\n 0x22B2: '\\\\vartriangleleft',\n 0x22B3: '\\\\vartriangleright',\n 0x22B4: '\\\\trianglelefteq',\n 0x22B5: '\\\\trianglerighteq',\n 0x22A8: '\\\\models',\n 0x22D0: '\\\\Subset',\n 0x22D1: '\\\\Supset',\n 0x22A9: '\\\\Vdash',\n 0x22AA: '\\\\Vvdash',\n 0x2256: '\\\\eqcirc',\n 0x2257: '\\\\circeq',\n 0x225C: '\\\\Deltaeq',\n 0x224F: '\\\\bumpeq',\n 0x224E: '\\\\Bumpeq',\n 0x226C: '\\\\between',\n 0x22D4: '\\\\pitchfork',\n 0x2250: '\\\\doteq',\n 0x2195: '\\\\updownarrow',\n 0x21D0: '\\\\Leftarrow',\n 0x21D2: '\\\\Rightarrow',\n 0x21D1: '\\\\Uparrow',\n 0x21D3: '\\\\Downarrow',\n 0x21D4: '\\\\Leftrightarrow',\n 0x21D5: '\\\\Updownarrow',\n 0x27F5: '\\\\longleftarrow',\n 0x27F6: '\\\\longrightarrow',\n 0x27F7: '\\\\longleftrightarrow',\n 0x27F8: '\\\\Longleftarrow',\n 0x27F9: '\\\\Longrightarrow',\n 0x27FA: '\\\\Longleftrightarrow',\n 0x2197: '\\\\nearrow',\n 0x2196: '\\\\nwarrow',\n 0x2198: '\\\\searrow',\n 0x2199: '\\\\swarrow',\n 0x219A: '\\\\nleftarrow',\n 0x219B: '\\\\nrightarrow',\n 0x21AE: '\\\\nleftrightarrow',\n 0x21CD: '\\\\nLeftarrow',\n 0x21CF: '\\\\nRightarrow',\n 0x21CE: '\\\\nLeftrightarrow',\n 0x21E0: '\\\\dashleftarrow',\n 0x21E2: '\\\\dashrightarrow',\n 0x21A4: '\\\\mapstoleft',\n 0x21A6: '\\\\mapsto',\n 0x27FB: '\\\\longmapstoleft',\n 0x27FC: '\\\\longmapsto',\n 0x21A9: '\\\\hookleftarrow',\n 0x21AA: '\\\\hookrightarrow',\n 0x21BC: '\\\\leftharpoonup',\n 0x21BD: '\\\\leftharpoondown',\n 0x21C0: '\\\\rightharpoonup',\n 0x21C1: '\\\\rightharpoondown',\n 0x21BF: '\\\\upharpoonleft',\n 0x21BE: '\\\\upharpoonright',\n 0x21C3: '\\\\downharpoonleft',\n 0x21C2: '\\\\downharpoonright',\n 0x21CB: '\\\\leftrightharpoons',\n 0x21CC: '\\\\rlhar',\n 0x21C7: '\\\\leftleftarrows',\n 0x21C9: '\\\\rightrightarrows',\n 0x21C8: '\\\\upuparrows',\n 0x21CA: '\\\\downdownarrows',\n 0x21C6: '\\\\leftrightarrows',\n 0x21C4: '\\\\rightleftarrows',\n 0x21AB: '\\\\looparrowleft',\n 0x21AC: '\\\\looparrowright',\n 0x21A2: '\\\\leftarrowtail',\n 0x21A3: '\\\\rightarrowtail',\n 0x21B0: '\\\\Lsh',\n 0x21B1: '\\\\Rsh',\n 0x21B2: '\\\\ldsh',\n 0x21B3: '\\\\rdsh',\n 0x21DA: '\\\\Lleftarrow',\n 0x21DB: '\\\\Rrightarrow',\n 0x219E: '\\\\twoheadleftarrow',\n 0x21A0: '\\\\twoheadrightarrow',\n 0x21B6: '\\\\curvearrowleft',\n 0x21B7: '\\\\curvearrowright',\n 0x21BA: '\\\\circlearrowleft',\n 0x21BB: '\\\\circlearrowright',\n 0x22B8: '\\\\multimap',\n 0x21AD: '\\\\leftrightwavearrow',\n 0x219C: '\\\\leftwavearrow',\n 0x219D: '\\\\rightwavearrow',\n 0x21DC: '\\\\leftsquigarrow',\n 0x2241: '\\\\nsim',\n 0x226D: '\\\\nasymp',\n 0x2268: '\\\\lneqq',\n 0x2269: '\\\\gneqq',\n 0x2280: '\\\\nprec',\n 0x2281: '\\\\nsucc',\n 0x22E0: '\\\\npreccurlyeq',\n 0x22E1: '\\\\nsucccurlyeq',\n 0x220C: '\\\\notni',\n 0x2284: '\\\\nsub',\n 0x2285: '\\\\nsup',\n 0x2288: '\\\\nsubseteq',\n 0x2289: '\\\\nsupseteq',\n 0x228B: '\\\\supsetneq',\n 0x22E2: '\\\\nsqsubseteq',\n 0x22E3: '\\\\nsqsupseteq',\n 0x22E6: '\\\\lnsim',\n 0x22E7: '\\\\gnsim',\n 0x22E8: '\\\\precnsim',\n 0x22E9: '\\\\succnsim',\n 0x22EA: '\\\\ntriangleleft',\n 0x22EB: '\\\\ntriangleright',\n 0x22EC: '\\\\ntrianglelefteq',\n 0x22ED: '\\\\ntrianglerighteq',\n 0x2224: '\\\\nmid',\n 0x2226: '\\\\nparallel',\n 0x22AC: '\\\\nvdash',\n 0x22AD: '\\\\nvDash',\n 0x22AE: '\\\\nVdash',\n 0x22AF: '\\\\nVDash',\n 0x221F: '\\\\rightangle',\n 0x2220: '\\\\angle',\n 0x2221: '\\\\angmsd',\n 0x2222: '\\\\angsph',\n 0x22BE: '\\\\angrtvb',\n 0x22BF: '\\\\righttriangle',\n 0x22D5: '\\\\epar',\n 0x2236: '\\\\colon',\n 0x2237: '\\\\Colon',\n};\n/**\n * Returns the LaTeX command for a Unicode symbol (compression `GetSymbolLaTeX`), or undefined.\n * `l` maps to `\\\\ell` only for the script font.\n *\n * @private\n */\nexport function getSymbolLatex(char, isScriptFont) {\n var code = char.charCodeAt(0);\n if (code === 108) {\n return isScriptFont ? '\\\\ell' : undefined;\n }\n return UNICODE_TO_LATEX[code];\n}\n","/**\n * LaTeX → Office Math model parser.\n *\n * Port of compression `LaTeXConverter.ParseMathPara` (Syncfusion.Office MathML).\n * The scanning rules intentionally mirror the .NET implementation (including\n * Microsoft Word's tolerant handling of malformed input, which degrades to plain\n * text runs).\n *\n * @packageDocumentation\n */\nimport { MathFontType, MathFractionType, MathFunctionType, MathHorizontalAlignment, MathLimitType, MathScriptType, MathStyleType } from '../office-math/enums';\nimport { OfficeMathParagraph } from '../office-math/math-paragraph';\nimport { getLatexSymbol } from './latex-symbols';\n// Built at runtime: Unicode property escapes need the `u` flag, which ES5 compile targets reject in literals.\nvar LETTER = new RegExp('^\\\\p{L}$', 'u');\nvar LETTER_OR_DIGIT = new RegExp('^[\\\\p{L}\\\\p{Nd}]$', 'u');\nvar GROUP_START = '{';\nvar GROUP_END = '}';\nvar SQUARE_START = '[';\nvar SQUARE_END = ']';\nvar CONTROL_START = '\\\\';\nvar SPACE = ' ';\nvar MATRIX_ROW_END = '\\\\\\\\';\nvar MATRIX_COL_END = '&';\nvar SUPER = '^';\nvar SUB = '_';\nvar LOW_LIMIT = '\\\\below';\nvar ACCENTS = {\n '\\\\dot': 775, '\\\\ddot': 776, '\\\\dddot': 8411, '\\\\hat': 770, '\\\\widehat': 770, '\\\\check': 780, '\\\\acute': 769,\n '\\\\grave': 768, '\\\\breve': 774, '\\\\widetilde': 771, '\\\\bar': 773, '\\\\vec': 8407, '\\\\hvec': 8401,\n};\nvar FUNCTIONS = ['\\\\sin', '\\\\cos', '\\\\tan', '\\\\cot', '\\\\sec', '\\\\csc', '\\\\sinh', '\\\\cosh', '\\\\tanh', '\\\\coth', '\\\\sech', '\\\\csch',\n '\\\\arcsin', '\\\\arccos', '\\\\arctan', '\\\\log', '\\\\lim', '\\\\min', '\\\\max', '\\\\ln'];\nvar NARY = {\n '\\\\sum': 8721, '\\\\int': 8747, '\\\\iint': 8748, '\\\\iiint': 8749, '\\\\oint': 8750, '\\\\oiint': 8751, '\\\\oiiint': 8752,\n '\\\\cwint': 8753, '\\\\coint': 8754, '\\\\aoint': 8755, '\\\\prod': 8719, '\\\\amalg': 8720, '\\\\bigcap': 8898, '\\\\bigcup': 8899,\n '\\\\bigwedge': 8896, '\\\\bigvee': 8897, '\\\\bigodot': 10752, '\\\\bigotimes': 10754, '\\\\bigoplus': 10753,\n '\\\\biguplus': 10756, '\\\\bigudot': 10755,\n};\nvar DELIMITERS = {\n '\\\\lfloor': '\\u230A', '\\\\rfloor': '\\u230B', '\\\\lceil': '\\u2308', '\\\\rceil': '\\u2309', '\\\\langle': '\\u2329', '\\\\rangle': '\\u232A',\n '.': '', '|': '|', '(': '(', ')': ')', '[': '[', ']': ']', '{': '{', '}': '}',\n};\nvar FONT_COMMANDS = {\n '\\\\mathbb': MathFontType.DoubleStruck, '\\\\mathfrak': MathFontType.Fraktur, '\\\\mathtt': MathFontType.Monospace,\n '\\\\mathsf': MathFontType.SansSerif, '\\\\mathcal': MathFontType.Script, '\\\\mathscr': MathFontType.Script,\n};\nvar STYLE_COMMANDS = {\n '\\\\mathbit': MathStyleType.BoldItalic, '\\\\mathbf': MathStyleType.Bold,\n};\n/** Mutable run accumulated while scanning; merged while formatting is unchanged. */\nvar RunBuf = /** @class */ (function () {\n function RunBuf(text, sty, scr, nor) {\n this.text = text;\n this.sty = sty;\n this.scr = scr;\n this.nor = nor;\n }\n return RunBuf;\n}());\nfunction finalize(seq, target) {\n seq.forEach(function (i) { return (i instanceof RunBuf ? addRun(i, target) : i.make(target)); });\n}\nfunction addRun(r, target) {\n var run = target.functions.add(MathFunctionType.RunElement);\n run.text = r.text;\n if (r.sty !== undefined) {\n run.mathFormat.style = r.sty;\n }\n if (r.scr !== undefined) {\n run.mathFormat.font = r.scr;\n }\n if (r.nor) {\n run.mathFormat.hasNormalText = true;\n }\n}\nfunction add(target, type) {\n return target.functions.add(type);\n}\nfunction chr(code) {\n return String.fromCharCode(code);\n}\nfunction nz(value) {\n return value === null ? '' : value;\n}\nfunction hasScriptPair(s) {\n return (s.startsWith(SUB) && s.includes(SUPER)) || (s.startsWith(SUPER) && s.includes(SUB));\n}\nfunction trimBackslash(s) {\n return s.replace(/^\\\\+|\\\\+$/g, '');\n}\n/**\n * Stateful LaTeX scanner/parser. One instance per conversion.\n *\n * @private\n */\nvar LatexParser = /** @class */ (function () {\n function LatexParser() {\n this.latex = '';\n this.pos = 0;\n this.cur = null;\n this.useExisting = false;\n this.current = null;\n this.roots = [];\n this.nor = false;\n }\n /** Appends one `m:oMath` per top-level equation of `latex` to `target`, through its collections and adapter. */\n LatexParser.prototype.populate = function (latex, target) {\n var _this = this;\n this.latex = latex;\n this.parseEquation();\n target.suspendMutations(function () { return _this.roots.forEach(function (r) { return finalize(r, target.maths.add()); }); });\n };\n // ─── Scanner ──────────────────────────────────────────────────────────────\n LatexParser.prototype.next = function () {\n if (this.pos > this.latex.length - 1) {\n return null;\n }\n var el = this.latex[this.pos];\n this.pos++;\n this.cur = el;\n if (el === CONTROL_START) {\n while (this.pos < this.latex.length && (LETTER.test(this.latex[this.pos]) || this.latex[this.pos] === ';')) {\n el += this.latex[this.pos];\n this.pos++;\n }\n this.cur = el;\n }\n return this.cur;\n };\n LatexParser.prototype.ensure = function () {\n if (this.current === null) {\n this.current = [];\n this.roots.push(this.current);\n }\n return this.current;\n };\n LatexParser.prototype.sub = function (text, target) {\n if (text === null) {\n return;\n }\n var saved = { latex: this.latex, current: this.current, pos: this.pos, cur: this.cur, use: this.useExisting };\n this.latex = text;\n this.current = target;\n this.pos = 0;\n this.cur = null;\n this.useExisting = false;\n this.parseEquation();\n this.latex = saved.latex;\n this.current = saved.current;\n this.pos = saved.pos;\n this.cur = saved.cur;\n this.useExisting = saved.use;\n };\n LatexParser.prototype.fill = function (text) {\n var seq = [];\n this.sub(text, seq);\n return seq;\n };\n LatexParser.prototype.add = function (make) {\n this.ensure().push({ make: make });\n };\n LatexParser.prototype.setRun = function (text) {\n if (text.length === 0) {\n return;\n }\n var seq = this.ensure();\n var t = text.startsWith('\\\\') ? getLatexSymbol(text) : text;\n var last = seq[seq.length - 1];\n if (last instanceof RunBuf && last.sty === this.sty && last.scr === this.scr && last.nor === this.nor) {\n last.text += t;\n }\n else {\n seq.push(new RunBuf(t, this.sty, this.scr, this.nor));\n }\n };\n LatexParser.prototype.fallbackRun = function (startPos) {\n this.setRun(this.latex.substring(startPos, this.pos));\n };\n // ─── Group helpers ────────────────────────────────────────────────────────\n LatexParser.prototype.equationString = function () {\n this.cur = this.next();\n var result = null;\n var valid = false;\n var notInGroup = false;\n if (this.cur === GROUP_START) {\n var g = this.group();\n valid = g.ok;\n result = g.text;\n }\n else {\n notInGroup = true;\n }\n if (notInGroup && this.cur !== null && this.cur.length === 1 && (LETTER_OR_DIGIT.test(this.cur) || this.cur === SPACE)) {\n result = this.cur;\n }\n else if (!valid) {\n result = null;\n }\n return result;\n };\n LatexParser.prototype.group = function () {\n if (this.cur !== GROUP_START) {\n return { ok: false, text: '' };\n }\n var text = '';\n var depth = 1;\n while (depth > 0 && this.pos < this.latex.length) {\n this.cur = this.next();\n if (this.cur === GROUP_START) {\n depth++;\n text += this.cur;\n }\n else if (this.cur === GROUP_END) {\n if (depth !== 1) {\n text += this.cur;\n }\n depth--;\n }\n else if (this.cur === '\\\\left') {\n var d = this.delimiter();\n text += d.text;\n if (!d.ok) {\n return { ok: false, text: text };\n }\n }\n else {\n text += nz(this.cur);\n }\n }\n return { ok: depth === 0, text: text };\n };\n LatexParser.prototype.squareGroup = function () {\n if (this.cur !== SQUARE_START) {\n return null;\n }\n var text = '';\n var depth = 1;\n while (depth > 0 && this.pos < this.latex.length) {\n this.cur = this.next();\n if (this.cur === SQUARE_START) {\n depth++;\n text += this.cur;\n }\n else if (this.cur === SQUARE_END) {\n if (depth !== 1) {\n text += this.cur;\n }\n depth--;\n }\n else {\n text += nz(this.cur);\n }\n }\n return text;\n };\n // ─── Main loop ────────────────────────────────────────────────────────────\n LatexParser.prototype.parseEquation = function () {\n while (this.pos < this.latex.length || this.useExisting) {\n if (this.useExisting) {\n this.useExisting = false;\n }\n else {\n this.cur = this.next();\n }\n this.dispatch(nz(this.cur), this.cur);\n }\n };\n LatexParser.prototype.dispatch = function (c, raw) {\n if (raw === null) {\n this.parseDefault();\n }\n else if (ACCENTS[c] !== undefined) {\n this.parseAccent();\n }\n else if (c === '\\\\overline' || c === '\\\\underline') {\n this.parseBar();\n }\n else if (c === '\\\\box') {\n this.parseBox();\n }\n else if (c === '\\\\fbox' || c === '\\\\boxed') {\n this.parseBorderBox();\n }\n else if (c === '\\\\left') {\n this.parseDelimiter();\n }\n else if (c === '\\\\eqarray') {\n this.parseEqArray();\n }\n else if (c === '\\\\frac' || c === '\\\\sfrac' || c === '\\\\binom') {\n this.parseFraction();\n }\n else if (FUNCTIONS.indexOf(c) !== -1) {\n this.parseFunction();\n }\n else if (c === '\\\\overbrace' || c === '\\\\underbrace') {\n this.parseGroupChar();\n }\n else if (c === '\\\\begin') {\n this.parseMatrix();\n }\n else if (NARY[c] !== undefined) {\n this.parseNary();\n }\n else if (c === '\\\\sqrt') {\n this.parseRadical();\n }\n else if (c === GROUP_START) {\n this.parseGroupStart();\n }\n else if (STYLE_COMMANDS[c] !== undefined) {\n this.parseFormat(c, 'sty', STYLE_COMMANDS[c]);\n }\n else if (FONT_COMMANDS[c] !== undefined) {\n this.parseFormat(c, 'scr', FONT_COMMANDS[c]);\n }\n else if (c === '\\\\mathrm') {\n this.parseFormat(c, 'nor', true);\n }\n else {\n this.parseDefault();\n }\n };\n LatexParser.prototype.parseDefault = function () {\n var startPos = this.pos;\n var previous = nz(this.cur);\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(previous, startPos - previous.length);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n if (this.cur === SPACE) {\n if (previous === '\\\\') {\n return;\n }\n if (previous.startsWith('\\\\') && getLatexSymbol(previous) !== previous) {\n this.useExisting = false;\n }\n }\n this.setRun(previous);\n };\n LatexParser.prototype.parseFormat = function (start, kind, value) {\n var laTexPos = this.pos;\n this.cur = this.next();\n if (this.cur !== GROUP_START) {\n this.setRun(start);\n this.useExisting = true;\n return;\n }\n var g = this.group();\n if (!g.ok) {\n this.fallbackRun(laTexPos - start.length);\n return;\n }\n var old = { sty: this.sty, scr: this.scr, nor: this.nor };\n if (kind === 'sty' && this.sty === undefined) {\n this.sty = value;\n }\n else if (kind === 'scr' && this.scr === undefined) {\n this.scr = value;\n }\n else if (kind === 'nor') {\n this.nor = true;\n }\n this.sub(g.text, this.current);\n this.sty = old.sty;\n this.scr = old.scr;\n this.nor = old.nor;\n };\n /** `\\cmd{...}` / `\\cmd x` argument shared by accent, bar, box, border box, group char. */\n LatexParser.prototype.oneArg = function () {\n var at = this.pos;\n var start = nz(this.cur);\n var text = this.equationString();\n if (text === SPACE && this.cur === SPACE) {\n text = this.equationString();\n }\n return { start: start, at: at, text: text };\n };\n LatexParser.prototype.parseAccent = function () {\n var _a = this.oneArg(), start = _a.start, at = _a.at, text = _a.text;\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var chrCode = chr(ACCENTS[start]);\n var body = text;\n if (body && body.startsWith('\\\\bar{') && body.endsWith(GROUP_END) && chrCode === chr(773)) {\n chrCode = chr(831);\n body = body.substring(5, body.length - 1);\n }\n var inner = body ? this.fill(body) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.Accent);\n f.accentCharacter = chrCode;\n finalize(inner, f.equation);\n });\n };\n LatexParser.prototype.parseBar = function () {\n var _a = this.oneArg(), start = _a.start, at = _a.at, text = _a.text;\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(\"\" + start + GROUP_START + nz(text) + GROUP_END, at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n var inner = text ? this.fill(text) : [];\n var pos = start === '\\\\overline' ? 'top' : 'bot';\n this.add(function (t) {\n var f = add(t, MathFunctionType.Bar);\n f.barTop = pos === 'top';\n finalize(inner, f.equation);\n });\n };\n LatexParser.prototype.parseBox = function () {\n var _a = this.oneArg(), start = _a.start, at = _a.at, text = _a.text;\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var inner = text ? this.fill(text) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.Box);\n f.noBreak = false;\n finalize(inner, f.equation);\n });\n };\n LatexParser.prototype.parseBorderBox = function () {\n var _a = this.oneArg(), start = _a.start, at = _a.at, text = _a.text;\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(\"\" + start + GROUP_START + nz(text) + GROUP_END, at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n var inner = text ? this.fill(text) : [];\n this.add(function (t) { return finalize(inner, add(t, MathFunctionType.BorderBox).equation); });\n };\n // ─── Delimiter / eqArray ──────────────────────────────────────────────────\n LatexParser.prototype.delimiterChar = function (eq) {\n this.cur = this.next();\n eq.s += nz(this.cur);\n if (this.cur === CONTROL_START) {\n this.cur = this.next();\n eq.s += nz(this.cur);\n }\n var key = nz(this.cur);\n return Object.prototype.hasOwnProperty.call(DELIMITERS, key) ? DELIMITERS[key] : null;\n };\n LatexParser.prototype.delimiter = function () {\n var r = { ok: false, begin: null, end: null, sep: null, list: [], text: '' };\n var eq = { s: nz(this.cur) };\n var depth = 1;\n r.begin = this.delimiterChar(eq);\n if (r.begin === null) {\n r.text = eq.s;\n return r;\n }\n var between = '';\n while (depth > 0 && this.pos < this.latex.length) {\n var el = nz(this.next());\n eq.s += el;\n if (el === '\\\\left') {\n between += el;\n depth++;\n }\n else if (el === '\\\\right') {\n if (depth === 1) {\n r.list.push(between.trim());\n r.end = this.delimiterChar(eq);\n if (r.end === null) {\n r.text = eq.s;\n return r;\n }\n }\n else {\n between += el;\n }\n depth--;\n }\n else if (el === '\\\\middle') {\n if (depth === 1) {\n var mid = this.delimiterChar(eq);\n if (mid === null) {\n r.text = eq.s;\n return r;\n }\n if (r.sep === null) {\n r.sep = mid;\n }\n r.list.push(between.trim());\n between = '';\n }\n else {\n between += el;\n }\n }\n else {\n between += el;\n }\n }\n r.ok = depth === 0;\n r.text = eq.s;\n return r;\n };\n LatexParser.prototype.parseDelimiter = function () {\n var _this = this;\n var at = this.pos;\n var start = nz(this.cur);\n var d = this.delimiter();\n if (!d.ok) {\n this.setRun(this.latex.substring(at - start.length, this.pos).replace(/\\\\ /g, ' '));\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(d.text, at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n var args = d.list.map(function (e) { return _this.fill(e); });\n var props = { begChr: nz(d.begin), endChr: nz(d.end) };\n if (d.sep !== null) {\n props.sepChr = d.sep;\n }\n this.add(function (t) {\n var f = add(t, MathFunctionType.Delimiter);\n f.beginCharacter = props.begChr;\n f.endCharacter = props.endChr;\n if (props.sepChr !== undefined) {\n f.separator = props.sepChr;\n }\n args.forEach(function (a) { return finalize(a, f.equations.add()); });\n });\n };\n LatexParser.prototype.splitEqArray = function (text) {\n var list = [];\n var between = '';\n if (text !== null) {\n for (var p = 0; p < text.length; p++) {\n if (text[p] === '@') {\n if (text.substring(p).includes('&') || text.substring(p + 1).includes('@')) {\n list.push(between.trim());\n between = '';\n }\n }\n else {\n between += text[p];\n }\n }\n list.push(between.trim());\n }\n return list;\n };\n LatexParser.prototype.parseEqArray = function () {\n var _this = this;\n var at = this.pos;\n var start = nz(this.cur);\n var text = this.equationString();\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var parts = this.splitEqArray(text).map(function (e) { return _this.fill(e); });\n this.add(function (t) {\n var f = add(t, MathFunctionType.EquationArray);\n if (parts.length === 0) {\n f.equations.add();\n }\n parts.forEach(function (p) { return finalize(p, f.equations.add()); });\n });\n };\n // ─── Fraction / function / group char / limit ─────────────────────────────\n LatexParser.prototype.parseFraction = function () {\n var at = this.pos;\n var start = nz(this.cur);\n var num = this.equationString();\n if (this.cur === SPACE && num === SPACE) {\n num = this.equationString();\n }\n var den = '';\n if ((this.cur === SPACE && num === SPACE) || (this.cur === null && num === null)) {\n num = '';\n }\n else {\n den = this.equationString();\n }\n if (num === null || den === null) {\n this.fallbackRun(at - start.length);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(\"\" + start + GROUP_START + num + GROUP_END + GROUP_START + den + GROUP_END, at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n if (start === '\\\\binom') {\n this.binomial(num, den);\n return;\n }\n var type = start === '\\\\sfrac' ? MathFractionType.SkewedFractionBar : MathFractionType.NormalFractionBar;\n this.fraction(type, num, den);\n };\n LatexParser.prototype.fraction = function (type, num, den) {\n var n = num !== '' ? this.fill(num) : [];\n var d = den !== '' ? this.fill(den) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.Fraction);\n f.fractionType = type;\n finalize(n, f.numerator);\n finalize(d, f.denominator);\n });\n };\n /** `\\binom{n}{k}`: a parenthesis delimiter around a no-bar fraction (Word's binomial coefficient). */\n LatexParser.prototype.binomial = function (num, den) {\n var n = num !== '' ? this.fill(num) : [];\n var d = den !== '' ? this.fill(den) : [];\n this.add(function (t) {\n var delimiter = add(t, MathFunctionType.Delimiter);\n delimiter.beginCharacter = '(';\n delimiter.endCharacter = ')';\n var f = add(delimiter.equations.add(), MathFunctionType.Fraction);\n f.fractionType = MathFractionType.NoFractionBar;\n finalize(n, f.numerator);\n finalize(d, f.denominator);\n });\n };\n LatexParser.prototype.parseNoFractionBar = function (numerator, startPos) {\n if (this.cur !== '\\\\atop') {\n return;\n }\n var den = this.equationString();\n if (this.cur === den) {\n den = null;\n }\n if (den === null) {\n this.fallbackRun(startPos);\n return;\n }\n this.fraction(MathFractionType.NoFractionBar, numerator, den);\n };\n LatexParser.prototype.parseFunction = function () {\n var at = this.pos;\n var start = nz(this.cur);\n var body = this.equationString();\n var scriptKind = null;\n var scriptText = null;\n if (this.cur === SUPER || this.cur === SUB || this.cur === LOW_LIMIT) {\n scriptKind = this.cur === SUPER ? 'sup' : this.cur === SUB ? 'sub' : 'limit';\n scriptText = this.equationString();\n if (scriptText === this.cur) {\n body = this.equationString();\n if (body !== null && body === this.cur) {\n body = '';\n this.useExisting = true;\n }\n }\n else {\n body = this.equationString();\n }\n }\n if (body === null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var name = trimBackslash(start);\n var nameSeq = [];\n var make;\n if (scriptKind === 'sup' || scriptKind === 'sub') {\n var base_1 = this.fill(name);\n this.regular(base_1);\n var script_1 = scriptText !== null ? this.fill(scriptText) : [];\n make = function (f) {\n var sc = add(f.functionName, MathFunctionType.SubSuperscript);\n sc.scriptType = scriptKind === 'sup' ? MathScriptType.Superscript : MathScriptType.Subscript;\n finalize(base_1, sc.equation);\n finalize(script_1, sc.script);\n };\n }\n else if (scriptKind === 'limit') {\n var base_2 = this.fill(name);\n this.regular(base_2);\n var lim_1 = scriptText !== null ? this.fill(scriptText) : [];\n make = function (f) {\n var l = add(f.functionName, MathFunctionType.Limit);\n l.limitType = MathLimitType.LowerLimit;\n finalize(base_2, l.equation);\n finalize(lim_1, l.limit);\n };\n }\n else {\n var saved = this.current;\n this.current = nameSeq;\n this.setRun(name);\n this.current = saved;\n this.regular(nameSeq);\n make = function (f) { return finalize(nameSeq, f.functionName); };\n }\n this.ensure();\n var inner = body !== '' ? this.fill(body) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.Function);\n make(f);\n finalize(inner, f.equation);\n });\n };\n LatexParser.prototype.regular = function (seq) {\n var first = seq[0];\n if (first instanceof RunBuf) {\n first.sty = MathStyleType.Regular;\n }\n };\n LatexParser.prototype.parseGroupChar = function () {\n var _a = this.oneArg(), start = _a.start, at = _a.at, text = _a.text;\n if (text === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var inner = text ? this.fill(text) : [];\n var over = start === '\\\\overbrace';\n this.add(function (t) {\n var f = add(t, MathFunctionType.GroupCharacter);\n if (over) {\n f.groupCharacter = chr(9182);\n f.hasAlignTop = false;\n f.hasCharacterTop = true;\n }\n finalize(inner, f.equation);\n });\n };\n /** Compares the current element without TypeScript narrowing across mutating calls. */\n LatexParser.prototype.isCurrent = function (value) {\n return this.cur === value;\n };\n LatexParser.prototype.parseLimit = function (equation, startPos) {\n if (!this.isCurrent(LOW_LIMIT)) {\n return;\n }\n var lim = this.equationString();\n if (lim === SPACE && this.isCurrent(SPACE)) {\n lim = this.equationString();\n }\n if (lim === null) {\n this.fallbackRun(startPos);\n return;\n }\n var base = this.fill(equation);\n var limit = lim !== SPACE ? this.fill(lim) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.Limit);\n f.limitType = MathLimitType.LowerLimit;\n finalize(base, f.equation);\n finalize(limit, f.limit);\n });\n };\n // ─── Matrix ───────────────────────────────────────────────────────────────\n LatexParser.prototype.parseMatrix = function () {\n var _this = this;\n var at = this.pos;\n var start = nz(this.cur);\n this.cur = this.next();\n if (this.cur !== GROUP_START) {\n this.setRun(start);\n this.useExisting = true;\n return;\n }\n var g = this.group();\n var m = g.ok && g.text === 'matrix' ? this.matrixRows() : null;\n if (m === null) {\n this.fallbackRun(at - start.length);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(this.latex.substring(at - start.length, this.pos - 1), at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n var rows = m.rows.map(function (cols) {\n var cells = [];\n for (var i = 0; i < m.maxCols; i++) {\n cells.push(i < cols.length ? _this.fill(cols[i]) : []);\n }\n return cells;\n });\n var columnCount = m.maxCols;\n this.add(function (t) {\n var f = add(t, MathFunctionType.Matrix);\n for (var i = 0; i < columnCount; i++) {\n f.columns.add().horizontalAlignment = MathHorizontalAlignment.Center;\n }\n rows.forEach(function (r) {\n var row = f.rows.add();\n r.forEach(function (c, i) { return finalize(c, row.arguments.getItem(i)); });\n });\n });\n };\n LatexParser.prototype.matrixRows = function () {\n var rows = [];\n var maxCols = 0;\n var depth = 1;\n var between = '';\n var cols = [];\n var endRow = function () {\n cols.push(between);\n between = '';\n maxCols = Math.max(maxCols, cols.length);\n rows.push(cols);\n cols = [];\n };\n while (depth > 0 && this.pos < this.latex.length) {\n this.cur = this.next();\n while (this.cur === SPACE) {\n this.cur = this.next();\n }\n if (this.cur === CONTROL_START) {\n this.cur = this.next();\n if (this.cur === CONTROL_START) {\n this.cur += CONTROL_START;\n }\n }\n var c = this.cur;\n if (c === '\\\\begin') {\n between += c;\n var startEl = nz((this.cur = this.next()));\n var g = this.group();\n if (g.ok && g.text === 'matrix') {\n depth++;\n }\n between += startEl + g.text + nz(this.cur);\n }\n else if (c === '\\\\end') {\n var startEl = c + nz((this.cur = this.next()));\n var g = this.group();\n if (g.ok && g.text === 'matrix' && depth === 1) {\n if (cols.length !== 0 || between !== '') {\n endRow();\n }\n depth--;\n }\n else if (depth === 1) {\n return null;\n }\n else {\n between += startEl + g.text + nz(this.cur);\n }\n }\n else if (c === MATRIX_COL_END) {\n if (depth === 1) {\n cols.push(between);\n between = '';\n }\n else {\n between += c;\n }\n }\n else if (c === MATRIX_ROW_END) {\n if (depth === 1) {\n endRow();\n }\n else {\n between += c;\n }\n }\n else {\n between += nz(c);\n }\n }\n return depth === 0 ? { rows: rows, maxCols: maxCols } : null;\n };\n // ─── N-ary ────────────────────────────────────────────────────────────────\n LatexParser.prototype.parseNary = function () {\n var at = this.pos;\n var start = nz(this.cur);\n var eq = this.equationString();\n var subText = null;\n var supText = null;\n for (var i = 0; i < 2; i++) {\n if (eq === SPACE && this.cur === SPACE) {\n eq = this.equationString();\n }\n else {\n break;\n }\n }\n if (this.cur === SUB) {\n subText = this.equationString();\n }\n else if (this.cur === SUPER) {\n supText = this.equationString();\n }\n if (subText !== null) {\n eq = this.equationString();\n if (this.cur === SUPER) {\n supText = this.equationString();\n }\n }\n else if (supText !== null) {\n eq = this.equationString();\n if (this.cur === SUB) {\n subText = this.equationString();\n }\n }\n if (subText !== null && supText !== null) {\n eq = this.equationString();\n }\n if (eq !== null) {\n eq = this.naryTail(eq);\n }\n if (eq === null && this.cur !== null) {\n this.fallbackRun(at - start.length);\n return;\n }\n var sub = subText !== null ? this.fill(subText) : [];\n var sup = supText !== null ? this.fill(supText) : [];\n var base = eq !== SPACE ? this.fill(eq) : [];\n var character = chr(NARY[start]);\n this.add(function (t) {\n var f = add(t, MathFunctionType.NArray);\n f.nArrayCharacter = character;\n if (subText === null) {\n f.hideLowerLimit = true;\n }\n if (supText === null) {\n f.hideUpperLimit = true;\n }\n if (subText === null && supText === null) {\n f.subSuperscriptLimit = false;\n }\n finalize(sub, f.subscript);\n finalize(sup, f.superscript);\n finalize(base, f.equation);\n });\n };\n /** Greedily absorbs trailing script groups into the N-ary operand (mirrors compression). */\n LatexParser.prototype.naryTail = function (first) {\n var eq = first;\n var isLeft = false;\n if (this.cur === GROUP_END && hasScriptPair(eq)) {\n eq = GROUP_START + eq + GROUP_END;\n isLeft = true;\n }\n var part = this.equationString();\n var check = true;\n if (part !== null && isLeft) {\n eq += GROUP_START + part + GROUP_END;\n }\n else if (part === null && (this.cur === SUPER || this.cur === SUB)) {\n eq += this.cur + GROUP_START + nz(this.equationString()) + GROUP_END;\n }\n else if (part !== null && hasScriptPair(part)) {\n eq += GROUP_START + part + GROUP_END;\n }\n else {\n this.useExisting = true;\n check = false;\n if (part !== null && this.cur !== part) {\n this.cur = part;\n }\n }\n while (check) {\n part = this.equationString();\n if (part === null && (this.cur === SUPER || this.cur === SUB)) {\n eq += this.cur + GROUP_START + nz(this.equationString()) + GROUP_END;\n }\n else if (part !== null && hasScriptPair(part)) {\n eq += GROUP_START + part + GROUP_END;\n }\n else {\n this.useExisting = true;\n check = false;\n }\n }\n return eq;\n };\n // ─── Radical ──────────────────────────────────────────────────────────────\n LatexParser.prototype.parseRadical = function () {\n var at = this.pos;\n var start = nz(this.cur);\n this.cur = this.next();\n if (this.cur === SPACE) {\n this.cur = this.next();\n }\n var degree = this.squareGroup();\n if (degree !== null) {\n this.cur = this.next();\n }\n var equation = null;\n var valid = false;\n var notInGroup = false;\n if (this.cur === GROUP_START) {\n var g = this.group();\n valid = g.ok;\n equation = g.text;\n }\n else {\n notInGroup = true;\n }\n if (notInGroup && this.cur !== null && this.cur.length === 1 && (LETTER_OR_DIGIT.test(this.cur) || this.cur === SPACE)) {\n equation = this.cur;\n }\n if (!(notInGroup || valid)) {\n this.fallbackRun(at - start.length);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(this.latex.substring(at - start.length, this.pos - 1), at);\n return;\n }\n if (this.cur !== null) {\n this.useExisting = true;\n }\n var hide = !(degree !== null && equation !== null);\n var deg = !hide ? this.fill(degree) : [];\n var body = [];\n if (equation !== null && equation !== SPACE) {\n body = this.fill(equation);\n }\n else if (equation === null) {\n this.useExisting = true;\n if (degree !== null) {\n this.setRun(\"[\" + degree + \"]\");\n }\n }\n this.add(function (t) {\n var f = add(t, MathFunctionType.Radical);\n if (hide) {\n f.hideDegree = true;\n }\n finalize(deg, f.degree);\n finalize(body, f.equation);\n });\n };\n // ─── Groups and scripts ───────────────────────────────────────────────────\n LatexParser.prototype.parseGroupStart = function () {\n var startPos = this.pos - GROUP_START.length;\n var g = this.group();\n if (!g.ok) {\n this.setRun(GROUP_START);\n this.sub(g.text, this.current);\n return;\n }\n if (hasScriptPair(g.text)) {\n this.parseLeftScript(g.text, startPos);\n return;\n }\n this.cur = this.next();\n if (this.cur === SUPER || this.cur === SUB) {\n this.parseScript(g.text, startPos);\n }\n else if (this.cur === LOW_LIMIT) {\n this.parseLimit(g.text, startPos);\n }\n else if (this.cur === '\\\\atop') {\n this.parseNoFractionBar(g.text, startPos);\n }\n else {\n this.sub(g.text, this.current);\n this.useExisting = true;\n }\n };\n LatexParser.prototype.parseScript = function (equation, startPos) {\n if (!(this.cur === SUPER || this.cur === SUB)) {\n return;\n }\n var isSup = this.cur === SUPER;\n var script = this.equationString();\n if (script === null && this.cur !== null) {\n this.fallbackRun(startPos);\n return;\n }\n if (this.cur !== null) {\n this.cur = this.next();\n if ((isSup && this.cur === SUB) || (!isSup && this.cur === SUPER)) {\n this.parseRightScript(equation, script, isSup, startPos);\n return;\n }\n this.useExisting = true;\n }\n this.ensure();\n var base = this.fill(equation);\n var scriptSeq = script ? this.fill(script) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.SubSuperscript);\n f.scriptType = isSup ? MathScriptType.Superscript : MathScriptType.Subscript;\n finalize(base, f.equation);\n finalize(scriptSeq, f.script);\n });\n };\n LatexParser.prototype.parseRightScript = function (equation, first, isSup, startPos) {\n var second = this.equationString();\n if (second === null && this.cur !== null) {\n this.fallbackRun(startPos);\n return;\n }\n var keep = function (s) { return (s !== null && s !== SPACE ? s : null); };\n var base = this.fill(keep(equation));\n var sup = this.fill(keep(isSup ? first : second));\n var sub = this.fill(keep(isSup ? second : first));\n this.add(function (t) {\n var f = add(t, MathFunctionType.RightSubSuperscript);\n finalize(base, f.equation);\n finalize(sub, f.subscript);\n finalize(sup, f.superscript);\n });\n };\n LatexParser.prototype.parseLeftScript = function (group, startPos) {\n var sub = null;\n var sup = null;\n var saved = { latex: this.latex, pos: this.pos, cur: this.cur };\n this.latex = group;\n this.pos = 1;\n if (group.startsWith(SUB)) {\n sub = this.equationString();\n }\n else {\n sup = this.equationString();\n }\n if (sub !== null) {\n this.cur = this.next();\n if (this.cur === SUPER) {\n sup = this.equationString();\n }\n }\n else if (sup !== null) {\n this.cur = this.next();\n if (this.cur === SUB) {\n sub = this.equationString();\n }\n }\n this.latex = saved.latex;\n this.pos = saved.pos;\n this.cur = saved.cur;\n var eq = null;\n if (sub !== null && sup !== null) {\n eq = this.equationString();\n }\n if (eq === null && this.cur !== null) {\n this.fallbackRun(startPos);\n return;\n }\n var keep = function (s) { return (s !== SPACE ? s : null); };\n var subSeq = this.fill(keep(sub));\n var supSeq = this.fill(keep(sup));\n var base = eq !== null && eq !== SPACE ? this.fill(eq) : [];\n this.add(function (t) {\n var f = add(t, MathFunctionType.LeftSubSuperscript);\n finalize(subSeq, f.subscript);\n finalize(supSeq, f.superscript);\n finalize(base, f.equation);\n });\n };\n return LatexParser;\n}());\nexport { LatexParser };\n/**\n * Convert a LaTeX equation string to an Office Math paragraph.\n *\n * Mirrors Microsoft Word's \"linear LaTeX\" behavior as implemented by Syncfusion\n * `LaTeXConverter.ParseMathPara`: unsupported or malformed constructs degrade to\n * plain text runs instead of throwing.\n *\n * @param latex - LaTeX source (for example `\\frac{a}{b}` or `\\sqrt[3]{x}`).\n * @returns An {@link OfficeMathParagraph} holding one {@link OfficeMath} per top-level equation.\n * @public\n */\nexport function parseLatexToMath(latex, adapter) {\n var paragraph = new OfficeMathParagraph(adapter);\n parseLatexIntoMathParagraph(latex, paragraph);\n return paragraph;\n}\n/**\n * Appends the equations parsed from a LaTeX string to an existing Math paragraph.\n * Runs are created through the target's document adapter when it has one.\n *\n * @param latex - LaTeX source.\n * @param target - The paragraph to populate; it keeps its identity, owner, adapter and listener.\n * @public\n */\nexport function parseLatexIntoMathParagraph(latex, target) {\n new LatexParser().populate(latex, target);\n}\n","var __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar _a;\n/**\n * Office Math model → LaTeX generator.\n *\n * Port of compression `LaTeXConverter.GetLaTeX` (Math to LaTeX region). Output\n * syntax matches what `parseLatexToMath` accepts. Unsupported element kinds are\n * skipped, as in the .NET implementation.\n *\n * @packageDocumentation\n */\nimport { MathFontType, MathFractionType, MathFunctionType, MathScriptType, MathStyleType } from '../office-math/enums';\nimport { K } from '../office-math/keys';\nimport { OfficeMathParagraph } from '../office-math/math-paragraph';\nimport { getSymbolLatex } from './latex-symbols';\n// Built at runtime: `u`-flag literals are rejected by ES5 compile targets.\nvar LETTER = new RegExp('^\\\\p{L}$', 'u');\nfunction orDefault(value, fallback) {\n return value !== undefined && value !== null ? value : fallback;\n}\nvar ACCENT_COMMANDS = {\n 775: '\\\\dot', 776: '\\\\ddot', 8411: '\\\\dddot', 770: '\\\\widehat', 780: '\\\\check', 768: '\\\\grave', 774: '\\\\breve',\n 771: '\\\\widetilde', 769: '\\\\acute', 773: '\\\\bar', 831: '\\\\bar{\\\\bar', 8407: '\\\\vec', 8401: '\\\\hvec',\n};\nvar NARY_COMMANDS = {\n 8721: '\\\\sum', 8747: '\\\\int', 8748: '\\\\iint', 8749: '\\\\iiint', 8750: '\\\\oint', 8751: '\\\\oiint', 8752: '\\\\oiiint',\n 8753: '\\\\cwint', 8754: '\\\\coint', 8755: '\\\\aoint', 8719: '\\\\prod', 8720: '\\\\amalg', 8898: '\\\\bigcap', 8899: '\\\\bigcup',\n 8896: '\\\\bigwedge', 8897: '\\\\bigvee', 10752: '\\\\bigodot', 10754: '\\\\bigotimes', 10753: '\\\\bigoplus', 10756: '\\\\biguplus',\n 10755: '\\\\bigudot',\n};\nvar DELIMITER_COMMANDS = {\n 40: '(', 91: '[', 123: '{', 41: ')', 93: ']', 125: '}', 124: '|', 9001: '\\\\langle', 8968: '\\\\lceil', 8970: '\\\\lfloor',\n 9002: '\\\\rangle', 8969: '\\\\rceil', 8971: '\\\\rfloor',\n};\nvar FONT_COMMANDS = (_a = {},\n _a[MathFontType.DoubleStruck] = '\\\\mathbb',\n _a[MathFontType.Fraktur] = '\\\\mathfrak',\n _a[MathFontType.Monospace] = '\\\\mathtt',\n _a[MathFontType.SansSerif] = '\\\\mathsf',\n _a[MathFontType.Script] = '\\\\mathscr',\n _a);\nvar LatexGenerator = /** @class */ (function () {\n function LatexGenerator() {\n this.out = '';\n this.inFunctionName = false;\n }\n LatexGenerator.prototype.generate = function (equations) {\n var e_1, _a;\n try {\n for (var equations_1 = __values(equations), equations_1_1 = equations_1.next(); !equations_1_1.done; equations_1_1 = equations_1.next()) {\n var eq = equations_1_1.value;\n this.arg(eq);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (equations_1_1 && !equations_1_1.done && (_a = equations_1.return)) _a.call(equations_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this.out;\n };\n LatexGenerator.prototype.group = function (arg) {\n this.out += '{';\n this.arg(arg);\n this.out += '}';\n };\n LatexGenerator.prototype.arg = function (arg) {\n if (arg) {\n for (var i = 0; i < arg.functions.count; i++) {\n this.element(arg.functions.getItem(i));\n }\n }\n };\n LatexGenerator.prototype.element = function (el) {\n switch (el.type) {\n case MathFunctionType.RunElement:\n this.run(el);\n break;\n case MathFunctionType.Accent:\n this.accent(el);\n break;\n case MathFunctionType.Bar:\n this.out += el.barTop ? '\\\\overline' : '\\\\underline';\n this.group(el.equation);\n break;\n case MathFunctionType.Box:\n this.out += '\\\\box';\n this.group(el.equation);\n break;\n case MathFunctionType.BorderBox:\n this.out += '\\\\fbox';\n this.group(el.equation);\n break;\n case MathFunctionType.Fraction:\n this.fraction(el);\n break;\n case MathFunctionType.Function:\n this.func(el);\n break;\n case MathFunctionType.Delimiter:\n this.delimiter(el);\n break;\n case MathFunctionType.GroupCharacter:\n this.groupChar(el);\n break;\n case MathFunctionType.Limit:\n this.limit(el);\n break;\n case MathFunctionType.Matrix:\n this.matrix(el);\n break;\n case MathFunctionType.NArray:\n this.nary(el);\n break;\n case MathFunctionType.Radical:\n this.radical(el);\n break;\n case MathFunctionType.SubSuperscript: {\n var s = el;\n this.script(s.equation, s.scriptType === MathScriptType.Subscript ? '_' : '^', s.script);\n break;\n }\n case MathFunctionType.LeftSubSuperscript: {\n var s = el;\n this.out += '{_';\n this.group(s.subscript);\n this.out += '^';\n this.group(s.superscript);\n this.out += '}';\n this.group(s.equation);\n break;\n }\n case MathFunctionType.RightSubSuperscript: {\n var s = el;\n this.group(s.equation);\n this.out += '_';\n this.group(s.subscript);\n this.out += '^';\n this.group(s.superscript);\n break;\n }\n case MathFunctionType.EquationArray: {\n var e = el;\n this.out += '\\\\eqarray{';\n for (var i = 0; i < e.equations.count; i++) {\n if (i > 0) {\n this.out += '@';\n }\n this.arg(e.equations.getItem(i));\n }\n this.out += '}';\n break;\n }\n default: break;\n }\n };\n LatexGenerator.prototype.accent = function (el) {\n var code = el.accentCharacter.charCodeAt(0);\n this.out += orDefault(ACCENT_COMMANDS[code], '');\n this.group(el.equation);\n if (code === 831) {\n this.out += '}';\n }\n };\n LatexGenerator.prototype.fraction = function (el) {\n var type = el.fractionType;\n if (type === MathFractionType.NormalFractionBar) {\n this.out += '\\\\frac';\n }\n else if (type === MathFractionType.SkewedFractionBar || type === MathFractionType.FractionInline) {\n this.out += '\\\\sfrac';\n }\n this.group(el.numerator);\n if (type === MathFractionType.NoFractionBar) {\n this.out += '\\\\atop';\n }\n this.group(el.denominator);\n };\n LatexGenerator.prototype.func = function (el) {\n this.inFunctionName = true;\n this.out += '\\\\';\n this.arg(el.functionName);\n this.inFunctionName = false;\n this.group(el.equation);\n };\n LatexGenerator.prototype.delimiterChar = function (chr) {\n this.out += chr.length > 0 ? orDefault(DELIMITER_COMMANDS[chr.charCodeAt(0)], '') : '.';\n };\n LatexGenerator.prototype.delimiter = function (el) {\n this.out += '\\\\left';\n this.delimiterChar(el.beginCharacter);\n this.out += ' ';\n for (var i = 0; i < el.equations.count; i++) {\n this.arg(el.equations.getItem(i));\n if (i < el.equations.count - 1) {\n this.out += '\\\\middle';\n this.delimiterChar(el.separator);\n this.out += ' ';\n }\n }\n this.out += '\\\\right';\n this.delimiterChar(el.endCharacter);\n };\n LatexGenerator.prototype.groupChar = function (el) {\n var code = el.groupCharacter.charCodeAt(0);\n if (code === 9182) {\n this.out += '\\\\overbrace';\n }\n else if (code === 9183) {\n this.out += '\\\\underbrace';\n }\n this.group(el.equation);\n };\n LatexGenerator.prototype.limit = function (el) {\n if (!this.inFunctionName) {\n this.out += '{';\n }\n this.arg(el.equation);\n if (!this.inFunctionName) {\n this.out += '}';\n }\n this.out += '\\\\below';\n this.group(el.limit);\n };\n LatexGenerator.prototype.matrix = function (el) {\n var e_2, _a;\n this.out += '\\\\begin{matrix}';\n try {\n for (var _b = __values(el.rowItems), _c = _b.next(); !_c.done; _c = _b.next()) {\n var row = _c.value;\n var count = row.arguments.count;\n for (var i = 0; i < count; i++) {\n this.arg(row.arguments.getItem(i));\n if (i !== count - 1) {\n this.out += '&';\n }\n }\n this.out += '\\\\\\\\';\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.out += '\\\\end{matrix}';\n };\n LatexGenerator.prototype.nary = function (el) {\n this.out += orDefault(NARY_COMMANDS[el.nArrayCharacter.charCodeAt(0)], '');\n if (el.subscript.functions.count > 0) {\n this.out += '_';\n this.group(el.subscript);\n }\n if (el.superscript.functions.count > 0) {\n this.out += '^';\n this.group(el.superscript);\n }\n this.group(el.equation);\n };\n LatexGenerator.prototype.radical = function (el) {\n this.out += '\\\\sqrt';\n if (el.degree.functions.count > 0) {\n this.out += '[';\n this.arg(el.degree);\n this.out += ']';\n }\n this.group(el.equation);\n };\n LatexGenerator.prototype.script = function (base, op, script) {\n if (!this.inFunctionName) {\n this.out += '{';\n }\n this.arg(base);\n if (!this.inFunctionName) {\n this.out += '}';\n }\n this.out += op;\n this.group(script);\n };\n LatexGenerator.prototype.run = function (el) {\n var e_3, _a;\n var text = el.text;\n var format = el.mathFormat;\n var sty = format.isExplicit(K.Style) ? format.style : undefined;\n var scr = format.isExplicit(K.Script) ? format.font : undefined;\n var openers = [];\n if (sty === MathStyleType.BoldItalic) {\n openers.push('\\\\mathbit{');\n }\n else if (sty === MathStyleType.Bold) {\n openers.push('\\\\mathbf{');\n }\n if (scr !== undefined && FONT_COMMANDS[scr] !== undefined) {\n openers.push(FONT_COMMANDS[scr] + \"{\");\n }\n if (format.hasNormalText) {\n openers.push('\\\\mathrm{');\n }\n var applied = 0;\n var applyFormats = true;\n var lastSymbol = false;\n try {\n for (var text_1 = __values(text), text_1_1 = text_1.next(); !text_1_1.done; text_1_1 = text_1.next()) {\n var ch = text_1_1.value;\n var symbol = getSymbolLatex(ch, scr === MathFontType.Script);\n if (symbol !== undefined) {\n this.out += '}'.repeat(applied);\n applied = 0;\n applyFormats = true;\n this.out += symbol;\n lastSymbol = true;\n continue;\n }\n if (lastSymbol && LETTER.test(ch)) {\n this.out += ' ';\n }\n lastSymbol = false;\n if (applyFormats) {\n this.out += openers.join('');\n applied = openers.length;\n applyFormats = false;\n }\n this.out += ch;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (text_1_1 && !text_1_1.done && (_a = text_1.return)) _a.call(text_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n this.out += '}'.repeat(applied);\n };\n return LatexGenerator;\n}());\n/**\n * Converts a math paragraph (or a single `m:oMath`) to a LaTeX string.\n *\n * @public\n */\nexport function mathToLatex(math) {\n return new LatexGenerator().generate(math instanceof OfficeMathParagraph ? math.maths.toArray() : [math]);\n}\n","/**\n * Office Math paragraph (`m:oMathPara`): the root of the Math model.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OwnerHolder } from './owner-holder';\nimport { OfficeMathCollection } from './math-collection';\nimport { MathJustification } from './enums';\nimport { K } from './keys';\nimport { BasicRunFormat } from './basic';\nimport { parseLatexIntoMathParagraph } from '../latex/latex-parser';\nimport { mathToLatex } from '../latex/latex-generator';\n/**\n * Root container of equations. Notifies a host listener on any change below it.\n *\n * @public\n */\nvar OfficeMathParagraph = /** @class */ (function (_super) {\n __extends(OfficeMathParagraph, _super);\n function OfficeMathParagraph(adapter) {\n var _this = _super.call(this) || this;\n _this._suspended = 0;\n _this.adapter = adapter;\n _this._maths = new OfficeMathCollection(_this);\n return _this;\n }\n Object.defineProperty(OfficeMathParagraph.prototype, \"maths\", {\n /** Equations of the paragraph. */\n get: function () { return this._maths; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathParagraph.prototype, \"justification\", {\n /** Paragraph justification. Default center-group. */\n get: function () {\n return this.getProperty(K.Justification, function () { return MathJustification.CenterGroup; });\n },\n set: function (value) { this.setProperty(K.Justification, value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathParagraph.prototype, \"hasExplicitJustification\", {\n /** Whether the justification was set or parsed explicitly. */\n get: function () { return this.isExplicit(K.Justification); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathParagraph.prototype, \"defaultMathCharacterFormat\", {\n /** Default Math character format used to seed function control properties. */\n get: function () {\n return this.adapter !== undefined\n ? this.adapter.createDefaultMathCharacterFormat(this)\n : new BasicRunFormat();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathParagraph.prototype, \"latex\", {\n /**\n * LaTeX of the current equations, generated from the live Math tree.\n * Assigning replaces all equations on this same paragraph.\n */\n get: function () { return mathToLatex(this); },\n set: function (value) { this.convertLatexToMath(value); },\n enumerable: true,\n configurable: true\n });\n /**\n * Replaces all equations with those parsed from `latex`. The paragraph keeps its identity, owner,\n * adapter and mutation listener; one mutation notification is raised after the replacement.\n * An empty string leaves the paragraph without equations.\n *\n * @param {string} latex The LaTeX source.\n * @returns {void}\n */\n OfficeMathParagraph.prototype.convertLatexToMath = function (latex) {\n var _this = this;\n this.suspendMutations(function () {\n _this._maths.clear();\n parseLatexIntoMathParagraph(latex, _this);\n });\n this.notifyMutated();\n };\n /**\n * Registers a callback invoked after any change in the Math tree.\n *\n * @param {Function} listener The mutation callback, or undefined to clear it.\n * @returns {void}\n */\n OfficeMathParagraph.prototype.setMutationListener = function (listener) { this._listener = listener; };\n /**\n * Runs `action` without raising mutation notifications, then restores notifications.\n * Used while hydrating the model from XML.\n *\n * @param {Function} action The work to perform silently.\n * @returns {void}\n * @private\n */\n OfficeMathParagraph.prototype.suspendMutations = function (action) {\n this._suspended++;\n try {\n action();\n }\n finally {\n this._suspended--;\n }\n };\n OfficeMathParagraph.prototype.rootMutated = function () {\n if (this._suspended === 0 && this._listener !== undefined) {\n this._listener();\n }\n };\n return OfficeMathParagraph;\n}(OwnerHolder));\nexport { OfficeMathParagraph };\n","/**\n * Preservation of unrecognized Math elements.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { MathFunctionType } from './enums';\nimport { OfficeMathFunctionBase } from './function-base';\n/**\n * An unrecognized `m:*` element kept verbatim so a load and save does not lose content.\n *\n * @public\n */\nvar OfficeMathUnknownElement = /** @class */ (function (_super) {\n __extends(OfficeMathUnknownElement, _super);\n /**\n * Creates the preserved element.\n *\n * @param {string} localName Local name of the element.\n * @param {OpenXmlElement} xml The original element tree.\n * @param {OfficeMathEntity} owner Optional owner.\n */\n function OfficeMathUnknownElement(localName, xml, owner) {\n var _this = _super.call(this, owner) || this;\n _this.type = MathFunctionType.Unknown;\n _this._localName = localName;\n _this._xml = xml;\n return _this;\n }\n Object.defineProperty(OfficeMathUnknownElement.prototype, \"localName\", {\n /**\n * Local name of the preserved element.\n *\n * @returns {string} The local name.\n */\n get: function () { return this._localName; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(OfficeMathUnknownElement.prototype, \"preservedXml\", {\n /**\n * The preserved element tree, re-serialized verbatim.\n *\n * @returns {OpenXmlElement} The original element tree.\n */\n get: function () { return this._xml; },\n enumerable: true,\n configurable: true\n });\n return OfficeMathUnknownElement;\n}(OfficeMathFunctionBase));\nexport { OfficeMathUnknownElement };\n","/**\n * Structural traversal shared by clone and equality over the Math model.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { MathFunctionType } from './enums';\nimport { OfficeMath } from './office-math';\n/**\n * Lists the child equations of a function in a fixed, schema-like order.\n * Matrix cells are listed row by row.\n *\n * @param {OfficeMathFunctionBase} fn The function to inspect.\n * @returns {OfficeMath[]} Child equations in order.\n * @private\n */\nexport function childEquations(fn) {\n var holder = fn;\n if (fn.type === MathFunctionType.Matrix) {\n var cells_1 = [];\n fn.rowItems.forEach(function (row) {\n var e_1, _a;\n try {\n for (var _b = __values(row.arguments), _c = _b.next(); !_c.done; _c = _b.next()) {\n var cell = _c.value;\n cells_1.push(cell);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n return cells_1;\n }\n var result = [];\n ['equation', 'degree', 'numerator', 'denominator', 'functionName', 'limit', 'script', 'subscript', 'superscript']\n .forEach(function (name) {\n var value = holder[name];\n if (value instanceof OfficeMath) {\n result.push(value);\n }\n });\n var list = holder['equations'];\n if (list !== undefined) {\n result.push.apply(result, __spread(Array.from(list)));\n }\n return result;\n}\n/**\n * Returns the manual break owned by a box or run element.\n *\n * @param {OfficeMathFunctionBase} fn The function to inspect.\n * @returns {OfficeMathBreak | undefined} The break, when present.\n * @private\n */\nexport function breakOf(fn) {\n if (fn.type === MathFunctionType.Box) {\n return fn.break;\n }\n if (fn.type === MathFunctionType.RunElement) {\n return fn.mathFormat.break;\n }\n return undefined;\n}\n","/**\n * Deep clone of the Math model.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nimport { MathFunctionType } from './enums';\nimport { OfficeMath } from './office-math';\nimport { OfficeMathParagraph } from './math-paragraph';\nimport { OfficeMathUnknownElement } from './unknown-element';\nimport { OfficeMathBreak } from './break';\nimport { BasicRun } from './basic';\nimport { childEquations } from './math-traversal';\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathBreak} source The source object.\n * @returns {OfficeMathBreak} The result.\n */\nfunction cloneBreak(source) {\n var copy = new OfficeMathBreak();\n copy.copyExplicitFrom(source);\n return copy;\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathRunElement} source The source object.\n * @param {OfficeMathRunElement} target The target to populate.\n * @param {OfficeMathParagraph} root The owning Math paragraph.\n * @returns {void}\n */\nfunction cloneRunContent(source, target, root) {\n target.mathFormat.copyExplicitFrom(source.mathFormat);\n if (source.mathFormat.break !== undefined) {\n target.mathFormat.break = cloneBreak(source.mathFormat.break);\n }\n if (source.item === undefined) {\n return;\n }\n if (root.adapter !== undefined) {\n target.item = root.adapter.cloneRun(source.item);\n }\n else {\n if (source.item instanceof BasicRun) {\n target.item = source.item.clone();\n }\n else {\n var run = new BasicRun();\n run.text = source.text;\n target.item = run;\n }\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} source The source object.\n * @param {OfficeMathFunctionBase} target The target to populate.\n * @returns {void}\n */\nfunction prepareStructure(source, target) {\n if (source.type === MathFunctionType.Matrix) {\n var from = source;\n var to_1 = target;\n from.columns.toArray().forEach(function (column) { return to_1.columns.add().copyExplicitFrom(column); });\n from.rowItems.forEach(function (row) { return to_1.rows.add().copyExplicitFrom(row); });\n }\n else if (source.type === MathFunctionType.Delimiter || source.type === MathFunctionType.EquationArray) {\n var from = source;\n var to = target;\n for (var i = 0; i < from.equations.count; i++) {\n to.equations.add();\n }\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} source The source object.\n * @param {OfficeMathFunctionBase} target The target to populate.\n * @returns {void}\n */\nfunction copyFunctionState(source, target) {\n target.copyExplicitFrom(source);\n if (source.hasControlProperties) {\n target.controlProperties = source.controlProperties.clone();\n }\n if (source.type === MathFunctionType.Box && source.break !== undefined) {\n var sourceBreak = source.break;\n var from = source.ownerMathEntity instanceof OfficeMath ? source.ownerMathEntity : undefined;\n var to = target.ownerMathEntity instanceof OfficeMath ? target.ownerMathEntity : undefined;\n var index = from !== undefined ? from.breaks.toArray().indexOf(sourceBreak) : -1;\n target.break = index >= 0 && to !== undefined ? to.breaks.getItem(index) : cloneBreak(sourceBreak);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} source The source object.\n * @param {OfficeMath} destination The destination equation.\n * @param {OfficeMathParagraph} root The owning Math paragraph.\n * @returns {void}\n */\nfunction cloneFunctionInto(source, destination, root) {\n if (source instanceof OfficeMathUnknownElement) {\n destination.functions.insert(destination.functions.count, new OfficeMathUnknownElement(source.localName, source.preservedXml));\n return;\n }\n var target = destination.functions.add(source.type);\n copyFunctionState(source, target);\n if (source.type === MathFunctionType.RunElement) {\n cloneRunContent(source, target, root);\n return;\n }\n prepareStructure(source, target);\n var from = childEquations(source);\n var to = childEquations(target);\n from.forEach(function (child, i) { return cloneEquationInto(child, to[i], root); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMath} source The source object.\n * @param {OfficeMath} target The target to populate.\n * @param {OfficeMathParagraph} root The owning Math paragraph.\n * @returns {void}\n */\nfunction cloneEquationInto(source, target, root) {\n var e_1, _a, e_2, _b;\n target.copyExplicitFrom(source);\n target.preservedControlProperties = source.preservedControlProperties;\n try {\n for (var _c = __values(source.breaks), _d = _c.next(); !_d.done; _d = _c.next()) {\n var brk = _d.value;\n target.breaks.add().copyExplicitFrom(brk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(source.functions), _f = _e.next(); !_f.done; _f = _e.next()) {\n var fn = _f.value;\n cloneFunctionInto(fn, target, root);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/**\n * Deep-clones an equation as a new, detached equation.\n *\n * @param {OfficeMath} source The equation to clone.\n * @param {OfficeMathParagraph} root Paragraph that supplies the host adapter for the copy.\n * @returns {OfficeMath} An attached copy living under `root`.\n */\nexport function cloneOfficeMath(source, root) {\n var copy = root.maths.add();\n cloneEquationInto(source, copy, root);\n return copy;\n}\n/**\n * Deep-clones a Math paragraph including explicit properties, owners and unknown elements.\n *\n * @param {OfficeMathParagraph} source The paragraph to clone.\n * @returns {OfficeMathParagraph} An independent copy.\n */\nexport function cloneOfficeMathParagraph(source) {\n var e_3, _a;\n var copy = new OfficeMathParagraph(source.adapter);\n copy.copyExplicitFrom(source);\n try {\n for (var _b = __values(source.maths), _c = _b.next(); !_c.done; _c = _b.next()) {\n var math = _c.value;\n cloneOfficeMath(math, copy);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return copy;\n}\n","/**\n * Semantic equality of two Math trees.\n */\nimport { MathFunctionType } from './enums';\nimport { OfficeMathUnknownElement } from './unknown-element';\nimport { childEquations, breakOf } from './math-traversal';\nimport { xmlEqual } from './xml-equal';\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathBreak | undefined} a First object.\n * @param {OfficeMathBreak | undefined} b Second object.\n * @returns {boolean} The result.\n */\nfunction breakEqual(a, b) {\n if (a === undefined || b === undefined) {\n return a === b;\n }\n return a.explicitEquals(b);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} a First object.\n * @param {OfficeMathFunctionBase} b Second object.\n * @returns {boolean} The result.\n */\nfunction controlEqual(a, b) {\n if (a.hasControlProperties !== b.hasControlProperties) {\n return false;\n }\n if (!a.hasControlProperties) {\n return true;\n }\n var fa = a.controlProperties;\n return fa.equals === undefined || fa.equals(b.controlProperties);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathMatrix} a First object.\n * @param {OfficeMathMatrix} b Second object.\n * @returns {boolean} The result.\n */\nfunction matrixShapeEqual(a, b) {\n var ca = a.columns.toArray();\n var cb = b.columns.toArray();\n var ra = a.rowItems;\n var rb = b.rowItems;\n return ca.length === cb.length && ra.length === rb.length\n && ca.every(function (c, i) { return c.explicitEquals(cb[i]); })\n && ra.every(function (r, i) { return r.explicitEquals(rb[i]); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} a First object.\n * @param {OfficeMathFunctionBase} b Second object.\n * @returns {boolean} The result.\n */\nfunction functionEqual(a, b) {\n if (a.type !== b.type || !a.explicitEquals(b) || !controlEqual(a, b)) {\n return false;\n }\n if (a instanceof OfficeMathUnknownElement) {\n var other = b;\n return a.localName === other.localName && xmlEqual(a.preservedXml, other.preservedXml);\n }\n if (!breakEqual(breakOf(a), breakOf(b))) {\n return false;\n }\n if (a.type === MathFunctionType.RunElement) {\n var ra = a;\n var rb = b;\n return ra.text === rb.text && ra.mathFormat.explicitEquals(rb.mathFormat);\n }\n if (a.type === MathFunctionType.Matrix && !matrixShapeEqual(a, b)) {\n return false;\n }\n var ca = childEquations(a);\n var cb = childEquations(b);\n return ca.length === cb.length && ca.every(function (c, i) { return officeMathEquals(c, cb[i]); });\n}\n/**\n * Semantic equality of two equations (shape, text, explicit properties).\n *\n * @param {OfficeMath} a First equation.\n * @param {OfficeMath} b Second equation.\n * @returns {boolean} True when both trees are equal.\n */\nexport function officeMathEquals(a, b) {\n if (!a.explicitEquals(b) || a.functions.count !== b.functions.count || a.breaks.count !== b.breaks.count) {\n return false;\n }\n var bb = b.breaks.toArray();\n if (!a.breaks.toArray().every(function (x, i) { return breakEqual(x, bb[i]); })) {\n return false;\n }\n var fb = b.functions.toArray();\n return a.functions.toArray().every(function (f, i) { return functionEqual(f, fb[i]); });\n}\n/**\n * Semantic equality of two Math paragraphs.\n *\n * @param {OfficeMathParagraph} a First paragraph.\n * @param {OfficeMathParagraph} b Second paragraph.\n * @returns {boolean} True when both trees are equal.\n */\nexport function officeMathParagraphEquals(a, b) {\n if (!a.explicitEquals(b) || a.maths.count !== b.maths.count) {\n return false;\n }\n var mb = b.maths.toArray();\n return a.maths.toArray().every(function (m, i) { return officeMathEquals(m, mb[i]); });\n}\n","/**\n * Local structural OpenXml element-tree contract for mathml parse/serialize.\n *\n * office-common has no shared `src/core/xml` yet (TASK-9002/9003). This\n * mirrors ej2-docx `src/core/xml/model.ts` so TASK-9011 can pass the same\n * tree shape across the boundary. Unify when core XML lands.\n *\n * These types are part of the public `@syncfusion/ej2-office-common/mathml` surface\n * (parse/serialize boundary). Keep them public under stripInternal builds —\n * never tag this module as internal.\n */\nvar __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\n/** Create an immutable element node. */\nexport function createElement(namespaceUri, localName, prefix, options) {\n return { kind: 'element',\n namespaceUri: namespaceUri,\n localName: localName,\n prefix: prefix,\n attributes: function () {\n var _nc = options == null ? void 0 : options.attributes;\n return _nc != null ? _nc : [];\n }(),\n namespaceDeclarations: function () {\n var _nc = options == null ? void 0 : options.namespaceDeclarations;\n return _nc != null ? _nc : [];\n }(),\n children: function () {\n var _nc = options == null ? void 0 : options.children;\n return _nc != null ? _nc : [];\n }()\n };\n}\n/** Create a text node. */\nexport function createText(value) {\n return {\n kind: 'text',\n value: value\n };\n}\n/** Filter element children only. */\nexport function childElements(element) {\n return element.children.filter(function (c) { return c.kind === 'element'; });\n}\n/** Read the first matching attribute value by local name (any namespace). */\nexport function attrValue(element, localName) {\n return function () {\n var _om = element.attributes.find(function (a) { return a.localName === localName; });\n return _om == null ? void 0 : _om.value;\n }();\n}\n/** Read attribute value restricted to a namespace URI. */\nexport function attrValueNs(element, namespaceUri, localName) {\n return function () {\n var _om = element.attributes.find(function (a) { return a.namespaceUri === namespaceUri && a.localName === localName; });\n return _om == null ? void 0 : _om.value;\n }();\n}\n/** Concatenate direct text-node children. */\nexport function textContent(element) {\n var e_1, _a;\n var out = '';\n try {\n for (var _b = __values(element.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.kind === 'text') {\n out += child.value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return out;\n}\n","/**\n * Property readers that populate the Office Math model from `m:*Pr` elements.\n *\n * Source: ECMA-376-1 §22.1.2 (shared-math.xsd). Invalid values are ignored so the model default applies.\n */\nimport { MATH_NAMESPACE } from '../constants';\nimport { attrValue, childElements } from '../openxml';\nimport { MathDelimiterShapeType, MathFontType, MathFractionType, MathHorizontalAlignment, MathStyleType, MathVerticalAlignment } from '../office-math/enums';\nimport { OfficeMathBreak } from '../office-math/break';\nimport { OfficeMath } from '../office-math/office-math';\n/**\n * Finds the first `m:` child with the given local name. @private\n *\n * @param {OpenXmlElement | undefined} parent The parent element.\n * @param {string} localName The local name to find.\n * @returns {OpenXmlElement | undefined} The result.\n */\nexport function findMathChild(parent, localName) {\n return parent === undefined ? undefined : childElements(parent)\n .filter(function (c) { return c.namespaceUri === MATH_NAMESPACE && c.localName === localName; })[0];\n}\n/**\n * Finds every `m:` child with the given local name. @private\n *\n * @param {OpenXmlElement} parent The parent element.\n * @param {string} localName The local name to find.\n * @returns {OpenXmlElement[]} The result.\n */\nexport function findMathChildren(parent, localName) {\n return childElements(parent).filter(function (c) { return c.namespaceUri === MATH_NAMESPACE && c.localName === localName; });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {string} name The local name of the child element.\n * @returns {string | undefined} The result.\n */\nfunction str(pr, name) {\n var child = findMathChild(pr, name);\n return child === undefined ? undefined : attrValue(child, 'val');\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {string} name The local name of the child element.\n * @returns {boolean | undefined} The result.\n */\nfunction onOff(pr, name) {\n var child = findMathChild(pr, name);\n if (child === undefined) {\n return undefined;\n }\n var raw = attrValue(child, 'val');\n if (raw === undefined) {\n return true;\n }\n var v = raw.toLowerCase();\n return v === '1' || v === 'true' || v === 'on' ? true : v === '0' || v === 'false' || v === 'off' ? false : undefined;\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {string} name The local name of the child element.\n * @returns {number | undefined} The result.\n */\nfunction int(pr, name) {\n var raw = str(pr, name);\n return raw !== undefined && /^\\d+$/.test(raw) ? Number(raw) : undefined;\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {Array<[string, Function]>} table The lookup table of valid values.\n * @returns {void}\n */\nfunction flags(pr, table) {\n table.forEach(function (entry) {\n var value = onOff(pr, entry[0]);\n if (value !== undefined) {\n entry[1](value);\n }\n });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {string} name The local name of the child element.\n * @param {Function} set Callback receiving the parsed value.\n * @returns {void}\n */\nfunction text(pr, name, set) {\n var value = str(pr, name);\n if (value !== undefined) {\n set(value);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {string | undefined} value The value to convert.\n * @returns {MathVerticalAlignment | undefined} The result.\n */\nfunction verticalAlignment(value) {\n if (value === 'top') {\n return MathVerticalAlignment.Top;\n }\n if (value === 'bottom') {\n return MathVerticalAlignment.Bottom;\n }\n return value === 'center' ? MathVerticalAlignment.Center : undefined;\n}\n/**\n * Reads `m:brk` of a property container. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {OfficeMath} owner Optional owning equation whose break collection creates the break.\n * @returns {OfficeMathBreak | undefined} The result.\n */\nexport function readBreak(pr, owner) {\n var brk = findMathChild(pr, 'brk');\n if (brk === undefined) {\n return undefined;\n }\n var result = owner !== undefined ? owner.breaks.add() : new OfficeMathBreak();\n var raw = attrValue(brk, 'alnAt');\n if (raw !== undefined && /^\\d+$/.test(raw) && Number(raw) >= 1 && Number(raw) <= 255) {\n result.alignAt = Number(raw);\n }\n return result;\n}\nvar FONTS = {\n 'roman': MathFontType.Roman, 'script': MathFontType.Script, 'fraktur': MathFontType.Fraktur,\n 'double-struck': MathFontType.DoubleStruck, 'sans-serif': MathFontType.SansSerif, 'monospace': MathFontType.Monospace\n};\nvar STYLES = {\n p: MathStyleType.Regular, b: MathStyleType.Bold, i: MathStyleType.Italic, bi: MathStyleType.BoldItalic\n};\n/**\n * Applies `m:rPr` to a run format. @private\n *\n * @param {OfficeMathFormat} format The Math run format to populate.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyRunFormat(format, pr) {\n flags(pr, [['lit', function (v) { format.hasLiteral = v; }], ['nor', function (v) { format.hasNormalText = v; }],\n ['aln', function (v) { format.hasAlignment = v; }]]);\n var scr = str(pr, 'scr');\n if (scr !== undefined && FONTS.hasOwnProperty(scr)) {\n format.font = FONTS[scr];\n }\n var sty = str(pr, 'sty');\n if (sty !== undefined && STYLES.hasOwnProperty(sty)) {\n format.style = STYLES[sty];\n }\n var brk = readBreak(pr);\n if (brk !== undefined) {\n format.break = brk;\n }\n}\n/**\n * Applies `m:accPr`. @private\n *\n * @param {OfficeMathAccent} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyAccent(fn, pr) {\n text(pr, 'chr', function (v) { fn.accentCharacter = v; });\n}\n/**\n * Applies `m:barPr`. @private\n *\n * @param {OfficeMathBar} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyBar(fn, pr) {\n var pos = str(pr, 'pos');\n if (pos === 'top' || pos === 'bot') {\n fn.barTop = pos === 'top';\n }\n}\n/**\n * Applies `m:borderBoxPr`. @private\n *\n * @param {OfficeMathBorderBox} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyBorderBox(fn, pr) {\n flags(pr, [['hideTop', function (v) { fn.hideTop = v; }], ['hideBot', function (v) { fn.hideBottom = v; }],\n ['hideLeft', function (v) { fn.hideLeft = v; }], ['hideRight', function (v) { fn.hideRight = v; }],\n ['strikeH', function (v) { fn.strikeHorizontal = v; }], ['strikeV', function (v) { fn.strikeVertical = v; }],\n ['strikeBLTR', function (v) { fn.strikeDiagonalUp = v; }], ['strikeTLBR', function (v) { fn.strikeDiagonalDown = v; }]]);\n}\n/**\n * Applies `m:boxPr`. @private\n *\n * @param {OfficeMathBox} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyBox(fn, pr) {\n flags(pr, [['opEmu', function (v) { fn.operatorEmulator = v; }], ['noBreak', function (v) { fn.noBreak = v; }],\n ['diff', function (v) { fn.enableDifferential = v; }], ['aln', function (v) { fn.alignment = v; }]]);\n var brk = readBreak(pr, fn.ownerMathEntity instanceof OfficeMath ? fn.ownerMathEntity : undefined);\n if (brk !== undefined) {\n fn.break = brk;\n }\n}\n/**\n * Applies `m:dPr`. @private\n *\n * @param {OfficeMathDelimiter} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyDelimiter(fn, pr) {\n text(pr, 'begChr', function (v) { fn.beginCharacter = v; });\n text(pr, 'sepChr', function (v) { fn.separator = v; });\n text(pr, 'endChr', function (v) { fn.endCharacter = v; });\n flags(pr, [['grow', function (v) { fn.isGrow = v; }]]);\n var shp = str(pr, 'shp');\n if (shp === 'centered' || shp === 'match') {\n fn.delimiterShape = shp === 'centered' ? MathDelimiterShapeType.Centered : MathDelimiterShapeType.Match;\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {Function} rule Callback receiving the spacing rule.\n * @param {Function} value Callback receiving the spacing value.\n * @param {string} ruleName The local name of the rule element.\n * @param {string} valueName The local name of the value element.\n * @returns {void}\n */\nfunction spacing(pr, rule, value, ruleName, valueName) {\n var r = int(pr, ruleName);\n if (r !== undefined && r <= 4) {\n rule(r);\n }\n var v = int(pr, valueName);\n if (v !== undefined) {\n try {\n value(v);\n }\n catch (e) {\n if (!(e instanceof RangeError)) {\n throw e;\n }\n }\n }\n}\n/**\n * Applies `m:eqArrPr`. @private\n *\n * @param {OfficeMathEquationArray} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyEquationArray(fn, pr) {\n var align = verticalAlignment(str(pr, 'baseJc'));\n if (align !== undefined) {\n fn.verticalAlignment = align;\n }\n flags(pr, [['maxDist', function (v) { fn.expandEquationContainer = v; }],\n ['objDist', function (v) { fn.expandEquationContent = v; }]]);\n spacing(pr, function (v) { fn.rowSpacingRule = v; }, function (v) { fn.rowSpacing = v; }, 'rSpRule', 'rSp');\n}\nvar FRACTIONS = {\n bar: MathFractionType.NormalFractionBar, noBar: MathFractionType.NoFractionBar,\n skw: MathFractionType.SkewedFractionBar, lin: MathFractionType.FractionInline\n};\n/**\n * Applies `m:fPr`. @private\n *\n * @param {OfficeMathFraction} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyFraction(fn, pr) {\n var type = str(pr, 'type');\n if (type !== undefined && FRACTIONS.hasOwnProperty(type)) {\n fn.fractionType = FRACTIONS[type];\n }\n}\n/**\n * Applies `m:groupChrPr`. @private\n *\n * @param {OfficeMathGroupCharacter} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyGroupCharacter(fn, pr) {\n text(pr, 'chr', function (v) { fn.groupCharacter = v; });\n var pos = str(pr, 'pos');\n if (pos === 'top' || pos === 'bot') {\n fn.hasCharacterTop = pos === 'top';\n }\n var vert = str(pr, 'vertJc');\n if (vert === 'top' || vert === 'bot') {\n fn.hasAlignTop = vert === 'top';\n }\n}\n/**\n * Applies `m:naryPr`. @private\n *\n * @param {OfficeMathNArray} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyNArray(fn, pr) {\n text(pr, 'chr', function (v) { fn.nArrayCharacter = v; });\n var loc = str(pr, 'limLoc');\n if (loc === 'undOvr' || loc === 'subSup') {\n fn.subSuperscriptLimit = loc === 'subSup';\n }\n flags(pr, [['grow', function (v) { fn.hasGrow = v; }], ['subHide', function (v) { fn.hideLowerLimit = v; }],\n ['supHide', function (v) { fn.hideUpperLimit = v; }]]);\n}\n/**\n * Applies `m:phantPr`. @private\n *\n * @param {OfficeMathPhantom} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyPhantom(fn, pr) {\n flags(pr, [['show', function (v) { fn.show = v; }], ['zeroWid', function (v) { fn.zeroWidth = v; }],\n ['zeroAsc', function (v) { fn.zeroAscent = v; }], ['zeroDesc', function (v) { fn.zeroDescent = v; }],\n ['transp', function (v) { fn.transparent = v; }]]);\n}\n/**\n * Applies `m:radPr`. @private\n *\n * @param {OfficeMathRadical} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyRadical(fn, pr) {\n flags(pr, [['degHide', function (v) { fn.hideDegree = v; }]]);\n}\n/**\n * Applies `m:sSubSupPr`. @private\n *\n * @param {OfficeMathRightScript} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyRightScript(fn, pr) {\n flags(pr, [['alnScr', function (v) { fn.isSkipAlign = v; }]]);\n}\n/**\n * Implementation helper. @private\n *\n * @param {string | undefined} value The value to convert.\n * @returns {MathHorizontalAlignment | undefined} The result.\n */\nfunction columnAlignment(value) {\n if (value === 'left') {\n return MathHorizontalAlignment.Left;\n }\n if (value === 'right') {\n return MathHorizontalAlignment.Right;\n }\n return value === 'center' ? MathHorizontalAlignment.Center : undefined;\n}\n/**\n * Applies the scalar settings of `m:mPr` (columns are handled by {@link applyMatrixColumns}). @private\n *\n * @param {OfficeMathMatrix} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @returns {void}\n */\nexport function applyMatrix(fn, pr) {\n var align = verticalAlignment(str(pr, 'baseJc'));\n if (align !== undefined) {\n fn.verticalAlignment = align;\n }\n flags(pr, [['plcHide', function (v) { fn.hidePlaceholder = v; }]]);\n spacing(pr, function (v) { fn.rowSpacingRule = v; }, function (v) { fn.rowSpacing = v; }, 'rSpRule', 'rSp');\n spacing(pr, function (v) { fn.columnGapRule = v; }, function (v) { fn.columnGap = v; }, 'cGpRule', 'cGp');\n var cSp = int(pr, 'cSp');\n if (cSp !== undefined) {\n fn.columnSpacing = cSp;\n }\n}\n/**\n * Creates matrix columns from `m:mcs`, then pads to `cellCount` so every row cell has a column.\n *\n * @param {OfficeMathMatrix} fn The matrix.\n * @param {OpenXmlElement} pr The `m:mPr` element.\n * @param {number} cellCount The widest row, in cells.\n * @returns {void}\n * @private\n */\nexport function applyMatrixColumns(fn, pr, cellCount) {\n var mcs = findMathChild(pr, 'mcs');\n var groups = mcs === undefined ? [] : findMathChildren(mcs, 'mc');\n groups.forEach(function (mc) {\n var mcPr = findMathChild(mc, 'mcPr');\n var raw = int(mcPr, 'count');\n var count = raw !== undefined && raw >= 1 && raw <= 255 ? raw : 1;\n var align = columnAlignment(str(mcPr, 'mcJc'));\n for (var i = 0; i < count; i++) {\n var column = fn.columns.add();\n if (align !== undefined) {\n column.horizontalAlignment = align;\n }\n }\n });\n while (fn.columns.count < cellCount) {\n fn.columns.add();\n }\n}\n/**\n * Reads `m:argPr/m:argSz` (ST_Integer2, -2..2). Invalid values are ignored. @private\n *\n * @param {OpenXmlElement | undefined} argPr The `m:argPr` element, if present.\n * @returns {string | undefined} The valid size as text, or undefined.\n */\nexport function readArgumentSize(argPr) {\n var raw = str(argPr, 'argSz');\n return raw !== undefined && /^-?\\d+$/.test(raw) && Math.abs(Number(raw)) <= 2 ? raw : undefined;\n}\n","/**\n * Tolerant OMML → Office Math model parser.\n *\n * Source: ECMA-376-1 §22.1 (shared-math.xsd). Never throws on load: unknown elements and\n * structures missing required children are kept verbatim as {@link OfficeMathUnknownElement}.\n */\nimport { MATH_NAMESPACE, WML_TRANSITIONAL_NAMESPACE, XML_NAMESPACE } from '../constants';\nimport { attrValue, attrValueNs, childElements, textContent } from '../openxml';\nimport { MathFunctionType, MathJustification, MathLimitType, MathScriptType } from '../office-math/enums';\nimport { BasicRun, BasicRunFormat } from '../office-math/basic';\nimport { OfficeMathParagraph } from '../office-math/math-paragraph';\nimport { OfficeMathUnknownElement } from '../office-math/unknown-element';\nimport * as P from './office-math-properties';\n/**\n * Implementation helper. @private\n *\n * @param {MathFunctionType} type The function type.\n * @param {string} pr The property element (`m:*Pr`), if present.\n * @param {string[]} args The argument element names, in order.\n * @param {Fill} [apply] Optional property applier.\n * @returns {Shape} The result.\n */\nfunction shape(type, pr, args, apply) {\n return { type: type, pr: pr, args: args, apply: apply };\n}\nvar SHAPES = {\n acc: shape(MathFunctionType.Accent, 'accPr', ['e'], P.applyAccent),\n bar: shape(MathFunctionType.Bar, 'barPr', ['e'], P.applyBar),\n borderBox: shape(MathFunctionType.BorderBox, 'borderBoxPr', ['e'], P.applyBorderBox),\n box: shape(MathFunctionType.Box, 'boxPr', ['e'], P.applyBox),\n f: shape(MathFunctionType.Fraction, 'fPr', ['num', 'den'], P.applyFraction),\n func: shape(MathFunctionType.Function, 'funcPr', ['fName', 'e']),\n groupChr: shape(MathFunctionType.GroupCharacter, 'groupChrPr', ['e'], P.applyGroupCharacter),\n limLow: shape(MathFunctionType.Limit, 'limLowPr', ['e', 'lim']),\n limUpp: shape(MathFunctionType.Limit, 'limUppPr', ['e', 'lim']),\n nary: shape(MathFunctionType.NArray, 'naryPr', ['sub', 'sup', 'e'], P.applyNArray),\n phant: shape(MathFunctionType.Phantom, 'phantPr', ['e'], P.applyPhantom),\n rad: shape(MathFunctionType.Radical, 'radPr', ['deg', 'e'], P.applyRadical),\n sPre: shape(MathFunctionType.LeftSubSuperscript, 'sPrePr', ['sub', 'sup', 'e']),\n sSub: shape(MathFunctionType.SubSuperscript, 'sSubPr', ['e', 'sub']),\n sSubSup: shape(MathFunctionType.RightSubSuperscript, 'sSubSupPr', ['e', 'sub', 'sup'], P.applyRightScript),\n sSup: shape(MathFunctionType.SubSuperscript, 'sSupPr', ['e', 'sup'])\n};\n/**\n * Implementation helper. @private\n *\n * @param {Context} ctx The parse context.\n * @param {OpenXmlElement} xml The source element.\n * @param {string} message The diagnostic message.\n * @returns {void}\n */\nfunction diagnose(ctx, xml, message) {\n if (ctx.options !== undefined && ctx.options.onDiagnostic !== undefined) {\n var diagnostic = { path: xml.localName, message: message, localName: xml.localName };\n ctx.options.onDiagnostic(diagnostic);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} xml The source element.\n * @param {OfficeMath} target The target to populate.\n * @returns {void}\n */\nfunction preserve(xml, target) {\n target.functions.insert(target.functions.count, new OfficeMathUnknownElement(xml.localName, xml));\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} ctrl The `m:ctrlPr` element.\n * @param {OfficeMathFunctionBase} fn The function being populated.\n * @param {Context} ctx The parse context.\n * @returns {OfficeRunFormat} The result.\n */\nfunction ctrlFormat(ctrl, fn, ctx) {\n return ctx.adapter !== undefined ? ctx.adapter.parseControlProperties(ctrl, fn) : new BasicRunFormat(ctrl);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMath} target The target to populate.\n * @param {OpenXmlElement | undefined} el The source element.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction fillArgument(target, el, ctx) {\n if (el === undefined) {\n return;\n }\n var ctrl = P.findMathChild(el, 'ctrlPr');\n if (ctrl !== undefined) {\n target.preservedControlProperties = ctrl;\n }\n var size = P.readArgumentSize(P.findMathChild(el, 'argPr'));\n if (size !== undefined) {\n target.argumentSize = Number(size);\n }\n fillElements(target, el, ctx);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMath} target The target to populate.\n * @param {OpenXmlElement} parent The parent element.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction fillElements(target, parent, ctx) {\n childElements(parent).forEach(function (child) {\n var isMath = child.namespaceUri === MATH_NAMESPACE;\n if (isMath && (child.localName === 'argPr' || child.localName === 'ctrlPr')) {\n return;\n }\n parseFunction(child, target, ctx);\n });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} el The source element.\n * @param {OfficeMath} target The target to populate.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction parseFunction(el, target, ctx) {\n if (el.namespaceUri !== MATH_NAMESPACE) {\n preserve(el, target);\n return;\n }\n if (el.localName === 'r') {\n parseRun(el, target, ctx);\n return;\n }\n if (el.localName === 'd' || el.localName === 'eqArr') {\n parseList(el, target, ctx);\n return;\n }\n if (el.localName === 'm') {\n parseMatrix(el, target, ctx);\n return;\n }\n var spec = SHAPES.hasOwnProperty(el.localName) ? SHAPES[el.localName] : undefined;\n var args = spec === undefined ? [] : spec.args.map(function (n) { return P.findMathChild(el, n); });\n if (spec === undefined || args.some(function (a) { return a === undefined; })) {\n if (spec !== undefined) {\n diagnose(ctx, el, 'm:' + el.localName + ' is missing a required child');\n }\n preserve(el, target);\n return;\n }\n var fn = target.functions.add(spec.type);\n var pr = P.findMathChild(el, spec.pr);\n applyCommon(fn, pr, ctx);\n if (spec.apply !== undefined) {\n spec.apply(fn, pr);\n }\n bind(el.localName, fn, args, ctx);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} fn The function being populated.\n * @param {OpenXmlElement | undefined} pr The property element (`m:*Pr`), if present.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction applyCommon(fn, pr, ctx) {\n var ctrl = P.findMathChild(pr, 'ctrlPr');\n if (ctrl !== undefined) {\n fn.controlProperties = ctrlFormat(ctrl, fn, ctx);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {string} name The local name of the child element.\n * @param {OfficeMathFunctionBase} fn The function being populated.\n * @param {OpenXmlElement[]} a First object.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction bind(name, fn, a, ctx) {\n var into = function (m, i) { return fillArgument(m, a[i], ctx); };\n switch (fn.type) {\n case MathFunctionType.Fraction:\n into(fn.numerator, 0);\n into(fn.denominator, 1);\n break;\n case MathFunctionType.Function:\n into(fn.functionName, 0);\n into(fn.equation, 1);\n break;\n case MathFunctionType.Limit:\n fn.limitType = name === 'limUpp' ? MathLimitType.UpperLimit : MathLimitType.LowerLimit;\n into(fn.equation, 0);\n into(fn.limit, 1);\n break;\n case MathFunctionType.NArray:\n into(fn.subscript, 0);\n into(fn.superscript, 1);\n into(fn.equation, 2);\n break;\n case MathFunctionType.Radical:\n into(fn.degree, 0);\n into(fn.equation, 1);\n break;\n case MathFunctionType.LeftSubSuperscript:\n into(fn.subscript, 0);\n into(fn.superscript, 1);\n into(fn.equation, 2);\n break;\n case MathFunctionType.SubSuperscript:\n fn.scriptType = name === 'sSub' ? MathScriptType.Subscript : MathScriptType.Superscript;\n into(fn.equation, 0);\n into(fn.script, 1);\n break;\n case MathFunctionType.RightSubSuperscript:\n into(fn.equation, 0);\n into(fn.subscript, 1);\n into(fn.superscript, 2);\n break;\n default:\n into(fn.equation, 0);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} el The source element.\n * @param {OfficeMath} target The target to populate.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction parseList(el, target, ctx) {\n var items = P.findMathChildren(el, 'e');\n if (items.length < 1) {\n diagnose(ctx, el, 'm:' + el.localName + ' is missing a required m:e');\n preserve(el, target);\n return;\n }\n var isDelimiter = el.localName === 'd';\n var fn = target.functions.add(isDelimiter ? MathFunctionType.Delimiter : MathFunctionType.EquationArray);\n var pr = P.findMathChild(el, isDelimiter ? 'dPr' : 'eqArrPr');\n applyCommon(fn, pr, ctx);\n if (isDelimiter) {\n P.applyDelimiter(fn, pr);\n }\n else {\n P.applyEquationArray(fn, pr);\n }\n var equations = fn.equations;\n items.forEach(function (item) { return fillArgument(equations.add(), item, ctx); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} el The source element.\n * @param {OfficeMath} target The target to populate.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction parseMatrix(el, target, ctx) {\n var rows = P.findMathChildren(el, 'mr');\n if (rows.length < 1) {\n diagnose(ctx, el, 'm:m is missing a required m:mr');\n preserve(el, target);\n return;\n }\n var matrix = target.functions.add(MathFunctionType.Matrix);\n var pr = P.findMathChild(el, 'mPr');\n applyCommon(matrix, pr, ctx);\n P.applyMatrix(matrix, pr);\n var widest = rows.reduce(function (max, r) { return Math.max(max, P.findMathChildren(r, 'e').length); }, 0);\n P.applyMatrixColumns(matrix, pr, widest);\n rows.forEach(function (row) {\n var created = matrix.rows.add();\n P.findMathChildren(row, 'e').forEach(function (cell, i) { return fillArgument(created.arguments.getItem(i), cell, ctx); });\n });\n}\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement} el The source element.\n * @param {OfficeMath} target The target to populate.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction parseRun(el, target, ctx) {\n var run = target.functions.add(MathFunctionType.RunElement);\n P.applyRunFormat(run.mathFormat, P.findMathChild(el, 'rPr'));\n if (ctx.adapter !== undefined) {\n ctx.adapter.parseMathRun(el, run);\n return;\n }\n var item = new BasicRun();\n childElements(el).forEach(function (child) {\n if (child.namespaceUri === MATH_NAMESPACE && child.localName === 'rPr') {\n return;\n }\n if (child.namespaceUri === WML_TRANSITIONAL_NAMESPACE && child.localName === 'rPr') {\n item.runProperties = child;\n return;\n }\n if (child.namespaceUri === MATH_NAMESPACE && child.localName === 't') {\n var space = attrValueNs(child, XML_NAMESPACE, 'space');\n item.parts.push(space === undefined ? { kind: 'text', value: textContent(child) }\n : { kind: 'text', value: textContent(child), space: space });\n return;\n }\n item.parts.push({ kind: 'xml', element: child });\n });\n run.item = item;\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathParagraph} paragraph The paragraph being populated.\n * @param {OpenXmlElement} oMath The `m:oMath` element.\n * @param {Context} ctx The parse context.\n * @returns {void}\n */\nfunction fillRoot(paragraph, oMath, ctx) {\n fillElements(paragraph.maths.add(), oMath, ctx);\n}\n/**\n * Parses an `m:oMathPara` (or a bare `m:oMath`) into an {@link OfficeMathParagraph}.\n *\n * Tolerant: never throws. A bare `m:oMath` is wrapped in a paragraph that has no explicit justification.\n * A malformed `m:oMathPara` (foreign children, text, or no `m:oMath`) is preserved verbatim as a single\n * `OfficeMathUnknownElement` and reported through `onDiagnostic`.\n *\n * @param {OpenXmlElement} root The `m:oMathPara` or `m:oMath` element.\n * @param {MathDocumentAdapter} adapter Optional host adapter supplying native runs and formats.\n * @param {ParseMathOptions} options Optional parser options.\n * @returns {OfficeMathParagraph} The populated model.\n * @public\n */\nexport function parseOfficeMathParagraph(root, adapter, options) {\n var paragraph = new OfficeMathParagraph(adapter);\n var ctx = { adapter: adapter, options: options };\n paragraph.suspendMutations(function () {\n if (!isWellFormedRoot(root)) {\n diagnose(ctx, root, 'm:' + root.localName + ' is not a well-formed m:oMath or m:oMathPara; preserved verbatim');\n preserve(root, paragraph.maths.add());\n return;\n }\n if (root.localName === 'oMath') {\n fillRoot(paragraph, root, ctx);\n return;\n }\n var jc = attrValueOf(P.findMathChild(P.findMathChild(root, 'oMathParaPr'), 'jc'));\n if (jc !== undefined && Object.prototype.hasOwnProperty.call(JUSTIFICATION, jc)) {\n paragraph.justification = JUSTIFICATION[jc];\n }\n P.findMathChildren(root, 'oMath').forEach(function (m) { return fillRoot(paragraph, m, ctx); });\n });\n return paragraph;\n}\n/**\n * A root is well formed when it is `m:oMath`, or an `m:oMathPara` whose children are an optional\n * `m:oMathParaPr` followed by at least one `m:oMath` and nothing else.\n *\n * @param {OpenXmlElement} root The candidate root element.\n * @returns {boolean} True when the root can be modelled without losing content.\n */\nfunction isWellFormedRoot(root) {\n if (root.namespaceUri !== MATH_NAMESPACE) {\n return false;\n }\n if (root.localName === 'oMath') {\n return true;\n }\n if (root.localName !== 'oMathPara') {\n return false;\n }\n var children = childElements(root).slice();\n var nonMath = children.filter(function (c) { return c.namespaceUri !== MATH_NAMESPACE; });\n var others = children.filter(function (c) { return c.namespaceUri === MATH_NAMESPACE\n && c.localName !== 'oMath' && c.localName !== 'oMathParaPr'; });\n var hasText = root.children.some(function (c) { return c.kind === 'text' && (c.value || '').trim() !== ''; });\n return nonMath.length === 0 && others.length === 0 && !hasText && P.findMathChildren(root, 'oMath').length > 0;\n}\nvar JUSTIFICATION = {\n left: MathJustification.Left, right: MathJustification.Right,\n center: MathJustification.Center, centerGroup: MathJustification.CenterGroup\n};\n/**\n * Implementation helper. @private\n *\n * @param {OpenXmlElement | undefined} el The source element.\n * @returns {string | undefined} The result.\n */\nfunction attrValueOf(el) {\n return el === undefined ? undefined : attrValue(el, 'val');\n}\n","/**\n * Typed mathml errors (mathml-spec Errors section).\n *\n * Common-owned; docx-js passes them through untouched.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Schema violation detected on author/serialize of a typed math tree.\n *\n * Source: mathml-spec Errors section —\n * `elementPath` dotted model path (e.g. `'oMath.f.den'`),\n * `constraintKind` one of child-order | enum-value | required-child | value-range.\n *\n * @private\n * Internal error contract between the mathml model, parser, and serializer;\n * not part of the public authoring API.\n */\nvar MathmlValidationError = /** @class */ (function (_super) {\n __extends(MathmlValidationError, _super);\n function MathmlValidationError(message, elementPath, constraintKind) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.name = 'MathmlValidationError';\n _this.elementPath = elementPath;\n _this.constraintKind = constraintKind;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return MathmlValidationError;\n}(Error));\nexport { MathmlValidationError };\n/**\n * Mutation attempted on a preserve-only (degraded) math equation.\n *\n * Source: mathml-spec §8b — malformed load degrades; later mutate throws.\n *\n * @private\n * Internal error contract between the mathml model, parser, and serializer;\n * not part of the public authoring API.\n */\nvar MathmlReadOnlyError = /** @class */ (function (_super) {\n __extends(MathmlReadOnlyError, _super);\n function MathmlReadOnlyError(message) {\n var _newTarget = this.constructor;\n if (message === void 0) { message = 'Math equation is preserve-only and cannot be mutated'; }\n var _this = _super.call(this, message) || this;\n /**\n * Always `true` — the equation is locked in preserve-only mode and mutations are blocked.\n */\n _this.isPreserveOnly = true;\n _this.name = 'MathmlReadOnlyError';\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return MathmlReadOnlyError;\n}(Error));\nexport { MathmlReadOnlyError };\n","/**\n * Low-level OMML element builders shared by the Office Math serializer.\n *\n * Source: ECMA-376-1 §22.1 (shared-math.xsd). The schema declares `attributeFormDefault=\"qualified\"`,\n * so `m:val`-style attributes are written in the math namespace, as Word does.\n */\nimport { MATH_NAMESPACE, MATH_PREFIX_FALLBACKS } from '../constants';\nimport { MathmlValidationError } from '../errors';\nimport { createElement } from '../openxml';\n/**\n * Picks the math prefix for a save.\n *\n * @param {SerializeOfficeMathOptions} options The serializer options.\n * @returns {string} The prefix.\n * @private\n */\nexport function resolveMathPrefix(options) {\n if (options !== undefined && options.prefix !== undefined && options.prefix.length > 0) {\n return options.prefix;\n }\n var reserved = options !== undefined && options.reservedPrefixes !== undefined ? options.reservedPrefixes : [];\n var free = MATH_PREFIX_FALLBACKS.filter(function (p) { return reserved.indexOf(p) === -1; });\n return free.length > 0 ? free[0] : 'm999';\n}\n/**\n * Creates an `m:` element. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The local name.\n * @param {ReadonlyArray<OpenXmlChild>} children The children.\n * @param {ReadonlyArray<OpenXmlAttribute>} attributes The attributes.\n * @returns {OpenXmlElement} The element.\n */\nexport function mathElement(ctx, name, children, attributes) {\n if (children === void 0) { children = []; }\n if (attributes === void 0) { attributes = []; }\n return createElement(MATH_NAMESPACE, name, ctx.prefix, { attributes: attributes, children: children });\n}\n/**\n * Creates a namespace-qualified math attribute. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The attribute local name.\n * @param {string} value The value.\n * @returns {OpenXmlAttribute} The attribute.\n */\nexport function mathAttribute(ctx, name, value) {\n return { namespaceUri: MATH_NAMESPACE, localName: name, prefix: ctx.prefix, value: value };\n}\n/**\n * Creates `<m:name m:val=\"value\"/>`. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The element local name.\n * @param {string} value The value.\n * @returns {OpenXmlElement} The element.\n */\nexport function valueElement(ctx, name, value) {\n return mathElement(ctx, name, [], [mathAttribute(ctx, 'val', value)]);\n}\n/**\n * Creates an on/off element using the canonical `1` / `0`. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The element local name.\n * @param {boolean} value The value.\n * @returns {OpenXmlElement} The element.\n */\nexport function onOffElement(ctx, name, value) {\n return valueElement(ctx, name, value ? '1' : '0');\n}\n/**\n * Throws a validation error. @private\n *\n * @param {string} message The message.\n * @param {string} path The element path.\n * @param {MathmlConstraintKind} kind The violated constraint.\n * @returns {never} Never returns.\n */\nexport function invalid(message, path, kind) {\n throw new MathmlValidationError(message, path, kind);\n}\n/**\n * Maps an enum value to its OMML token, failing on out-of-range values. @private\n *\n * @param {ReadonlyArray<string>} table Tokens indexed by enum value.\n * @param {number} value The enum value.\n * @param {string} path The element path.\n * @param {string} label The schema type name.\n * @returns {string} The token.\n */\nexport function token(table, value, path, label) {\n var result = table[value];\n return result !== undefined ? result : invalid('Illegal ' + label + ' value ' + String(value), path, 'enum-value');\n}\n/**\n * Asserts an unsigned integer. @private\n *\n * @param {number} value The value.\n * @param {string} path The element path.\n * @returns {string} The decimal text.\n */\nexport function unsigned(value, path) {\n return Number.isInteger(value) && value >= 0 ? String(value) : invalid('Expected an unsigned integer, got ' + String(value), path, 'value-range');\n}\n/**\n * Appends an on/off element for every flag that was explicitly set. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {ExplicitPropertyStore} store The owner of the properties.\n * @param {FlagEntry[]} entries Entries in schema order.\n * @returns {void}\n */\nexport function writeFlags(ctx, out, store, entries) {\n entries.forEach(function (e) { if (store.isExplicit(e[0])) {\n out.push(onOffElement(ctx, e[1], e[2]));\n } });\n}\n/**\n * Appends a value element when the property was explicitly set. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {ExplicitPropertyStore} store The owner of the property.\n * @param {number} key The property key.\n * @param {string} name The element local name.\n * @param {Function} value Lazily produces the text, so unset properties are never evaluated.\n * @returns {void}\n */\nexport function writeValue(ctx, out, store, key, name, value) {\n if (store.isExplicit(key)) {\n out.push(valueElement(ctx, name, value()));\n }\n}\n","/**\n * Writers that turn explicit Office Math properties into `m:*Pr` children.\n *\n * Source: ECMA-376-1 §22.1.2 (shared-math.xsd). Only explicitly set properties are written, in schema order.\n */\nvar _a;\nimport { MathFunctionType } from '../office-math/enums';\nimport { K } from '../office-math/keys';\nimport { invalid, mathAttribute, mathElement, token, unsigned, valueElement, writeFlags, writeValue } from './omml-writer';\nvar FRACTION = ['bar', 'noBar', 'skw', 'lin'];\nvar VERTICAL = ['center', 'top', 'bottom'];\nvar HORIZONTAL = ['center', 'left', 'right'];\nvar SHAPE = ['centered', 'match'];\nvar FONT = ['double-struck', 'fraktur', 'monospace', 'roman', 'sans-serif', 'script'];\nvar STYLE = ['i', 'bi', 'b', 'p'];\n/** Element name of the property container of each function. @private */\nexport var PROPERTY_ELEMENT = (_a = {},\n _a[MathFunctionType.Accent] = 'accPr',\n _a[MathFunctionType.Bar] = 'barPr',\n _a[MathFunctionType.BorderBox] = 'borderBoxPr',\n _a[MathFunctionType.Box] = 'boxPr',\n _a[MathFunctionType.Delimiter] = 'dPr',\n _a[MathFunctionType.EquationArray] = 'eqArrPr',\n _a[MathFunctionType.Fraction] = 'fPr',\n _a[MathFunctionType.Function] = 'funcPr',\n _a[MathFunctionType.GroupCharacter] = 'groupChrPr',\n _a[MathFunctionType.Matrix] = 'mPr',\n _a[MathFunctionType.NArray] = 'naryPr',\n _a[MathFunctionType.Phantom] = 'phantPr',\n _a[MathFunctionType.Radical] = 'radPr',\n _a[MathFunctionType.LeftSubSuperscript] = 'sPrePr',\n _a[MathFunctionType.RightSubSuperscript] = 'sSubSupPr',\n _a);\n/**\n * Writes `m:brk` when the break has an explicit alignment point, otherwise an empty `m:brk`. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathBreak} brk The break.\n * @returns {OpenXmlChild} The element.\n */\nexport function writeBreak(ctx, brk) {\n if (!brk.isExplicit(K.AlignAt)) {\n return mathElement(ctx, 'brk');\n }\n if (!Number.isInteger(brk.alignAt) || brk.alignAt < 1 || brk.alignAt > 255) {\n invalid('alnAt must be an integer in 1..255, got ' + String(brk.alignAt), 'brk.alnAt', 'value-range');\n }\n return mathElement(ctx, 'brk', [], [mathAttribute(ctx, 'alnAt', String(brk.alignAt))]);\n}\n/**\n * Writes the children of `m:rPr`. `m:nor` excludes `m:scr`/`m:sty` per the schema choice. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathFormat} format The Math run format.\n * @returns {OpenXmlChild[]} The children.\n */\nexport function runFormatChildren(ctx, format) {\n var out = [];\n writeFlags(ctx, out, format, [[K.HasLiteral, 'lit', format.hasLiteral]]);\n var normal = format.isExplicit(K.HasNormalText) && (format.hasNormalText || !isScriptStyle(format));\n if (normal) {\n writeFlags(ctx, out, format, [[K.HasNormalText, 'nor', format.hasNormalText]]);\n }\n else {\n writeValue(ctx, out, format, K.Script, 'scr', function () { return token(FONT, format.font, 'rPr.scr', 'ST_Script'); });\n writeValue(ctx, out, format, K.Style, 'sty', function () { return token(STYLE, format.style, 'rPr.sty', 'ST_Style'); });\n }\n if (format.break !== undefined) {\n out.push(writeBreak(ctx, format.break));\n }\n writeFlags(ctx, out, format, [[K.HasAlignment, 'aln', format.hasAlignment]]);\n return out;\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFormat} format The Math run format.\n * @returns {boolean} True when a script or style is explicit.\n */\nfunction isScriptStyle(format) {\n return format.isExplicit(K.Script) || format.isExplicit(K.Style);\n}\n/**\n * Implementation helper. @private\n *\n * @param {number} rule The spacing rule.\n * @param {string} path The element path.\n * @returns {string} The decimal text.\n */\nfunction ruleText(rule, path) {\n return rule >= 0 && rule <= 4 && Number.isInteger(rule) ? String(rule) : invalid('Illegal spacing rule ' + String(rule), path, 'enum-value');\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {OfficeMathEquationArray | OfficeMathMatrix} fn The function.\n * @param {string} path The element path.\n * @returns {void}\n */\nfunction rowSpacing(ctx, out, fn, path) {\n writeValue(ctx, out, fn, K.RowSpacingRule, 'rSpRule', function () { return ruleText(fn.rowSpacingRule, path + '.rSpRule'); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {OfficeMathEquationArray} fn The equation array.\n * @returns {void}\n */\nfunction equationArray(ctx, out, fn) {\n writeValue(ctx, out, fn, K.EqArrAlign, 'baseJc', function () { return token(VERTICAL, fn.verticalAlignment, 'eqArrPr.baseJc', 'ST_YAlign'); });\n writeFlags(ctx, out, fn, [[K.MaxDist, 'maxDist', fn.expandEquationContainer], [K.ObjDist, 'objDist', fn.expandEquationContent]]);\n rowSpacing(ctx, out, fn, 'eqArrPr');\n writeValue(ctx, out, fn, K.RowSpacing, 'rSp', function () { return unsigned(fn.rowSpacing, 'eqArrPr.rSp'); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {OfficeMathMatrix} fn The matrix.\n * @returns {void}\n */\nfunction matrix(ctx, out, fn) {\n writeValue(ctx, out, fn, K.MatrixAlign, 'baseJc', function () { return token(VERTICAL, fn.verticalAlignment, 'mPr.baseJc', 'ST_YAlign'); });\n writeFlags(ctx, out, fn, [[K.PlaceHoldHidden, 'plcHide', fn.hidePlaceholder]]);\n rowSpacing(ctx, out, fn, 'mPr');\n writeValue(ctx, out, fn, K.ColumnGapRule, 'cGpRule', function () { return ruleText(fn.columnGapRule, 'mPr.cGpRule'); });\n writeValue(ctx, out, fn, K.RowSpacing, 'rSp', function () { return unsigned(fn.rowSpacing, 'mPr.rSp'); });\n writeValue(ctx, out, fn, K.ColumnSpacing, 'cSp', function () { return unsigned(fn.columnSpacing, 'mPr.cSp'); });\n writeValue(ctx, out, fn, K.ColumnGap, 'cGp', function () { return unsigned(fn.columnGap, 'mPr.cGp'); });\n var columns = matrixColumns(ctx, fn);\n if (columns !== undefined) {\n out.push(columns);\n }\n}\n/**\n * Writes `m:mcs`, grouping consecutive columns with the same explicit alignment. Omitted when no column\n * alignment is explicit, because the parser recreates default columns from the row cells. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathMatrix} fn The matrix.\n * @returns {OpenXmlChild | undefined} The element, if needed.\n */\nfunction matrixColumns(ctx, fn) {\n var columns = fn.columns.toArray();\n if (!columns.some(function (c) { return c.isExplicit(K.MatrixAlign); })) {\n return undefined;\n }\n var groups = [];\n columns.forEach(function (column) {\n var last = groups[groups.length - 1];\n var same = last !== undefined && last.column.isExplicit(K.MatrixAlign) === column.isExplicit(K.MatrixAlign)\n && (!column.isExplicit(K.MatrixAlign) || last.column.horizontalAlignment === column.horizontalAlignment);\n if (same && last !== undefined && last.count < 255) {\n last.count++;\n }\n else {\n groups.push({ column: column, count: 1 });\n }\n });\n return mathElement(ctx, 'mcs', groups.map(function (g) {\n var kids = [valueElement(ctx, 'count', String(g.count))];\n writeValue(ctx, kids, g.column, K.MatrixAlign, 'mcJc', function () { return token(HORIZONTAL, g.column.horizontalAlignment, 'mcPr.mcJc', 'ST_XAlign'); });\n return mathElement(ctx, 'mc', [mathElement(ctx, 'mcPr', kids)]);\n }));\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {void}\n */\nfunction multiProperties(ctx, out, fn) {\n if (fn.type === MathFunctionType.Delimiter) {\n var d_1 = fn;\n writeValue(ctx, out, d_1, K.BegChar, 'begChr', function () { return d_1.beginCharacter; });\n writeValue(ctx, out, d_1, K.SeparatorChar, 'sepChr', function () { return d_1.separator; });\n writeValue(ctx, out, d_1, K.EndChar, 'endChr', function () { return d_1.endCharacter; });\n writeFlags(ctx, out, d_1, [[K.Grow, 'grow', d_1.isGrow]]);\n writeValue(ctx, out, d_1, K.Shape, 'shp', function () { return token(SHAPE, d_1.delimiterShape, 'dPr.shp', 'ST_Shp'); });\n }\n else if (fn.type === MathFunctionType.EquationArray) {\n equationArray(ctx, out, fn);\n }\n else if (fn.type === MathFunctionType.Fraction) {\n var f_1 = fn;\n writeValue(ctx, out, f_1, K.FractionType, 'type', function () { return token(FRACTION, f_1.fractionType, 'fPr.type', 'ST_FType'); });\n }\n else if (fn.type === MathFunctionType.Matrix) {\n matrix(ctx, out, fn);\n }\n else if (fn.type === MathFunctionType.NArray) {\n var n_1 = fn;\n writeValue(ctx, out, n_1, K.NAryChar, 'chr', function () { return n_1.nArrayCharacter; });\n writeValue(ctx, out, n_1, K.SubSupLimit, 'limLoc', function () { return n_1.subSuperscriptLimit ? 'subSup' : 'undOvr'; });\n writeFlags(ctx, out, n_1, [[K.HasGrow, 'grow', n_1.hasGrow], [K.HideSubscript, 'subHide', n_1.hideLowerLimit],\n [K.HideSuperscript, 'supHide', n_1.hideUpperLimit]]);\n }\n else if (fn.type === MathFunctionType.RightSubSuperscript) {\n writeFlags(ctx, out, fn, [[K.SkipAlign, 'alnScr', fn.isSkipAlign]]);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OpenXmlChild[]} out The children being built.\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {void}\n */\nfunction basicProperties(ctx, out, fn) {\n if (fn.type === MathFunctionType.Accent) {\n writeValue(ctx, out, fn, K.AccentChar, 'chr', function () { return fn.accentCharacter; });\n }\n else if (fn.type === MathFunctionType.Bar) {\n writeValue(ctx, out, fn, K.BarTop, 'pos', function () { return fn.barTop ? 'top' : 'bot'; });\n }\n else if (fn.type === MathFunctionType.BorderBox) {\n var b = fn;\n writeFlags(ctx, out, b, [[K.HideTop, 'hideTop', b.hideTop], [K.HideBottom, 'hideBot', b.hideBottom],\n [K.HideLeft, 'hideLeft', b.hideLeft], [K.HideRight, 'hideRight', b.hideRight],\n [K.StrikeHorizontal, 'strikeH', b.strikeHorizontal], [K.StrikeVertical, 'strikeV', b.strikeVertical],\n [K.StrikeBLTR, 'strikeBLTR', b.strikeDiagonalUp], [K.StrikeTLBR, 'strikeTLBR', b.strikeDiagonalDown]]);\n }\n else if (fn.type === MathFunctionType.Box) {\n var b = fn;\n writeFlags(ctx, out, b, [[K.OperatorEmulator, 'opEmu', b.operatorEmulator], [K.NoBreak, 'noBreak', b.noBreak],\n [K.EnableDifferential, 'diff', b.enableDifferential]]);\n if (b.break !== undefined) {\n out.push(writeBreak(ctx, b.break));\n }\n writeFlags(ctx, out, b, [[K.BoxAlign, 'aln', b.alignment]]);\n }\n else if (fn.type === MathFunctionType.GroupCharacter) {\n var g_1 = fn;\n writeValue(ctx, out, g_1, K.GroupChar, 'chr', function () { return g_1.groupCharacter; });\n writeValue(ctx, out, g_1, K.HasCharTop, 'pos', function () { return g_1.hasCharacterTop ? 'top' : 'bot'; });\n writeValue(ctx, out, g_1, K.HasAlignTop, 'vertJc', function () { return g_1.hasAlignTop ? 'top' : 'bot'; });\n }\n else if (fn.type === MathFunctionType.Phantom) {\n var p = fn;\n writeFlags(ctx, out, p, [[K.Show, 'show', p.show], [K.ZeroWidth, 'zeroWid', p.zeroWidth],\n [K.ZeroAscent, 'zeroAsc', p.zeroAscent], [K.ZeroDescent, 'zeroDesc', p.zeroDescent], [K.Transparent, 'transp', p.transparent]]);\n }\n else if (fn.type === MathFunctionType.Radical) {\n writeFlags(ctx, out, fn, [[K.HideDegree, 'degHide', fn.hideDegree]]);\n }\n}\n/**\n * Writes the explicit properties of a function in schema order, excluding `m:ctrlPr`. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {OpenXmlChild[]} The property children.\n */\nexport function functionProperties(ctx, fn) {\n var out = [];\n basicProperties(ctx, out, fn);\n multiProperties(ctx, out, fn);\n return out;\n}\n","/**\n * Office Math model → OMML serializer.\n *\n * Source: ECMA-376-1 §22.1 (shared-math.xsd). Writes only explicitly set properties, in schema order, and\n * re-emits {@link OfficeMathUnknownElement} content verbatim. Throws {@link MathmlValidationError} for\n * structures the schema forbids (for example a delimiter without an `m:e`).\n */\nimport { MATH_NAMESPACE, XML_NAMESPACE } from '../constants';\nimport { createText } from '../openxml';\nimport { MathFunctionType, MathLimitType, MathScriptType } from '../office-math/enums';\nimport { BasicRun, BasicRunFormat } from '../office-math/basic';\nimport { K } from '../office-math/keys';\nimport { OfficeMathUnknownElement } from '../office-math/unknown-element';\nimport { invalid, mathElement, resolveMathPrefix, token, valueElement } from './omml-writer';\nimport { functionProperties, PROPERTY_ELEMENT, runFormatChildren } from './office-math-properties-writer';\nvar JUSTIFICATION = ['centerGroup', 'center', 'left', 'right'];\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {Layout | undefined} The layout, or undefined for list/matrix/run/unknown functions.\n */\nfunction layoutOf(fn) {\n switch (fn.type) {\n case MathFunctionType.Accent: return { name: 'acc', pr: 'accPr', args: [['e', fn.equation]] };\n case MathFunctionType.Bar: return { name: 'bar', pr: 'barPr', args: [['e', fn.equation]] };\n case MathFunctionType.BorderBox: return { name: 'borderBox', pr: 'borderBoxPr', args: [['e', fn.equation]] };\n case MathFunctionType.Box: return { name: 'box', pr: 'boxPr', args: [['e', fn.equation]] };\n case MathFunctionType.GroupCharacter:\n return { name: 'groupChr', pr: 'groupChrPr', args: [['e', fn.equation]] };\n case MathFunctionType.Phantom: return { name: 'phant', pr: 'phantPr', args: [['e', fn.equation]] };\n case MathFunctionType.Radical:\n return { name: 'rad', pr: 'radPr', args: [['deg', fn.degree], ['e', fn.equation]] };\n case MathFunctionType.Fraction:\n return { name: 'f', pr: 'fPr', args: [['num', fn.numerator], ['den', fn.denominator]] };\n case MathFunctionType.Function:\n return { name: 'func', pr: 'funcPr', args: [['fName', fn.functionName], ['e', fn.equation]] };\n default: return layoutOfScripts(fn);\n }\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {Layout | undefined} The layout, or undefined when `fn` is not a limit, n-ary or script function.\n */\nfunction layoutOfScripts(fn) {\n if (fn.type === MathFunctionType.Limit) {\n var l = fn;\n var upper = l.limitType === MathLimitType.UpperLimit;\n return { name: upper ? 'limUpp' : 'limLow', pr: upper ? 'limUppPr' : 'limLowPr', args: [['e', l.equation], ['lim', l.limit]] };\n }\n if (fn.type === MathFunctionType.NArray) {\n var n = fn;\n return { name: 'nary', pr: 'naryPr', args: [['sub', n.subscript], ['sup', n.superscript], ['e', n.equation]] };\n }\n if (fn.type === MathFunctionType.SubSuperscript) {\n var s = fn;\n var sub = s.scriptType === MathScriptType.Subscript;\n return { name: sub ? 'sSub' : 'sSup', pr: sub ? 'sSubPr' : 'sSupPr', args: [['e', s.equation], [sub ? 'sub' : 'sup', s.script]] };\n }\n if (fn.type === MathFunctionType.RightSubSuperscript) {\n var r = fn;\n return { name: 'sSubSup', pr: 'sSubSupPr', args: [['e', r.equation], ['sub', r.subscript], ['sup', r.superscript]] };\n }\n if (fn.type === MathFunctionType.LeftSubSuperscript) {\n var p = fn;\n return { name: 'sPre', pr: 'sPrePr', args: [['sub', p.subscript], ['sup', p.superscript], ['e', p.equation]] };\n }\n return undefined;\n}\n/**\n * Builds the `m:ctrlPr` of a function from its control properties. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathFunctionBase} fn The function.\n * @returns {OpenXmlChild[]} Zero or one element.\n */\nfunction controlProperties(ctx, fn) {\n if (!fn.hasControlProperties) {\n return [];\n }\n if (ctx.adapter !== undefined) {\n var kids = ctx.adapter.serializeControlProperties(fn.controlProperties);\n return kids.length > 0 ? [mathElement(ctx, 'ctrlPr', kids)] : [];\n }\n var format = fn.controlProperties instanceof BasicRunFormat ? fn.controlProperties : undefined;\n return format !== undefined && format.preservedXml !== undefined ? [format.preservedXml] : [];\n}\n/**\n * Writes the property container (`m:*Pr`) of a function, or nothing when it would be empty. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathFunctionBase} fn The function.\n * @param {string} prName The container element name.\n * @returns {OpenXmlChild[]} Zero or one element.\n */\nfunction propertyContainer(ctx, fn, prName) {\n var kids = functionProperties(ctx, fn).concat(controlProperties(ctx, fn));\n return kids.length > 0 ? [mathElement(ctx, prName, kids)] : [];\n}\n/**\n * Writes an argument element (`m:e`, `m:num`, …). @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The element name.\n * @param {OfficeMath} math The argument content.\n * @param {string} path The element path for diagnostics.\n * @returns {OpenXmlElement} The element.\n */\nfunction writeArgument(ctx, name, math, path) {\n var kids = [];\n if (math.isExplicit(K.ArgumentSize)) {\n kids.push(mathElement(ctx, 'argPr', [valueElement(ctx, 'argSz', String(math.argumentSize))]));\n }\n writeContent(ctx, math, path).forEach(function (e) { return kids.push(e); });\n if (math.preservedControlProperties !== undefined) {\n kids.push(math.preservedControlProperties);\n }\n return mathElement(ctx, name, kids);\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMath} math The equation.\n * @param {string} path The element path for diagnostics.\n * @returns {OpenXmlElement[]} The serialized functions.\n */\nfunction writeContent(ctx, math, path) {\n return math.functions.toArray().map(function (fn, i) { return writeFunction(ctx, fn, path + '[' + String(i) + ']'); });\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {string} name The element name (`d` or `eqArr`).\n * @param {OfficeMathDelimiter | OfficeMathEquationArray} fn The function.\n * @param {string} prName The property container name.\n * @param {string} path The element path for diagnostics.\n * @returns {OpenXmlElement} The element.\n */\nfunction writeList(ctx, name, fn, prName, path) {\n if (fn.equations.count < 1) {\n invalid('m:' + name + ' requires at least one m:e', path, 'required-child');\n }\n var kids = propertyContainer(ctx, fn, prName);\n fn.equations.toArray().forEach(function (e, i) { return kids.push(writeArgument(ctx, 'e', e, path + '.e[' + String(i) + ']')); });\n return mathElement(ctx, name, kids);\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathMatrix} fn The matrix.\n * @param {string} path The element path for diagnostics.\n * @returns {OpenXmlElement} The element.\n */\nfunction writeMatrix(ctx, fn, path) {\n if (fn.rows.count < 1) {\n invalid('m:m requires at least one m:mr', path, 'required-child');\n }\n var kids = propertyContainer(ctx, fn, PROPERTY_ELEMENT[MathFunctionType.Matrix]);\n fn.rowItems.forEach(function (row, r) {\n var cells = row.arguments.toArray()\n .map(function (cell, c) { return writeArgument(ctx, 'e', cell, path + '.mr[' + String(r) + '].e[' + String(c) + ']'); });\n kids.push(mathElement(ctx, 'mr', cells));\n });\n return mathElement(ctx, 'm', kids);\n}\n/**\n * Implementation helper. @private\n *\n * @param {string} value The text.\n * @returns {boolean} True when leading or trailing whitespace needs `xml:space=\"preserve\"`.\n */\nfunction needsPreserve(value) {\n return value.length === 0 || /^\\s|\\s$/.test(value);\n}\n/**\n * Implementation helper. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {BasicRunPart} part The run part.\n * @returns {OpenXmlChild} The serialized part.\n */\nfunction writeRunPart(ctx, part) {\n if (part.kind === 'xml') {\n return part.element;\n }\n var space = part.space !== undefined ? part.space : needsPreserve(part.value) ? 'preserve' : undefined;\n var attrs = space === undefined ? [] : [{ namespaceUri: XML_NAMESPACE, localName: 'space', prefix: 'xml', value: space }];\n return mathElement(ctx, 't', [createText(part.value)], attrs);\n}\n/**\n * Writes `m:r`: `m:rPr`, then the host/WordprocessingML run content. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathRunElement} run The run element.\n * @returns {OpenXmlElement} The element.\n */\nfunction writeRun(ctx, run) {\n var kids = [];\n var format = runFormatChildren(ctx, run.mathFormat);\n if (format.length > 0) {\n kids.push(mathElement(ctx, 'rPr', format));\n }\n if (ctx.adapter !== undefined) {\n ctx.adapter.serializeMathRun(run).forEach(function (e) { return kids.push(e); });\n }\n else if (run.item instanceof BasicRun) {\n if (run.item.runProperties !== undefined) {\n kids.push(run.item.runProperties);\n }\n run.item.parts.forEach(function (part) { return kids.push(writeRunPart(ctx, part)); });\n }\n return mathElement(ctx, 'r', kids);\n}\n/**\n * Serializes one function. @private\n *\n * @param {WriteContext} ctx The write context.\n * @param {OfficeMathFunctionBase} fn The function.\n * @param {string} path The element path for diagnostics.\n * @returns {OpenXmlElement} The element.\n */\nfunction writeFunction(ctx, fn, path) {\n if (fn instanceof OfficeMathUnknownElement) {\n return fn.preservedXml;\n }\n if (fn.type === MathFunctionType.RunElement) {\n return writeRun(ctx, fn);\n }\n if (fn.type === MathFunctionType.Delimiter) {\n return writeList(ctx, 'd', fn, 'dPr', path);\n }\n if (fn.type === MathFunctionType.EquationArray) {\n return writeList(ctx, 'eqArr', fn, 'eqArrPr', path);\n }\n if (fn.type === MathFunctionType.Matrix) {\n return writeMatrix(ctx, fn, path);\n }\n var layout = layoutOf(fn);\n if (layout === undefined) {\n return invalid('Unsupported Math function type ' + String(fn.type), path, 'enum-value');\n }\n var kids = propertyContainer(ctx, fn, layout.pr);\n layout.args.forEach(function (a) { return kids.push(writeArgument(ctx, a[0], a[1], path + '.' + a[0])); });\n return mathElement(ctx, layout.name, kids);\n}\n/**\n * Implementation helper. @private\n *\n * @param {OfficeMathParagraph} paragraph The paragraph.\n * @returns {OpenXmlElement | undefined} A malformed root that the parser preserved verbatim, if that is all the paragraph holds.\n */\nfunction preservedRoot(paragraph) {\n if (paragraph.maths.count !== 1 || paragraph.maths.getItem(0).functions.count !== 1) {\n return undefined;\n }\n var only = paragraph.maths.getItem(0).functions.getItem(0);\n var isRoot = only instanceof OfficeMathUnknownElement && only.preservedXml.namespaceUri === MATH_NAMESPACE\n && (only.localName === 'oMath' || only.localName === 'oMathPara');\n return isRoot ? only.preservedXml : undefined;\n}\n/**\n * Serializes an {@link OfficeMathParagraph} to `m:oMathPara`, or to a bare `m:oMath` for an inline\n * paragraph (one equation, no explicit justification). A paragraph that holds a verbatim-preserved malformed\n * root re-emits that root unchanged.\n *\n * @param {OfficeMathParagraph} paragraph The model.\n * @param {SerializeOfficeMathOptions} options Optional serializer options.\n * @returns {OpenXmlElement} The `m:oMathPara` or `m:oMath` element.\n * @throws {MathmlValidationError} When the model violates the schema.\n * @public\n */\nexport function serializeOfficeMathParagraph(paragraph, options) {\n var adapter = paragraph.adapter;\n var ctx = { prefix: resolveMathPrefix(options), adapter: adapter };\n var preserved = preservedRoot(paragraph);\n if (preserved !== undefined) {\n return preserved;\n }\n var display = options !== undefined && options.display !== undefined\n ? options.display : paragraph.hasExplicitJustification || paragraph.maths.count !== 1;\n var maths = paragraph.maths.toArray();\n if (maths.length < 1) {\n invalid('An equation paragraph requires at least one m:oMath', 'oMathPara', 'required-child');\n }\n if (!display) {\n if (maths.length > 1) {\n invalid('A bare m:oMath holds exactly one equation', 'oMath', 'child-order');\n }\n return mathElement(ctx, 'oMath', writeContent(ctx, maths[0], 'oMath'));\n }\n var kids = [];\n if (paragraph.hasExplicitJustification) {\n var jc = token(JUSTIFICATION, paragraph.justification, 'oMathParaPr.jc', 'ST_Jc');\n kids.push(mathElement(ctx, 'oMathParaPr', [valueElement(ctx, 'jc', jc)]));\n }\n maths.forEach(function (m, i) {\n var path = 'oMathPara.oMath[' + String(i) + ']';\n kids.push(mathElement(ctx, 'oMath', writeContent(ctx, m, path)));\n });\n return mathElement(ctx, 'oMathPara', kids);\n}\n","/**\n * Schema-exact Office Math simple-type unions.\n *\n * Source: ECMA-376 Part 1 §22.1.3 / Part 4 Annex A.8.1 `shared-math.xsd`.\n * Serializer emits only these tokens — never synthesize members.\n */\n/** Members of {@link MathJc}. */\nexport var MATH_JC_VALUES = ['left', 'right', 'center', 'centerGroup'];\n/** Members of {@link MathFractionType}. */\nexport var MATH_FTYPE_VALUES = ['bar', 'skw', 'lin', 'noBar'];\n/** Members of {@link MathShape} — centered|match only. */\nexport var MATH_SHP_VALUES = ['centered', 'match'];\n/** Members of {@link MathLimLoc}. */\nexport var MATH_LIMLOC_VALUES = ['undOvr', 'subSup'];\n/** Members of {@link MathTopBot}. */\nexport var MATH_TOPBOT_VALUES = ['top', 'bot'];\n/** Members of {@link MathBreakBin}. */\nexport var MATH_BREAKBIN_VALUES = ['before', 'after', 'repeat'];\n/** Members of {@link MathBreakBinSub}. */\nexport var MATH_BREAKBINSUB_VALUES = ['--', '-+', '+-'];\n/** Members of {@link MathScript}. */\nexport var MATH_SCRIPT_VALUES = [\n 'roman',\n 'script',\n 'fraktur',\n 'double-struck',\n 'sans-serif',\n 'monospace',\n];\n/** Members of {@link MathStyle}. */\nexport var MATH_STYLE_VALUES = ['p', 'b', 'i', 'bi'];\n/** Members of {@link MathSpacingRule}. */\nexport var MATH_SPACING_RULE_VALUES = [0, 1, 2, 3, 4];\n/** Parse ST_Jc; undefined when not a known token. */\nexport function parseMathJc(value) {\n return (MATH_JC_VALUES.indexOf(value) !== -1) ? value : undefined;\n}\n/** Parse ST_FType. */\nexport function parseMathFractionType(value) {\n return (MATH_FTYPE_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Shp. */\nexport function parseMathShape(value) {\n return (MATH_SHP_VALUES.indexOf(value) !== -1) ? value : undefined;\n}\n/** Parse ST_LimLoc. */\nexport function parseMathLimLoc(value) {\n return (MATH_LIMLOC_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_TopBot. */\nexport function parseMathTopBot(value) {\n return (MATH_TOPBOT_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_BreakBin. */\nexport function parseMathBreakBin(value) {\n return (MATH_BREAKBIN_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_BreakBinSub. */\nexport function parseMathBreakBinSub(value) {\n return (MATH_BREAKBINSUB_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Script. */\nexport function parseMathScript(value) {\n return (MATH_SCRIPT_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/** Parse ST_Style. */\nexport function parseMathStyle(value) {\n return (MATH_STYLE_VALUES.indexOf(value) !== -1)\n ? value\n : undefined;\n}\n/**\n * ST_Integer2 range −2..2 (argSz).\n *\n * Source: ECMA-376-1 §22.1.3.5.\n */\nexport function isInteger2(value) {\n return Number.isInteger(value) && value >= -2 && value <= 2;\n}\n/**\n * ST_Integer255 range 1..255.\n *\n * Source: ECMA-376-1 §22.1.3.6.\n */\nexport function isInteger255(value) {\n return Number.isInteger(value) && value >= 1 && value <= 255;\n}\n/**\n * ST_UnSignedInteger ≥ 0.\n *\n * Source: ECMA-376-1 §22.1.3.14.\n */\nexport function isUnSignedInteger(value) {\n return Number.isInteger(value) && value >= 0;\n}\n/**\n * ST_SpacingRule 0..4.\n *\n * Source: ECMA-376-1 §22.1.3.11.\n */\nexport function isSpacingRule(value) {\n return Number.isInteger(value) && value >= 0 && value <= 4;\n}\n/** Parse OnOff-style val attribute (`1`/`true`/`on` → true). */\nexport function parseOnOff(value) {\n if (value === undefined) {\n return undefined;\n }\n var v = value.toLowerCase();\n if (v === '1' || v === 'true' || v === 'on') {\n return true;\n }\n if (v === '0' || v === 'false' || v === 'off') {\n return false;\n }\n return undefined;\n}\n/** Emit OnOff as `'1'` / `'0'`. */\nexport function emitOnOff(value) {\n return value ? '1' : '0';\n}\n","var __values = (this && this.__values) || function (o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Document-level math settings (`m:mathPr`, `CT_MathPr`).\n *\n * Source: ECMA-376 shared-math.xsd `CT_MathPr`; parity with compression\n * `OfficeMathProperties` / `SerializeMathProperties`.\n *\n * @packageDocumentation\n */\nimport { MATH_NAMESPACE } from './constants';\nimport { MathmlValidationError } from './errors';\nimport { createElement, attrValue, childElements } from './openxml';\nimport { parseMathBreakBin, parseMathBreakBinSub, parseMathJc, parseMathLimLoc, parseOnOff } from './model/enums';\nvar TWIPS_ELEMENTS = [\n ['leftMargin', 'lMargin'],\n ['rightMargin', 'rMargin'],\n ['defaultJustification', 'defJc'],\n ['preSpacing', 'preSp'],\n ['postSpacing', 'postSp'],\n ['interSpacing', 'interSp'],\n ['intraSpacing', 'intraSp'],\n];\nfunction child(pr, name) {\n return childElements(pr).find(function (c) { return c.namespaceUri === MATH_NAMESPACE && c.localName === name; });\n}\nfunction val(pr, name) {\n var c = child(pr, name);\n return c ? attrValue(c, 'val') : undefined;\n}\nfunction twips(pr, name) {\n var v = val(pr, name);\n return v !== undefined && /^\\d+$/.test(v) ? Number(v) : undefined;\n}\nfunction onOff(pr, name) {\n var c = child(pr, name);\n if (!c) {\n return undefined;\n }\n var v = attrValue(c, 'val');\n return v === undefined ? true : parseOnOff(v);\n}\n/**\n * Parse an `m:mathPr` element. Unknown or invalid values are omitted (tolerant).\n *\n * @public\n */\nexport function parseMathSettings(mathPr) {\n var s = {};\n var set = function (k, v) {\n if (v !== undefined) {\n s[k] = v;\n }\n };\n set('mathFont', val(mathPr, 'mathFont'));\n var bb = val(mathPr, 'brkBin');\n set('breakOnBinaryOperators', bb !== undefined ? parseMathBreakBin(bb) : undefined);\n var bs = val(mathPr, 'brkBinSub');\n set('breakOnBinarySubtraction', bs !== undefined ? parseMathBreakBinSub(bs) : undefined);\n set('smallFraction', onOff(mathPr, 'smallFrac'));\n set('displayMathDefaults', onOff(mathPr, 'dispDef'));\n set('leftMargin', twips(mathPr, 'lMargin'));\n set('rightMargin', twips(mathPr, 'rMargin'));\n var jc = val(mathPr, 'defJc');\n set('defaultJustification', jc !== undefined ? parseMathJc(jc) : undefined);\n set('preSpacing', twips(mathPr, 'preSp'));\n set('postSpacing', twips(mathPr, 'postSp'));\n set('interSpacing', twips(mathPr, 'interSp'));\n set('intraSpacing', twips(mathPr, 'intraSp'));\n set('wrapIndent', twips(mathPr, 'wrapIndent'));\n set('wrapRight', onOff(mathPr, 'wrapRight'));\n var il = val(mathPr, 'intLim');\n set('integralLimitLocation', il !== undefined ? parseMathLimLoc(il) : undefined);\n var nl = val(mathPr, 'naryLim');\n set('naryLimitLocation', nl !== undefined ? parseMathLimLoc(nl) : undefined);\n return s;\n}\n/**\n * Serialize {@link MathSettings} to `m:mathPr` in schema order.\n *\n * @throws MathmlValidationError when `wrapIndent` and `wrapRight` are both set, or a twips value is not a non-negative integer.\n * @public\n */\nexport function mathSettingsToOpenXml(settings, prefix) {\n if (prefix === void 0) { prefix = 'm'; }\n var e_1, _a;\n var kids = [];\n var el = function (name, value) {\n kids.push(createElement(MATH_NAMESPACE, name, prefix, {\n attributes: [{ namespaceUri: '', localName: 'val', prefix: '', value: value }],\n children: [],\n }));\n };\n var flag = function (name, v) {\n if (v !== undefined) {\n el(name, v ? '1' : '0');\n }\n };\n var tw = function (name, v) {\n if (v === undefined) {\n return;\n }\n if (!Number.isInteger(v) || v < 0) {\n throw new MathmlValidationError(name + \" must be a non-negative integer, got \" + String(v), \"mathPr.\" + name, 'value-range');\n }\n el(name, String(v));\n };\n if (settings.wrapIndent !== undefined && settings.wrapRight !== undefined) {\n throw new MathmlValidationError('wrapIndent and wrapRight are mutually exclusive', 'mathPr', 'child-order');\n }\n if (settings.mathFont !== undefined) {\n el('mathFont', settings.mathFont);\n }\n if (settings.breakOnBinaryOperators !== undefined) {\n el('brkBin', settings.breakOnBinaryOperators);\n }\n if (settings.breakOnBinarySubtraction !== undefined) {\n el('brkBinSub', settings.breakOnBinarySubtraction);\n }\n flag('smallFrac', settings.smallFraction);\n flag('dispDef', settings.displayMathDefaults);\n try {\n for (var TWIPS_ELEMENTS_1 = __values(TWIPS_ELEMENTS), TWIPS_ELEMENTS_1_1 = TWIPS_ELEMENTS_1.next(); !TWIPS_ELEMENTS_1_1.done; TWIPS_ELEMENTS_1_1 = TWIPS_ELEMENTS_1.next()) {\n var _b = __read(TWIPS_ELEMENTS_1_1.value, 2), key = _b[0], name_1 = _b[1];\n var v = settings[key];\n if (typeof v === 'string') {\n el(name_1, v);\n }\n else {\n tw(name_1, v);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (TWIPS_ELEMENTS_1_1 && !TWIPS_ELEMENTS_1_1.done && (_a = TWIPS_ELEMENTS_1.return)) _a.call(TWIPS_ELEMENTS_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n tw('wrapIndent', settings.wrapIndent);\n flag('wrapRight', settings.wrapRight);\n if (settings.integralLimitLocation !== undefined) {\n el('intLim', settings.integralLimitLocation);\n }\n if (settings.naryLimitLocation !== undefined) {\n el('naryLim', settings.naryLimitLocation);\n }\n return createElement(MATH_NAMESPACE, 'mathPr', prefix, { attributes: [], children: kids });\n}\n"],"names":["this","__extends","LETTER","FONT_COMMANDS","__values","P.applyAccent","P.applyBar","P.applyBorderBox","P.applyBox","P.applyFraction","P.applyGroupCharacter","P.applyNArray","P.applyPhantom","P.applyRadical","P.applyRightScript","P.findMathChild","P.readArgumentSize","P.findMathChildren","P.applyDelimiter","P.applyEquationArray","P.applyMatrix","P.applyMatrixColumns","P.applyRunFormat","_a","JUSTIFICATION","__read","onOff"],"mappings":"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"}