@syncfusion/ej2-office-common 35.1.37

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 (147) hide show
  1. package/.eslintrc.json +263 -0
  2. package/.prettierrc.json +5 -0
  3. package/README.md +167 -0
  4. package/api-extractor.json +35 -0
  5. package/core.js +4 -0
  6. package/dist/ej2-office-common.umd.min.js +11 -0
  7. package/dist/ej2-office-common.umd.min.js.map +1 -0
  8. package/dist/es6/ej2-office-common.es2015.js +6585 -0
  9. package/dist/es6/ej2-office-common.es2015.js.map +1 -0
  10. package/dist/es6/ej2-office-common.es5.js +7955 -0
  11. package/dist/es6/ej2-office-common.es5.js.map +1 -0
  12. package/dist/global/ej2-office-common.min.js +11 -0
  13. package/dist/global/ej2-office-common.min.js.map +1 -0
  14. package/dist/global/index.d.ts +14 -0
  15. package/encryption.js +4 -0
  16. package/features.js +4 -0
  17. package/global.json +6 -0
  18. package/index.js +4 -0
  19. package/license +10 -0
  20. package/nuget.config +7 -0
  21. package/package.json +23 -0
  22. package/src/all.d.ts +41 -0
  23. package/src/all.js +38 -0
  24. package/src/core/index.d.ts +6 -0
  25. package/src/core/index.js +6 -0
  26. package/src/core/xml/index.d.ts +7 -0
  27. package/src/core/xml/index.js +6 -0
  28. package/src/core/xml/model.d.ts +71 -0
  29. package/src/core/xml/model.js +20 -0
  30. package/src/encryption/agile-constants.d.ts +61 -0
  31. package/src/encryption/agile-constants.js +71 -0
  32. package/src/encryption/agile-encryption-info.d.ts +46 -0
  33. package/src/encryption/agile-encryption-info.js +333 -0
  34. package/src/encryption/agile-password.d.ts +8 -0
  35. package/src/encryption/agile-password.js +58 -0
  36. package/src/encryption/cfb-reader.d.ts +11 -0
  37. package/src/encryption/cfb-reader.js +345 -0
  38. package/src/encryption/crypto-primitives.d.ts +74 -0
  39. package/src/encryption/crypto-primitives.js +302 -0
  40. package/src/encryption/decrypt-encrypted-package.d.ts +16 -0
  41. package/src/encryption/decrypt-encrypted-package.js +138 -0
  42. package/src/encryption/encryption-info-xml.d.ts +21 -0
  43. package/src/encryption/encryption-info-xml.js +282 -0
  44. package/src/encryption/errors.d.ts +66 -0
  45. package/src/encryption/errors.js +124 -0
  46. package/src/encryption/index.d.ts +35 -0
  47. package/src/encryption/index.js +100 -0
  48. package/src/features/diagrams/constants.d.ts +83 -0
  49. package/src/features/diagrams/constants.js +101 -0
  50. package/src/features/diagrams/diagram-data-model.d.ts +148 -0
  51. package/src/features/diagrams/diagram-data-model.js +446 -0
  52. package/src/features/diagrams/diagram-parsers.d.ts +28 -0
  53. package/src/features/diagrams/diagram-parsers.js +182 -0
  54. package/src/features/diagrams/diagram-serializers.d.ts +20 -0
  55. package/src/features/diagrams/diagram-serializers.js +110 -0
  56. package/src/features/diagrams/diagram-views.d.ts +60 -0
  57. package/src/features/diagrams/diagram-views.js +213 -0
  58. package/src/features/diagrams/element-tree.d.ts +55 -0
  59. package/src/features/diagrams/element-tree.js +197 -0
  60. package/src/features/diagrams/errors.d.ts +17 -0
  61. package/src/features/diagrams/errors.js +59 -0
  62. package/src/features/diagrams/index.d.ts +17 -0
  63. package/src/features/diagrams/index.js +17 -0
  64. package/src/features/diagrams/smart-art-catalog.d.ts +107 -0
  65. package/src/features/diagrams/smart-art-catalog.js +422 -0
  66. package/src/features/diagrams/smart-art-diagram.d.ts +96 -0
  67. package/src/features/diagrams/smart-art-diagram.js +258 -0
  68. package/src/features/index.d.ts +11 -0
  69. package/src/features/index.js +11 -0
  70. package/src/features/ink/constants.d.ts +54 -0
  71. package/src/features/ink/constants.js +54 -0
  72. package/src/features/ink/index.d.ts +18 -0
  73. package/src/features/ink/index.js +15 -0
  74. package/src/features/ink/ink-effects.d.ts +35 -0
  75. package/src/features/ink/ink-effects.js +45 -0
  76. package/src/features/ink/ink-model.d.ts +237 -0
  77. package/src/features/ink/ink-model.js +406 -0
  78. package/src/features/ink/ink-parser.d.ts +59 -0
  79. package/src/features/ink/ink-parser.js +671 -0
  80. package/src/features/ink/ink-serializer.d.ts +16 -0
  81. package/src/features/ink/ink-serializer.js +281 -0
  82. package/src/features/ink/ink-units.d.ts +33 -0
  83. package/src/features/ink/ink-units.js +92 -0
  84. package/src/features/ink/ink-xml.d.ts +26 -0
  85. package/src/features/ink/ink-xml.js +165 -0
  86. package/src/features/ink/trace-codec.d.ts +127 -0
  87. package/src/features/ink/trace-codec.js +266 -0
  88. package/src/features/mathml/constants.d.ts +47 -0
  89. package/src/features/mathml/constants.js +47 -0
  90. package/src/features/mathml/errors.d.ts +50 -0
  91. package/src/features/mathml/errors.js +69 -0
  92. package/src/features/mathml/index.d.ts +30 -0
  93. package/src/features/mathml/index.js +22 -0
  94. package/src/features/mathml/math-factory.d.ts +26 -0
  95. package/src/features/mathml/math-factory.js +568 -0
  96. package/src/features/mathml/model/controls.d.ts +896 -0
  97. package/src/features/mathml/model/controls.js +1541 -0
  98. package/src/features/mathml/model/enums.d.ts +153 -0
  99. package/src/features/mathml/model/enums.js +133 -0
  100. package/src/features/mathml/model/math-element.d.ts +173 -0
  101. package/src/features/mathml/model/math-element.js +315 -0
  102. package/src/features/mathml/model/roots.d.ts +82 -0
  103. package/src/features/mathml/model/roots.js +177 -0
  104. package/src/features/mathml/openxml.d.ts +56 -0
  105. package/src/features/mathml/openxml.js +87 -0
  106. package/src/features/mathml/parse/math-parser.d.ts +43 -0
  107. package/src/features/mathml/parse/math-parser.js +636 -0
  108. package/src/features/mathml/serialize/math-serializer.d.ts +34 -0
  109. package/src/features/mathml/serialize/math-serializer.js +749 -0
  110. package/src/features/smart-art/diagram-xml.d.ts +63 -0
  111. package/src/features/smart-art/diagram-xml.js +459 -0
  112. package/src/features/smart-art/errors.d.ts +24 -0
  113. package/src/features/smart-art/errors.js +47 -0
  114. package/src/features/smart-art/index.d.ts +26 -0
  115. package/src/features/smart-art/index.js +26 -0
  116. package/src/features/smart-art/minimal-samples.d.ts +18 -0
  117. package/src/features/smart-art/minimal-samples.js +40 -0
  118. package/src/features/smart-art/mutators.d.ts +60 -0
  119. package/src/features/smart-art/mutators.js +566 -0
  120. package/src/features/smart-art/namespaces.d.ts +153 -0
  121. package/src/features/smart-art/namespaces.js +163 -0
  122. package/src/features/smart-art/package-graph.d.ts +61 -0
  123. package/src/features/smart-art/package-graph.js +413 -0
  124. package/src/features/smart-art/parse-colors.d.ts +19 -0
  125. package/src/features/smart-art/parse-colors.js +39 -0
  126. package/src/features/smart-art/parse-data.d.ts +21 -0
  127. package/src/features/smart-art/parse-data.js +121 -0
  128. package/src/features/smart-art/parse-layout.d.ts +20 -0
  129. package/src/features/smart-art/parse-layout.js +40 -0
  130. package/src/features/smart-art/parse-rel-ids.d.ts +71 -0
  131. package/src/features/smart-art/parse-rel-ids.js +233 -0
  132. package/src/features/smart-art/parse-style.d.ts +19 -0
  133. package/src/features/smart-art/parse-style.js +39 -0
  134. package/src/features/smart-art/point-text.d.ts +80 -0
  135. package/src/features/smart-art/point-text.js +424 -0
  136. package/src/features/smart-art/register.d.ts +33 -0
  137. package/src/features/smart-art/register.js +95 -0
  138. package/src/features/smart-art/serialize.d.ts +40 -0
  139. package/src/features/smart-art/serialize.js +48 -0
  140. package/src/features/smart-art/types.d.ts +403 -0
  141. package/src/features/smart-art/types.js +28 -0
  142. package/src/global.js +1 -0
  143. package/src/index.d.ts +21 -0
  144. package/src/index.js +22 -0
  145. package/tsconfig.build.json +13 -0
  146. package/tsconfig.harness.json +32 -0
  147. package/tslint.json +111 -0
@@ -0,0 +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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"}