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.
- package/CHANGELOG.md +4 -0
- package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
- package/lib/abstract-document/abstract-doc.js +2 -2
- package/lib/abstract-document/atoms/atom.d.ts +3 -3
- package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
- package/lib/abstract-document/default-styles.d.ts.map +1 -1
- package/lib/abstract-document/default-styles.js.map +1 -1
- package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
- package/lib/abstract-document/markdown/markdown.js +4 -4
- package/lib/abstract-document/markdown/markdown.js.map +1 -1
- package/lib/abstract-document/numberings/numbering-definition.d.ts +2 -2
- package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
- package/lib/abstract-document/numberings/numbering-level-definition.js +2 -2
- package/lib/abstract-document/page/master-page.d.ts +1 -1
- package/lib/abstract-document/page/master-page.d.ts.map +1 -1
- package/lib/abstract-document/page/master-page.js +1 -1
- package/lib/abstract-document/page/master-page.js.map +1 -1
- package/lib/abstract-document/page/section.d.ts +1 -1
- package/lib/abstract-document/page/section.d.ts.map +1 -1
- package/lib/abstract-document/page/section.js +2 -2
- package/lib/abstract-document/page/section.js.map +1 -1
- package/lib/abstract-document/primitives/font.d.ts +1 -1
- package/lib/abstract-document/primitives/font.d.ts.map +1 -1
- package/lib/abstract-document/primitives/font.js +1 -1
- package/lib/abstract-document/primitives/font.js.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation-color.d.ts.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation.d.ts.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
- package/lib/abstract-document/resources.d.ts +4 -3
- package/lib/abstract-document/resources.d.ts.map +1 -1
- package/lib/abstract-document/resources.js +4 -4
- package/lib/abstract-document/resources.js.map +1 -1
- package/lib/abstract-document/section-elements/group.d.ts +1 -1
- package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/group.js +2 -2
- package/lib/abstract-document/section-elements/group.js.map +1 -1
- package/lib/abstract-document/section-elements/page-break.d.ts +2 -2
- package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/page-break.js +1 -2
- package/lib/abstract-document/section-elements/page-break.js.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.d.ts +2 -2
- package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.js +2 -2
- package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
- package/lib/abstract-document/section-elements/section-element.d.ts +1 -1
- package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/section-element.js.map +1 -1
- package/lib/abstract-document/section-elements/table.d.ts +1 -1
- package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/table.js +2 -2
- package/lib/abstract-document/section-elements/table.js.map +1 -1
- package/lib/abstract-document/styles/group-style.js +3 -3
- package/lib/abstract-document/styles/page-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/page-style.js +3 -7
- package/lib/abstract-document/styles/page-style.js.map +1 -1
- package/lib/abstract-document/styles/paragraph-style.d.ts +1 -1
- package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/paragraph-style.js +5 -5
- package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
- package/lib/abstract-document/styles/style.d.ts.map +1 -1
- package/lib/abstract-document/styles/style.js.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.d.ts +1 -1
- package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.js +7 -7
- package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
- package/lib/abstract-document/styles/table-style.d.ts +1 -1
- package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/table-style.js +2 -2
- package/lib/abstract-document/styles/table-style.js.map +1 -1
- package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/text-style.js +16 -21
- package/lib/abstract-document/styles/text-style.js.map +1 -1
- package/lib/abstract-document/table/table-cell.js +2 -2
- package/lib/abstract-document/table/table-row.d.ts +2 -3
- package/lib/abstract-document/table/table-row.d.ts.map +1 -1
- package/lib/abstract-document/table/table-row.js +2 -3
- package/lib/abstract-document/table/table-row.js.map +1 -1
- package/lib/abstract-document/types.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/document-container.d.ts +5 -5
- package/lib/abstract-document-exporters/docx/document-container.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/document-container.js +14 -13
- package/lib/abstract-document-exporters/docx/document-container.js.map +1 -1
- package/lib/abstract-document-exporters/docx/docx-constants.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/docx-constants.js +1 -4
- package/lib/abstract-document-exporters/docx/docx-constants.js.map +1 -1
- package/lib/abstract-document-exporters/docx/ref-container.d.ts +8 -10
- package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/ref-container.js +34 -35
- package/lib/abstract-document-exporters/docx/ref-container.js.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.d.ts +2 -1
- package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.js +6 -4
- package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.d.ts +12 -33
- package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.js +243 -249
- package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.d.ts +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.js +4 -16
- package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
- package/lib/abstract-document-exporters/docx2/render.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx2/render.js +28 -38
- package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.js +13 -14
- package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/header-footer.d.ts +8 -0
- package/lib/abstract-document-exporters/pdf/header-footer.d.ts.map +1 -0
- package/lib/abstract-document-exporters/pdf/header-footer.js +31 -0
- package/lib/abstract-document-exporters/pdf/header-footer.js.map +1 -0
- package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -4
- package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/measure.js +29 -31
- package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/page.d.ts +15 -0
- package/lib/abstract-document-exporters/pdf/page.d.ts.map +1 -0
- package/lib/abstract-document-exporters/pdf/page.js +2 -0
- package/lib/abstract-document-exporters/pdf/page.js.map +1 -0
- package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -20
- package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/paginate.js +8 -45
- package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/pre-process.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/pre-process.js +8 -35
- package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/render-image.js +24 -34
- package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.d.ts +4 -3
- package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.js +60 -50
- package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/std-fonts.js +1 -1
- package/lib/abstract-document-exporters/pdf/std-fonts.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/textRunRow.d.ts +3 -3
- package/lib/abstract-document-exporters/pdf/textRunRow.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/textRunRow.js +6 -6
- package/lib/abstract-document-exporters/pdf/textRunRow.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.d.ts +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.js +3 -2
- package/lib/abstract-document-exporters/pdf/update-refs.js.map +1 -1
- package/lib/abstract-document-exporters/shared/get_resources.d.ts.map +1 -1
- package/lib/abstract-document-exporters/shared/get_resources.js.map +1 -1
- package/lib/abstract-document-jsx/index.d.ts +2 -3
- package/lib/abstract-document-jsx/index.d.ts.map +1 -1
- package/lib/abstract-document-jsx/index.js +10 -6
- package/lib/abstract-document-jsx/index.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +3 -7
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +5 -3
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js +1 -3
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js +4 -8
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
- package/lib/abstract-document-xml/xsd-template/xsd-template.js +2 -2
- package/lib/abstract-document-xml/xsd-template/xsd-template.js.map +1 -1
- package/package.json +21 -21
- package/src/abstract-document/abstract-doc.ts +6 -6
- package/src/abstract-document/atoms/atom.ts +3 -3
- package/src/abstract-document/default-styles.ts +1 -1
- package/src/abstract-document/markdown/markdown.ts +5 -5
- package/src/abstract-document/numberings/numbering-definition.ts +2 -2
- package/src/abstract-document/numberings/numbering-level-definition.ts +2 -2
- package/src/abstract-document/page/master-page.ts +2 -2
- package/src/abstract-document/page/section.ts +3 -3
- package/src/abstract-document/primitives/font.ts +1 -12
- package/src/abstract-document/primitives/layout-foundation-color.ts +1 -4
- package/src/abstract-document/primitives/layout-foundation.ts +1 -4
- package/src/abstract-document/resources.ts +9 -14
- package/src/abstract-document/section-elements/group.ts +3 -3
- package/src/abstract-document/section-elements/page-break.ts +2 -3
- package/src/abstract-document/section-elements/paragraph.ts +4 -4
- package/src/abstract-document/section-elements/section-element.ts +1 -1
- package/src/abstract-document/section-elements/table.ts +3 -3
- package/src/abstract-document/styles/group-style.ts +3 -3
- package/src/abstract-document/styles/page-style.ts +3 -7
- package/src/abstract-document/styles/paragraph-style.ts +6 -14
- package/src/abstract-document/styles/style.ts +1 -5
- package/src/abstract-document/styles/table-cell-style.ts +8 -11
- package/src/abstract-document/styles/table-style.ts +3 -8
- package/src/abstract-document/styles/text-style.ts +16 -21
- package/src/abstract-document/table/table-cell.ts +2 -2
- package/src/abstract-document/table/table-row.ts +3 -4
- package/src/abstract-document/types.ts +0 -1
- package/src/abstract-document-exporters/docx/document-container.ts +24 -13
- package/src/abstract-document-exporters/docx/docx-constants.ts +2 -6
- package/src/abstract-document-exporters/docx/ref-container.ts +48 -41
- package/src/abstract-document-exporters/docx/string-utils.ts +6 -6
- package/src/abstract-document-exporters/docx/xml-writer.ts +261 -266
- package/src/abstract-document-exporters/docx2/render-image.ts +15 -49
- package/src/abstract-document-exporters/docx2/render.ts +64 -139
- package/src/abstract-document-exporters/pdf/font.ts +17 -23
- package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
- package/src/abstract-document-exporters/pdf/measure.ts +50 -103
- package/src/abstract-document-exporters/pdf/page.ts +16 -0
- package/src/abstract-document-exporters/pdf/paginate.ts +29 -125
- package/src/abstract-document-exporters/pdf/pre-process.ts +11 -47
- package/src/abstract-document-exporters/pdf/render-image.ts +29 -46
- package/src/abstract-document-exporters/pdf/render.ts +84 -129
- package/src/abstract-document-exporters/pdf/std-fonts.ts +1 -1
- package/src/abstract-document-exporters/pdf/textRunRow.ts +12 -23
- package/src/abstract-document-exporters/pdf/update-refs.ts +10 -33
- package/src/abstract-document-exporters/shared/get_resources.ts +4 -4
- package/src/abstract-document-jsx/index.ts +38 -26
- package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +14 -26
- package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +10 -28
- package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
- 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
|
-
* @
|
|
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
|
-
|
|
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)
|
|
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
|
|
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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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":"
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
100
|
-
|
|
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
|
-
|
|
121
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
234
|
-
this.peekContextStack().namespaces[prefix] = ns;
|
|
49
|
+
peekContextStack().namespaces[prefix ?? ""] = ns;
|
|
235
50
|
}
|
|
236
|
-
writeIndent(newLine = true) {
|
|
237
|
-
if (
|
|
51
|
+
function writeIndent(newLine = true) {
|
|
52
|
+
if (indentSize > 0) {
|
|
238
53
|
if (newLine) {
|
|
239
|
-
|
|
54
|
+
write("\n");
|
|
240
55
|
}
|
|
241
|
-
if (!(
|
|
242
|
-
for (let i = 0; i <
|
|
243
|
-
|
|
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
|
-
|
|
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 <
|
|
267
|
-
const context =
|
|
268
|
-
if (context.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
|
-
|
|
84
|
+
write(` xmlns:${prefix}="${ns}"`);
|
|
282
85
|
}
|
|
283
86
|
else {
|
|
284
|
-
|
|
87
|
+
write(` xmlns="${ns}"`);
|
|
285
88
|
}
|
|
286
89
|
}
|
|
287
90
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
-
|
|
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
|