abstract-document 20.0.4 → 20.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
  3. package/lib/abstract-document/abstract-doc.js +2 -2
  4. package/lib/abstract-document/atoms/atom.d.ts +3 -3
  5. package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
  6. package/lib/abstract-document/default-styles.d.ts.map +1 -1
  7. package/lib/abstract-document/default-styles.js.map +1 -1
  8. package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
  9. package/lib/abstract-document/markdown/markdown.js +4 -4
  10. package/lib/abstract-document/markdown/markdown.js.map +1 -1
  11. package/lib/abstract-document/numberings/numbering-definition.d.ts +2 -2
  12. package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
  13. package/lib/abstract-document/numberings/numbering-level-definition.js +2 -2
  14. package/lib/abstract-document/page/master-page.d.ts +1 -1
  15. package/lib/abstract-document/page/master-page.d.ts.map +1 -1
  16. package/lib/abstract-document/page/master-page.js +1 -1
  17. package/lib/abstract-document/page/master-page.js.map +1 -1
  18. package/lib/abstract-document/page/section.d.ts +1 -1
  19. package/lib/abstract-document/page/section.d.ts.map +1 -1
  20. package/lib/abstract-document/page/section.js +2 -2
  21. package/lib/abstract-document/page/section.js.map +1 -1
  22. package/lib/abstract-document/primitives/font.d.ts +1 -1
  23. package/lib/abstract-document/primitives/font.d.ts.map +1 -1
  24. package/lib/abstract-document/primitives/font.js +1 -1
  25. package/lib/abstract-document/primitives/font.js.map +1 -1
  26. package/lib/abstract-document/primitives/layout-foundation-color.d.ts.map +1 -1
  27. package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
  28. package/lib/abstract-document/primitives/layout-foundation.d.ts.map +1 -1
  29. package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
  30. package/lib/abstract-document/resources.d.ts +4 -3
  31. package/lib/abstract-document/resources.d.ts.map +1 -1
  32. package/lib/abstract-document/resources.js +4 -4
  33. package/lib/abstract-document/resources.js.map +1 -1
  34. package/lib/abstract-document/section-elements/group.d.ts +1 -1
  35. package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
  36. package/lib/abstract-document/section-elements/group.js +2 -2
  37. package/lib/abstract-document/section-elements/group.js.map +1 -1
  38. package/lib/abstract-document/section-elements/page-break.d.ts +2 -2
  39. package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
  40. package/lib/abstract-document/section-elements/page-break.js +1 -2
  41. package/lib/abstract-document/section-elements/page-break.js.map +1 -1
  42. package/lib/abstract-document/section-elements/paragraph.d.ts +2 -2
  43. package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
  44. package/lib/abstract-document/section-elements/paragraph.js +2 -2
  45. package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
  46. package/lib/abstract-document/section-elements/section-element.d.ts +1 -1
  47. package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
  48. package/lib/abstract-document/section-elements/section-element.js.map +1 -1
  49. package/lib/abstract-document/section-elements/table.d.ts +1 -1
  50. package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
  51. package/lib/abstract-document/section-elements/table.js +2 -2
  52. package/lib/abstract-document/section-elements/table.js.map +1 -1
  53. package/lib/abstract-document/styles/group-style.js +3 -3
  54. package/lib/abstract-document/styles/page-style.d.ts.map +1 -1
  55. package/lib/abstract-document/styles/page-style.js +3 -7
  56. package/lib/abstract-document/styles/page-style.js.map +1 -1
  57. package/lib/abstract-document/styles/paragraph-style.d.ts +1 -1
  58. package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
  59. package/lib/abstract-document/styles/paragraph-style.js +5 -5
  60. package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
  61. package/lib/abstract-document/styles/style.d.ts.map +1 -1
  62. package/lib/abstract-document/styles/style.js.map +1 -1
  63. package/lib/abstract-document/styles/table-cell-style.d.ts +1 -1
  64. package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
  65. package/lib/abstract-document/styles/table-cell-style.js +7 -7
  66. package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
  67. package/lib/abstract-document/styles/table-style.d.ts +1 -1
  68. package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
  69. package/lib/abstract-document/styles/table-style.js +2 -2
  70. package/lib/abstract-document/styles/table-style.js.map +1 -1
  71. package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
  72. package/lib/abstract-document/styles/text-style.js +16 -21
  73. package/lib/abstract-document/styles/text-style.js.map +1 -1
  74. package/lib/abstract-document/table/table-cell.js +2 -2
  75. package/lib/abstract-document/table/table-row.d.ts +2 -3
  76. package/lib/abstract-document/table/table-row.d.ts.map +1 -1
  77. package/lib/abstract-document/table/table-row.js +2 -3
  78. package/lib/abstract-document/table/table-row.js.map +1 -1
  79. package/lib/abstract-document/types.d.ts.map +1 -1
  80. package/lib/abstract-document-exporters/docx/document-container.d.ts +5 -5
  81. package/lib/abstract-document-exporters/docx/document-container.d.ts.map +1 -1
  82. package/lib/abstract-document-exporters/docx/document-container.js +14 -13
  83. package/lib/abstract-document-exporters/docx/document-container.js.map +1 -1
  84. package/lib/abstract-document-exporters/docx/docx-constants.d.ts.map +1 -1
  85. package/lib/abstract-document-exporters/docx/docx-constants.js +1 -4
  86. package/lib/abstract-document-exporters/docx/docx-constants.js.map +1 -1
  87. package/lib/abstract-document-exporters/docx/ref-container.d.ts +8 -10
  88. package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
  89. package/lib/abstract-document-exporters/docx/ref-container.js +34 -35
  90. package/lib/abstract-document-exporters/docx/ref-container.js.map +1 -1
  91. package/lib/abstract-document-exporters/docx/string-utils.d.ts +2 -1
  92. package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
  93. package/lib/abstract-document-exporters/docx/string-utils.js +6 -4
  94. package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
  95. package/lib/abstract-document-exporters/docx/xml-writer.d.ts +12 -33
  96. package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
  97. package/lib/abstract-document-exporters/docx/xml-writer.js +243 -249
  98. package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
  99. package/lib/abstract-document-exporters/docx2/render-image.d.ts +1 -1
  100. package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
  101. package/lib/abstract-document-exporters/docx2/render-image.js +4 -16
  102. package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
  103. package/lib/abstract-document-exporters/docx2/render.d.ts.map +1 -1
  104. package/lib/abstract-document-exporters/docx2/render.js +28 -38
  105. package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
  106. package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
  107. package/lib/abstract-document-exporters/pdf/font.js +13 -14
  108. package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
  109. package/lib/abstract-document-exporters/pdf/header-footer.d.ts +8 -0
  110. package/lib/abstract-document-exporters/pdf/header-footer.d.ts.map +1 -0
  111. package/lib/abstract-document-exporters/pdf/header-footer.js +31 -0
  112. package/lib/abstract-document-exporters/pdf/header-footer.js.map +1 -0
  113. package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -4
  114. package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
  115. package/lib/abstract-document-exporters/pdf/measure.js +29 -31
  116. package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
  117. package/lib/abstract-document-exporters/pdf/page.d.ts +15 -0
  118. package/lib/abstract-document-exporters/pdf/page.d.ts.map +1 -0
  119. package/lib/abstract-document-exporters/pdf/page.js +2 -0
  120. package/lib/abstract-document-exporters/pdf/page.js.map +1 -0
  121. package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -20
  122. package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
  123. package/lib/abstract-document-exporters/pdf/paginate.js +8 -45
  124. package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
  125. package/lib/abstract-document-exporters/pdf/pre-process.d.ts.map +1 -1
  126. package/lib/abstract-document-exporters/pdf/pre-process.js +8 -35
  127. package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
  128. package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
  129. package/lib/abstract-document-exporters/pdf/render-image.js +24 -34
  130. package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
  131. package/lib/abstract-document-exporters/pdf/render.d.ts +4 -3
  132. package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
  133. package/lib/abstract-document-exporters/pdf/render.js +60 -50
  134. package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
  135. package/lib/abstract-document-exporters/pdf/std-fonts.js +1 -1
  136. package/lib/abstract-document-exporters/pdf/std-fonts.js.map +1 -1
  137. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts +3 -3
  138. package/lib/abstract-document-exporters/pdf/textRunRow.d.ts.map +1 -1
  139. package/lib/abstract-document-exporters/pdf/textRunRow.js +6 -6
  140. package/lib/abstract-document-exporters/pdf/textRunRow.js.map +1 -1
  141. package/lib/abstract-document-exporters/pdf/update-refs.d.ts +1 -1
  142. package/lib/abstract-document-exporters/pdf/update-refs.d.ts.map +1 -1
  143. package/lib/abstract-document-exporters/pdf/update-refs.js +3 -2
  144. package/lib/abstract-document-exporters/pdf/update-refs.js.map +1 -1
  145. package/lib/abstract-document-exporters/shared/get_resources.d.ts.map +1 -1
  146. package/lib/abstract-document-exporters/shared/get_resources.js.map +1 -1
  147. package/lib/abstract-document-jsx/index.d.ts +2 -3
  148. package/lib/abstract-document-jsx/index.d.ts.map +1 -1
  149. package/lib/abstract-document-jsx/index.js +10 -6
  150. package/lib/abstract-document-jsx/index.js.map +1 -1
  151. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +3 -7
  152. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
  153. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +5 -3
  154. package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
  155. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.d.ts.map +1 -1
  156. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js +1 -3
  157. package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js.map +1 -1
  158. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.d.ts.map +1 -1
  159. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js +4 -8
  160. package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
  161. package/lib/abstract-document-xml/xsd-template/xsd-template.js +2 -2
  162. package/lib/abstract-document-xml/xsd-template/xsd-template.js.map +1 -1
  163. package/package.json +21 -21
  164. package/src/abstract-document/abstract-doc.ts +6 -6
  165. package/src/abstract-document/atoms/atom.ts +3 -3
  166. package/src/abstract-document/default-styles.ts +1 -1
  167. package/src/abstract-document/markdown/markdown.ts +5 -5
  168. package/src/abstract-document/numberings/numbering-definition.ts +2 -2
  169. package/src/abstract-document/numberings/numbering-level-definition.ts +2 -2
  170. package/src/abstract-document/page/master-page.ts +2 -2
  171. package/src/abstract-document/page/section.ts +3 -3
  172. package/src/abstract-document/primitives/font.ts +1 -12
  173. package/src/abstract-document/primitives/layout-foundation-color.ts +1 -4
  174. package/src/abstract-document/primitives/layout-foundation.ts +1 -4
  175. package/src/abstract-document/resources.ts +9 -14
  176. package/src/abstract-document/section-elements/group.ts +3 -3
  177. package/src/abstract-document/section-elements/page-break.ts +2 -3
  178. package/src/abstract-document/section-elements/paragraph.ts +4 -4
  179. package/src/abstract-document/section-elements/section-element.ts +1 -1
  180. package/src/abstract-document/section-elements/table.ts +3 -3
  181. package/src/abstract-document/styles/group-style.ts +3 -3
  182. package/src/abstract-document/styles/page-style.ts +3 -7
  183. package/src/abstract-document/styles/paragraph-style.ts +6 -14
  184. package/src/abstract-document/styles/style.ts +1 -5
  185. package/src/abstract-document/styles/table-cell-style.ts +8 -11
  186. package/src/abstract-document/styles/table-style.ts +3 -8
  187. package/src/abstract-document/styles/text-style.ts +16 -21
  188. package/src/abstract-document/table/table-cell.ts +2 -2
  189. package/src/abstract-document/table/table-row.ts +3 -4
  190. package/src/abstract-document/types.ts +0 -1
  191. package/src/abstract-document-exporters/docx/document-container.ts +24 -13
  192. package/src/abstract-document-exporters/docx/docx-constants.ts +2 -6
  193. package/src/abstract-document-exporters/docx/ref-container.ts +48 -41
  194. package/src/abstract-document-exporters/docx/string-utils.ts +6 -6
  195. package/src/abstract-document-exporters/docx/xml-writer.ts +261 -266
  196. package/src/abstract-document-exporters/docx2/render-image.ts +15 -49
  197. package/src/abstract-document-exporters/docx2/render.ts +64 -139
  198. package/src/abstract-document-exporters/pdf/font.ts +17 -23
  199. package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
  200. package/src/abstract-document-exporters/pdf/measure.ts +50 -103
  201. package/src/abstract-document-exporters/pdf/page.ts +16 -0
  202. package/src/abstract-document-exporters/pdf/paginate.ts +29 -125
  203. package/src/abstract-document-exporters/pdf/pre-process.ts +11 -47
  204. package/src/abstract-document-exporters/pdf/render-image.ts +29 -46
  205. package/src/abstract-document-exporters/pdf/render.ts +84 -129
  206. package/src/abstract-document-exporters/pdf/std-fonts.ts +1 -1
  207. package/src/abstract-document-exporters/pdf/textRunRow.ts +12 -23
  208. package/src/abstract-document-exporters/pdf/update-refs.ts +10 -33
  209. package/src/abstract-document-exporters/shared/get_resources.ts +4 -4
  210. package/src/abstract-document-jsx/index.ts +38 -26
  211. package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +14 -26
  212. package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +10 -28
  213. package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
  214. package/src/abstract-document-xml/xsd-template/xsd-template.ts +2 -2
@@ -1,13 +1,15 @@
1
+ // oxlint-disable no-bitwise
1
2
  // https://github.com/google/closure-library/blob/e877b1eac410c0d842bcda118689759512e0e26f/closure/goog/crypt/crypt.js
2
- //tslint:disable
3
3
  /**
4
4
  * Converts a JS string to a UTF-8 "byte" array.
5
+ *
5
6
  * @param {string} str 16-bit unicode string.
6
- * @return {!Array<number>} UTF-8 byte array.
7
+ * @returns {!number[]} UTF-8 byte array.
7
8
  */
8
9
  export function stringToUtf8ByteArray(str) {
9
10
  // TODO(user): Use native implementations if/when available
10
- let out = [], p = 0;
11
+ const out = [];
12
+ let p = 0;
11
13
  for (let i = 0; i < str.length; i++) {
12
14
  let c = str.charCodeAt(i);
13
15
  if (c < 128) {
@@ -17,7 +19,7 @@ export function stringToUtf8ByteArray(str) {
17
19
  out[p++] = (c >> 6) | 192;
18
20
  out[p++] = (c & 63) | 128;
19
21
  }
20
- else if ((c & 0xfc00) == 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {
22
+ else if ((c & 0xfc00) === 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {
21
23
  // Surrogate Pair
22
24
  c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);
23
25
  out[p++] = (c >> 18) | 240;
@@ -1 +1 @@
1
- {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/docx/string-utils.ts"],"names":[],"mappings":"AAAA,sHAAsH;AAEtH,gBAAgB;AAEhB;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,2DAA2D;IAC3D,IAAI,GAAG,GAAU,EAAE,EACjB,CAAC,GAAW,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACtG,iBAAiB;YACjB,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YACpE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAClC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/docx/string-utils.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,sHAAsH;AAEtH;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,2DAA2D;IAC3D,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;YACxG,iBAAiB;YACjB,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YACpE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAClC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -1,35 +1,14 @@
1
- export declare class XmlWriter {
2
- private static readonly quoteChar;
3
- private readonly _encoding;
4
- private readonly _indent;
5
- private _xml;
6
- private _state;
7
- private _contextStack;
8
- WriteStartDocument(standalone?: boolean): void;
9
- WriteComment(text: string): void;
10
- WriteStartElement(localName: string): void;
11
- WriteStartElement(localName: string, ns: string): void;
12
- WriteStartElement(localName: string, ns: string, prefix: string): void;
13
- WriteString(text: string): void;
14
- WriteElementString(localName: string, value: string, ns: string, prefix: string): void;
15
- WriteAttributeString(localName: string, value: string): void;
16
- WriteAttributeString(localName: string, value: string, ns: string): void;
17
- WriteAttributeString(localName: string, value: string, ns: string, prefix: string): void;
18
- WriteEndElement(): void;
19
- Flush(): void;
20
- close(): void;
21
- getXml(): string;
22
- private getPrefixFromAncestors;
23
- private peekContextStack;
24
- private static generatePrefix;
25
- private completeStartElement;
26
- private throwInvalidState;
27
- private addNamespace;
28
- private writeIndent;
29
- private write;
30
- private writeNamespaceAttributes;
31
- private getNamespacesNotInAncestors;
32
- private writeNamespaceAttribute;
33
- private static getPrefixedName;
1
+ export interface XmlWriter {
2
+ WriteStartDocument: (standalone?: boolean) => void;
3
+ WriteComment: (text: string) => void;
4
+ WriteStartElement: (localName: string, ns?: string, prefix?: string) => void;
5
+ WriteString: (text: string) => void;
6
+ WriteElementString: (localName: string, value: string, ns: string, prefix: string) => void;
7
+ WriteAttributeString: (localName: string, value: string, ns?: string, prefix?: string) => void;
8
+ WriteEndElement: () => void;
9
+ Flush: () => void;
10
+ close: () => void;
11
+ getXml: () => string;
34
12
  }
13
+ export declare function createXmlWriter(): XmlWriter;
35
14
  //# sourceMappingURL=xml-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xml-writer.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/docx/xml-writer.ts"],"names":[],"mappings":"AA8BA,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAO;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IAErC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,aAAa,CAAgC;IAErD,kBAAkB,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAyB7C;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkB/B;IAED,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAuCvE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoB9B;IAED,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrF;IAED,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzE,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IA4BzF,eAAe,IAAI,IAAI,CA4BtB;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,MAAM,IAAI,MAAM,CAEf;IAGD,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,MAAM,CAAC,eAAe;CAQ/B"}
1
+ {"version":3,"file":"xml-writer.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/docx/xml-writer.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3F,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/F,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,IAAI,SAAS,CA+S3C"}
@@ -1,298 +1,292 @@
1
- // interface XmlElement {
2
- // localName: string,
3
- // ns: string | undefined,
4
- // prefix: string | undefined,
5
- // attributes: Array<XmlAttribute>
6
- // parent: XmlElement,
7
- // children: Array<XmlElement>
8
- // }
9
- export class XmlWriter {
10
- static quoteChar = '"';
11
- _encoding = "utf-8";
12
- _indent = 2;
13
- _xml = "";
14
- _state = "Start";
15
- _contextStack = [];
16
- WriteStartDocument(standalone) {
17
- try {
18
- // tslint:disable-next-line:no-this
19
- if (this._state === "Start" || this._state === "Prolog") {
20
- let bufBld = "";
21
- bufBld += "version=" + XmlWriter.quoteChar + "1.0" + XmlWriter.quoteChar;
22
- if (this._encoding != null) {
23
- bufBld += ` encoding=${XmlWriter.quoteChar}${this._encoding}${XmlWriter.quoteChar}`;
24
- }
25
- if (standalone) {
26
- const standAlone = standalone ? "yes" : "no";
27
- bufBld += ` standalone=${XmlWriter.quoteChar}${standAlone}${XmlWriter.quoteChar}`;
28
- }
29
- this.writeIndent(this._state !== "Start");
30
- const xmlProcessingIntruction = `<?xml ${bufBld}?>`;
31
- this.write(xmlProcessingIntruction);
32
- }
33
- else {
34
- this.throwInvalidState();
35
- }
36
- // Set next state
37
- this._state = "Prolog";
38
- }
39
- catch (e) {
40
- this._state = "Error";
41
- throw e;
42
- }
43
- }
44
- WriteComment(text) {
45
- try {
46
- if (this._state === "Prolog" || this._state === "Content") {
47
- if (text && (text.indexOf("--") >= 0 || (text.length != 0 && text[text.length - 1] == "-"))) {
48
- throw new Error("Xml_InvalidCommentChars");
49
- }
50
- text = text || "";
51
- this.writeIndent();
52
- this.write(`<!--${text}-->`);
53
- }
54
- else {
55
- this.throwInvalidState();
56
- }
57
- // Set next state
58
- // For XML-comments this case the next state should be the same as the previous one!
59
- }
60
- catch (e) {
61
- this._state = "Error";
62
- throw e;
63
- }
64
- }
65
- WriteStartElement(localName, ns, prefix) {
66
- try {
67
- if (this._state === "Start" ||
68
- this._state === "Prolog" ||
69
- this._state === "Element" ||
70
- this._state === "Content") {
71
- if (this._state === "Element") {
72
- // Close previous start-element
73
- this.completeStartElement(false, this.peekContextStack().namespaces);
74
- }
75
- // Push new element-context to stack
76
- const elementName = XmlWriter.getPrefixedName(localName, prefix);
77
- this._contextStack.push({
78
- elementName,
79
- namespaces: {},
80
- contentStringWritten: false,
81
- });
82
- this.writeIndent(this._state !== "Start");
83
- this.write("<" + elementName);
84
- if (ns) {
85
- this.addNamespace(ns, prefix);
86
- }
87
- }
88
- else {
89
- this.throwInvalidState();
90
- }
91
- // Set next state
92
- this._state = "Element";
93
- }
94
- catch (e) {
95
- this._state = "Error";
96
- throw e;
97
- }
1
+ export function createXmlWriter() {
2
+ const quoteChar = '"';
3
+ const encoding = "utf-8";
4
+ const indentSize = 2;
5
+ let xml = "";
6
+ let state = "Start";
7
+ const contextStack = [];
8
+ function write(text) {
9
+ xml += text;
98
10
  }
99
- WriteString(text) {
100
- try {
101
- if (this._state === "Content" || this._state === "Element") {
102
- if (this._state === "Element") {
103
- this.completeStartElement(false, this.peekContextStack().namespaces);
104
- }
105
- // Flag that content string has been written
106
- this.peekContextStack().contentStringWritten = true;
107
- this.write(text);
108
- }
109
- else {
110
- this.throwInvalidState();
111
- }
112
- // Set next state
113
- this._state = "Content";
114
- }
115
- catch (e) {
116
- this._state = "Error";
117
- throw e;
118
- }
11
+ function peekContextStack() {
12
+ return contextStack[contextStack.length - 1];
119
13
  }
120
- WriteElementString(localName, value, ns, prefix) {
121
- this.WriteStartElement(localName, ns, prefix);
122
- if (value && value.length > 0)
123
- this.WriteString(value);
124
- this.WriteEndElement();
14
+ function throwInvalidState() {
15
+ throw new Error(`Invalid state '${state}'.`);
125
16
  }
126
- WriteAttributeString(localName, value, ns, prefix) {
127
- try {
128
- if (this._state === "Element") {
129
- if (ns) {
130
- // Seems like a prefix is always invented for attributes if not provided
131
- // (but for elements it is OK to have blank prefix)
132
- if (!prefix || prefix.length === 0) {
133
- prefix = this.getPrefixFromAncestors(ns);
134
- if (!prefix) {
135
- prefix = XmlWriter.generatePrefix(this.peekContextStack().namespaces);
136
- }
137
- }
138
- this.addNamespace(ns, prefix);
139
- }
140
- const attributeName = XmlWriter.getPrefixedName(localName, prefix);
141
- this.write(` ${attributeName}=${XmlWriter.quoteChar}${value}${XmlWriter.quoteChar}`);
142
- }
143
- else {
144
- this.throwInvalidState();
17
+ function generatePrefix(namespaces) {
18
+ let i = 1;
19
+ while (i < 100) {
20
+ if (!Object.hasOwn(namespaces, "p" + i)) {
21
+ break;
145
22
  }
146
- // Set next state
147
- this._state = "Element";
148
- }
149
- catch (e) {
150
- this._state = "Error";
151
- throw e;
23
+ i++;
152
24
  }
25
+ return "p" + i;
153
26
  }
154
- WriteEndElement() {
155
- try {
156
- if (this._state === "Content" || this._state === "Element") {
157
- // const context = this._contextStack.pop() as XmlElementContext;
158
- const context = this.peekContextStack();
159
- // Only close in itself if no content
160
- if (this._state === "Element") {
161
- this.completeStartElement(true, context.namespaces);
162
- }
163
- else {
164
- // Do not indent if there is text content written since
165
- // the indention would be included in the actual text content
166
- if (!context.contentStringWritten)
167
- this.writeIndent();
168
- this.write(`</${context.elementName}>`);
169
- }
170
- this._contextStack.pop();
171
- }
172
- else {
173
- this.throwInvalidState();
174
- }
175
- // Set next state
176
- if (this._contextStack.length == 0) {
177
- this._state = "Closed";
178
- }
179
- else {
180
- this._state = "Content";
181
- }
27
+ function getPrefixedName(localName, prefix) {
28
+ if (prefix) {
29
+ return `${prefix}:${localName}`;
182
30
  }
183
- catch (e) {
184
- this._state = "Error";
185
- throw e;
31
+ else {
32
+ // oxlint-disable-next-line typescript/no-unnecessary-template-expression
33
+ return `${localName}`;
186
34
  }
187
35
  }
188
- Flush() {
189
- this.close();
190
- }
191
- close() {
192
- this._state = "Closed";
193
- }
194
- getXml() {
195
- return this._xml;
196
- }
197
36
  // Find existing prefix for a specified namespace
198
- getPrefixFromAncestors(ns) {
199
- for (const context of this._contextStack) {
37
+ function getPrefixFromAncestors(ns) {
38
+ for (const context of contextStack) {
200
39
  for (const prefix of Object.keys(context.namespaces)) {
201
- if (context.namespaces[prefix] === ns)
40
+ if (context.namespaces[prefix] === ns) {
202
41
  return prefix;
42
+ }
203
43
  }
204
44
  }
205
45
  return undefined;
206
46
  }
207
- peekContextStack() {
208
- return this._contextStack[this._contextStack.length - 1];
209
- }
210
- static generatePrefix(namespaces) {
211
- let i = 1;
212
- while (i < 100) {
213
- if (!namespaces.hasOwnProperty("p" + i))
214
- break;
215
- i++;
216
- }
217
- return "p" + i;
218
- }
219
- completeStartElement(close, namespaces) {
220
- this.writeNamespaceAttributes(namespaces);
221
- if (close) {
222
- this.write(" />");
223
- }
224
- else {
225
- this.write(">");
226
- }
227
- }
228
- throwInvalidState() {
229
- throw new Error(`Invalid state '${this._state}'.`);
230
- }
231
- addNamespace(ns, prefix) {
47
+ function addNamespace(ns, prefix) {
232
48
  // Make sure we don't duplicate prefixes
233
- prefix = prefix || "";
234
- this.peekContextStack().namespaces[prefix] = ns;
49
+ peekContextStack().namespaces[prefix ?? ""] = ns;
235
50
  }
236
- writeIndent(newLine = true) {
237
- if (this._indent > 0) {
51
+ function writeIndent(newLine = true) {
52
+ if (indentSize > 0) {
238
53
  if (newLine) {
239
- this.write("\n");
54
+ write("\n");
240
55
  }
241
- if (!(this._state === "Start" || this._state === "Prolog")) {
242
- for (let i = 0; i < this._indent * (this._contextStack.length - 1); i++) {
243
- this.write(" ");
56
+ if (!(state === "Start" || state === "Prolog")) {
57
+ for (let i = 0; i < indentSize * (contextStack.length - 1); i++) {
58
+ write(" ");
244
59
  }
245
60
  }
246
61
  }
247
62
  }
248
- write(text) {
249
- this._xml += text;
250
- //console.log(`xml: '${this._xml}'`,);
251
- }
252
- writeNamespaceAttributes(namespaces) {
253
- // We should not repeat namespaces that exists in our ancestors
254
- // Check which of our current namespaces that does not exist in this ancestor
255
- const toWrite = this.getNamespacesNotInAncestors(namespaces);
256
- // Write the ones that was not found in ancestor
257
- for (const prefix of Object.keys(toWrite)) {
258
- this.writeNamespaceAttribute(namespaces[prefix], prefix);
259
- }
260
- }
261
- getNamespacesNotInAncestors(namespaces) {
63
+ function getNamespacesNotInAncestors(namespaces) {
262
64
  const toWrite = {};
263
65
  for (const prefix of Object.keys(namespaces)) {
264
66
  let exists = false;
265
67
  // Don't check the current (last) context in the stack
266
- for (let i = 0; i < this._contextStack.length - 1; i++) {
267
- const context = this._contextStack[i];
268
- if (context.namespaces[prefix] == namespaces[prefix]) {
68
+ for (let i = 0; i < contextStack.length - 1; i++) {
69
+ const context = contextStack[i];
70
+ if (context.namespaces[prefix] === namespaces[prefix]) {
269
71
  exists = true;
270
72
  break;
271
73
  }
272
74
  }
273
- if (!exists)
75
+ if (!exists) {
274
76
  toWrite[prefix] = namespaces[prefix];
77
+ }
275
78
  }
276
79
  return toWrite;
277
80
  }
278
- writeNamespaceAttribute(ns, prefix) {
81
+ function writeNamespaceAttribute(ns, prefix) {
279
82
  if (ns) {
280
83
  if (prefix) {
281
- this.write(` xmlns:${prefix}="${ns}"`);
84
+ write(` xmlns:${prefix}="${ns}"`);
282
85
  }
283
86
  else {
284
- this.write(` xmlns="${ns}"`);
87
+ write(` xmlns="${ns}"`);
285
88
  }
286
89
  }
287
90
  }
288
- static getPrefixedName(localName, prefix) {
289
- if (prefix) {
290
- return `${prefix}:${localName}`;
91
+ function writeNamespaceAttributes(namespaces) {
92
+ // We should not repeat namespaces that exists in our ancestors
93
+ // Check which of our current namespaces that does not exist in this ancestor
94
+ const toWrite = getNamespacesNotInAncestors(namespaces);
95
+ // Write the ones that was not found in ancestor
96
+ for (const prefix of Object.keys(toWrite)) {
97
+ writeNamespaceAttribute(namespaces[prefix], prefix);
98
+ }
99
+ }
100
+ function completeStartElement(closeElement, namespaces) {
101
+ writeNamespaceAttributes(namespaces);
102
+ if (closeElement) {
103
+ write(" />");
291
104
  }
292
105
  else {
293
- // oxlint-disable-next-line typescript/no-unnecessary-template-expression
294
- return `${localName}`;
106
+ write(">");
295
107
  }
296
108
  }
109
+ const self = {
110
+ WriteStartDocument(standalone) {
111
+ try {
112
+ if (state === "Start" || state === "Prolog") {
113
+ let bufBld = "";
114
+ bufBld += "version=" + quoteChar + "1.0" + quoteChar;
115
+ if (encoding !== null) {
116
+ bufBld += ` encoding=${quoteChar}${encoding}${quoteChar}`;
117
+ }
118
+ if (standalone) {
119
+ const standAlone = standalone ? "yes" : "no";
120
+ bufBld += ` standalone=${quoteChar}${standAlone}${quoteChar}`;
121
+ }
122
+ writeIndent(state !== "Start");
123
+ const xmlProcessingIntruction = `<?xml ${bufBld}?>`;
124
+ write(xmlProcessingIntruction);
125
+ }
126
+ else {
127
+ throwInvalidState();
128
+ }
129
+ // Set next state
130
+ state = "Prolog";
131
+ }
132
+ catch (e) {
133
+ state = "Error";
134
+ throw e;
135
+ }
136
+ },
137
+ WriteComment(text) {
138
+ try {
139
+ if (state === "Prolog" || state === "Content") {
140
+ if (text && (text.indexOf("--") >= 0 || (text.length !== 0 && text.endsWith("-")))) {
141
+ throw new Error("Xml_InvalidCommentChars");
142
+ }
143
+ text = text || "";
144
+ writeIndent();
145
+ write(`<!--${text}-->`);
146
+ }
147
+ else {
148
+ throwInvalidState();
149
+ }
150
+ // Set next state
151
+ // For XML-comments this case the next state should be the same as the previous one!
152
+ }
153
+ catch (e) {
154
+ state = "Error";
155
+ throw e;
156
+ }
157
+ },
158
+ WriteStartElement(localName, ns, prefix) {
159
+ try {
160
+ if (state === "Start" || state === "Prolog" || state === "Element" || state === "Content") {
161
+ if (state === "Element") {
162
+ // Close previous start-element
163
+ completeStartElement(false, peekContextStack().namespaces);
164
+ }
165
+ // Push new element-context to stack
166
+ const elementName = getPrefixedName(localName, prefix);
167
+ contextStack.push({
168
+ elementName,
169
+ namespaces: {},
170
+ contentStringWritten: false,
171
+ });
172
+ writeIndent(state !== "Start");
173
+ write("<" + elementName);
174
+ if (ns) {
175
+ addNamespace(ns, prefix);
176
+ }
177
+ }
178
+ else {
179
+ throwInvalidState();
180
+ }
181
+ // Set next state
182
+ state = "Element";
183
+ }
184
+ catch (e) {
185
+ state = "Error";
186
+ throw e;
187
+ }
188
+ },
189
+ WriteString(text) {
190
+ try {
191
+ if (state === "Content" || state === "Element") {
192
+ if (state === "Element") {
193
+ completeStartElement(false, peekContextStack().namespaces);
194
+ }
195
+ // Flag that content string has been written
196
+ peekContextStack().contentStringWritten = true;
197
+ write(text);
198
+ }
199
+ else {
200
+ throwInvalidState();
201
+ }
202
+ // Set next state
203
+ state = "Content";
204
+ }
205
+ catch (e) {
206
+ state = "Error";
207
+ throw e;
208
+ }
209
+ },
210
+ WriteElementString(localName, value, ns, prefix) {
211
+ self.WriteStartElement(localName, ns, prefix);
212
+ if (value && value.length > 0) {
213
+ self.WriteString(value);
214
+ }
215
+ self.WriteEndElement();
216
+ },
217
+ WriteAttributeString(localName, value, ns, prefix) {
218
+ try {
219
+ if (state === "Element") {
220
+ if (ns) {
221
+ // Seems like a prefix is always invented for attributes if not provided
222
+ // (but for elements it is OK to have blank prefix)
223
+ if (!prefix || prefix.length === 0) {
224
+ prefix = getPrefixFromAncestors(ns);
225
+ // oxlint-disable-next-line typescript/prefer-nullish-coalescing -- an ancestor-registered blank prefix ("") must still be replaced here, per the comment above
226
+ if (!prefix) {
227
+ prefix = generatePrefix(peekContextStack().namespaces);
228
+ }
229
+ }
230
+ addNamespace(ns, prefix);
231
+ }
232
+ const attributeName = getPrefixedName(localName, prefix);
233
+ write(` ${attributeName}=${quoteChar}${value}${quoteChar}`);
234
+ }
235
+ else {
236
+ throwInvalidState();
237
+ }
238
+ // Set next state
239
+ state = "Element";
240
+ }
241
+ catch (e) {
242
+ state = "Error";
243
+ throw e;
244
+ }
245
+ },
246
+ WriteEndElement() {
247
+ try {
248
+ if (state === "Content" || state === "Element") {
249
+ const context = peekContextStack();
250
+ // Only close in itself if no content
251
+ if (state === "Element") {
252
+ completeStartElement(true, context.namespaces);
253
+ }
254
+ else {
255
+ // Do not indent if there is text content written since
256
+ // the indention would be included in the actual text content
257
+ if (!context.contentStringWritten) {
258
+ writeIndent();
259
+ }
260
+ write(`</${context.elementName}>`);
261
+ }
262
+ contextStack.pop();
263
+ }
264
+ else {
265
+ throwInvalidState();
266
+ }
267
+ // Set next state
268
+ if (contextStack.length === 0) {
269
+ state = "Closed";
270
+ }
271
+ else {
272
+ state = "Content";
273
+ }
274
+ }
275
+ catch (e) {
276
+ state = "Error";
277
+ throw e;
278
+ }
279
+ },
280
+ Flush() {
281
+ self.close();
282
+ },
283
+ close() {
284
+ state = "Closed";
285
+ },
286
+ getXml() {
287
+ return xml;
288
+ },
289
+ };
290
+ return self;
297
291
  }
298
292
  //# sourceMappingURL=xml-writer.js.map