abstract-document 20.0.1 → 20.0.4
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/README.md +3 -3
- package/lib/abstract-document/abstract-doc.d.ts +2 -2
- package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
- package/lib/abstract-document/atoms/atom.d.ts +7 -7
- package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
- package/lib/abstract-document/atoms/image.d.ts +1 -1
- package/lib/abstract-document/atoms/image.d.ts.map +1 -1
- package/lib/abstract-document/atoms/line-break.d.ts +1 -1
- package/lib/abstract-document/atoms/line-break.d.ts.map +1 -1
- package/lib/abstract-document/atoms/line-break.js +1 -1
- package/lib/abstract-document/atoms/line-break.js.map +1 -1
- package/lib/abstract-document/atoms/link-target.js +1 -1
- package/lib/abstract-document/atoms/text-run.d.ts.map +1 -1
- package/lib/abstract-document/atoms/text-run.js +1 -0
- package/lib/abstract-document/atoms/text-run.js.map +1 -1
- package/lib/abstract-document/default-styles.d.ts +2 -2
- package/lib/abstract-document/default-styles.d.ts.map +1 -1
- package/lib/abstract-document/markdown/markdown.d.ts +1 -1
- package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
- package/lib/abstract-document/markdown/markdown.js +6 -3
- package/lib/abstract-document/markdown/markdown.js.map +1 -1
- package/lib/abstract-document/markdown/types.d.ts +1 -1
- package/lib/abstract-document/markdown/types.d.ts.map +1 -1
- package/lib/abstract-document/numberings/numbering-definition.d.ts +1 -1
- package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
- package/lib/abstract-document/numberings/numbering-format.d.ts.map +1 -1
- package/lib/abstract-document/numberings/numbering-level-definition.d.ts +1 -1
- package/lib/abstract-document/numberings/numbering-level-definition.d.ts.map +1 -1
- 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/section.d.ts +2 -2
- package/lib/abstract-document/page/section.d.ts.map +1 -1
- package/lib/abstract-document/primitives/image-resource.d.ts +1 -1
- package/lib/abstract-document/primitives/image-resource.d.ts.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation-color.js +4 -4
- package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation.js +1 -1
- package/lib/abstract-document/primitives/point.js +1 -1
- package/lib/abstract-document/resources.d.ts +5 -5
- package/lib/abstract-document/resources.d.ts.map +1 -1
- package/lib/abstract-document/resources.js.map +1 -1
- package/lib/abstract-document/section-elements/group.d.ts +2 -2
- package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/page-break.d.ts +1 -1
- package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.d.ts +3 -3
- package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.js +1 -1
- 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/table.d.ts +2 -2
- package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
- package/lib/abstract-document/styles/group-style.d.ts +1 -1
- package/lib/abstract-document/styles/group-style.d.ts.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 +1 -1
- package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.js +1 -1
- 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 +1 -1
- package/lib/abstract-document/styles/table-style.js.map +1 -1
- package/lib/abstract-document/styles/text-style.js +1 -1
- package/lib/abstract-document/styles/text-style.js.map +1 -1
- package/lib/abstract-document/table/table-cell.d.ts +1 -1
- package/lib/abstract-document/table/table-cell.d.ts.map +1 -1
- package/lib/abstract-document/table/table-row.d.ts +1 -1
- package/lib/abstract-document/table/table-row.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.js +1 -3
- package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.js +1 -0
- package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.d.ts +4 -4
- package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.js +8 -14
- 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 +37 -29
- package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.d.ts +2 -2
- package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.js +2 -1
- package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/measure.d.ts +1 -1
- package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/measure.js +3 -2
- package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/paginate.js +3 -2
- 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 +3 -2
- package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render-image.js +1 -3
- package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.js +1 -0
- 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/textRunRow.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/textRunRow.js +21 -15
- 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/shared/get_resources.d.ts +2 -2
- 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.map +1 -1
- 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 -3
- 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 +33 -33
- 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 +81 -75
- 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 +3 -2
- 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 +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
- package/lib/abstract-document-xml/xsd-template/custom-elements.d.ts.map +1 -1
- package/lib/abstract-document-xml/xsd-template/custom-elements.js +0 -1
- package/lib/abstract-document-xml/xsd-template/custom-elements.js.map +1 -1
- package/package.json +4 -4
- package/src/abstract-document/abstract-doc.ts +7 -7
- package/src/abstract-document/atoms/atom.ts +7 -7
- package/src/abstract-document/atoms/image.ts +1 -1
- package/src/abstract-document/atoms/line-break.ts +1 -1
- package/src/abstract-document/atoms/link-target.ts +1 -1
- package/src/abstract-document/atoms/text-run.ts +1 -0
- package/src/abstract-document/default-styles.ts +2 -2
- package/src/abstract-document/markdown/markdown.ts +11 -8
- package/src/abstract-document/markdown/types.ts +1 -1
- package/src/abstract-document/numberings/numbering-definition.ts +1 -1
- package/src/abstract-document/numberings/numbering-format.ts +1 -7
- package/src/abstract-document/numberings/numbering-level-definition.ts +1 -1
- package/src/abstract-document/page/master-page.ts +1 -1
- package/src/abstract-document/page/section.ts +2 -2
- package/src/abstract-document/primitives/image-resource.ts +1 -1
- package/src/abstract-document/primitives/layout-foundation-color.ts +4 -4
- package/src/abstract-document/primitives/layout-foundation.ts +1 -1
- package/src/abstract-document/primitives/point.ts +1 -1
- package/src/abstract-document/resources.ts +9 -8
- package/src/abstract-document/section-elements/group.ts +2 -2
- package/src/abstract-document/section-elements/page-break.ts +1 -1
- 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 +2 -2
- package/src/abstract-document/styles/group-style.ts +1 -1
- package/src/abstract-document/styles/paragraph-style.ts +2 -2
- package/src/abstract-document/styles/table-cell-style.ts +1 -8
- package/src/abstract-document/styles/table-style.ts +2 -2
- package/src/abstract-document/styles/text-style.ts +20 -20
- package/src/abstract-document/table/table-cell.ts +1 -1
- package/src/abstract-document/table/table-row.ts +1 -1
- package/src/abstract-document-exporters/docx/string-utils.ts +1 -5
- package/src/abstract-document-exporters/docx/xml-writer.ts +1 -0
- package/src/abstract-document-exporters/docx2/render-image.ts +69 -57
- package/src/abstract-document-exporters/docx2/render.ts +104 -77
- package/src/abstract-document-exporters/pdf/font.ts +16 -15
- package/src/abstract-document-exporters/pdf/measure.ts +6 -3
- package/src/abstract-document-exporters/pdf/paginate.ts +11 -6
- package/src/abstract-document-exporters/pdf/pre-process.ts +3 -3
- package/src/abstract-document-exporters/pdf/render-image.ts +10 -12
- package/src/abstract-document-exporters/pdf/render.ts +5 -2
- package/src/abstract-document-exporters/pdf/std-fonts.ts +1 -1
- package/src/abstract-document-exporters/pdf/textRunRow.ts +108 -74
- package/src/abstract-document-exporters/pdf/update-refs.ts +2 -2
- package/src/abstract-document-exporters/shared/get_resources.ts +10 -9
- package/src/abstract-document-jsx/index.ts +1 -1
- package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +47 -46
- package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +118 -114
- package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +4 -13
- package/src/abstract-document-xml/xsd-template/custom-elements.ts +0 -1
- package/src/abstract-document-xml/xsd-template/styles.ts +1 -1
- package/src/custom_typings/pdfkit-standard-fonts/index.d.ts +0 -1
- package/lib/abstract-document/table/text-row.d.ts +0 -2
- package/lib/abstract-document/table/text-row.d.ts.map +0 -1
- package/lib/abstract-document/table/text-row.js +0 -2
- package/lib/abstract-document/table/text-row.js.map +0 -1
- package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts +0 -2
- package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts.map +0 -1
- package/lib/abstract-document-exporters/docx/docx-document-renderer.js +0 -1085
- package/lib/abstract-document-exporters/docx/docx-document-renderer.js.map +0 -1
- package/src/abstract-document/table/text-row.ts +0 -0
- package/src/abstract-document-exporters/docx/docx-document-renderer.ts +0 -1084
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAbstractImage, createBinaryImage, createPoint, createSize, white } from "abstract-image";
|
|
2
|
+
import type { Atom, SectionElement } from "../../abstract-document/index.js";
|
|
2
3
|
import {
|
|
3
4
|
AbstractDoc,
|
|
4
|
-
Atom,
|
|
5
5
|
DefaultStyles,
|
|
6
6
|
Group,
|
|
7
7
|
Image,
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
PageBreak,
|
|
10
10
|
Paragraph,
|
|
11
11
|
Section,
|
|
12
|
-
SectionElement,
|
|
13
12
|
Table,
|
|
14
13
|
TableCell,
|
|
15
14
|
TableRow,
|
|
@@ -18,20 +17,15 @@ import {
|
|
|
18
17
|
TocSeparator,
|
|
19
18
|
ImageResource,
|
|
20
19
|
} from "../../abstract-document/index.js";
|
|
21
|
-
import {
|
|
20
|
+
import type {
|
|
22
21
|
TextRowProps,
|
|
23
|
-
TextRow,
|
|
24
22
|
TextCellProps,
|
|
25
|
-
TextCell,
|
|
26
23
|
TextParagraphProps,
|
|
27
|
-
TextParagraph,
|
|
28
24
|
ImageCellProps,
|
|
29
|
-
ImageCell,
|
|
30
25
|
ImageParagraphProps,
|
|
31
26
|
ImageRowProps,
|
|
32
|
-
ImageParagraph,
|
|
33
|
-
ImageRow,
|
|
34
27
|
} from "./custom-elements.js";
|
|
28
|
+
import { TextRow, TextCell, TextParagraph, ImageCell, ImageParagraph, ImageRow } from "./custom-elements.js";
|
|
35
29
|
|
|
36
30
|
export type ADCreatorFn = (props?: Record<string, unknown>, children?: ReadonlyArray<unknown>) => unknown;
|
|
37
31
|
|
|
@@ -77,6 +71,7 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
77
71
|
},
|
|
78
72
|
columnWidths: (props: { readonly columnWidths: string; readonly columnMultiplier: string }): unknown => {
|
|
79
73
|
const columnWidths = (props.columnWidths ?? "")
|
|
74
|
+
// oxlint-disable-next-line typescript/no-unnecessary-type-conversion -- allProps can carry non-strings
|
|
80
75
|
.toString()
|
|
81
76
|
.split(",")
|
|
82
77
|
.map((item: string) => {
|
|
@@ -93,42 +88,45 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
93
88
|
return props.paperSize;
|
|
94
89
|
}
|
|
95
90
|
const parts = props.paperSize.split("x");
|
|
96
|
-
|
|
91
|
+
const width = Number(parts[0] ?? 595);
|
|
92
|
+
const height = Number(parts[1] ?? 842);
|
|
93
|
+
return { width: Number.isNaN(width) ? 595 : width, height: Number.isNaN(height) ? 842 : height };
|
|
97
94
|
},
|
|
98
95
|
borders: (props: { readonly borders: string }): unknown => {
|
|
99
96
|
const borders: { [k: string]: number } = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
97
|
+
// oxlint-disable-next-line typescript/no-unnecessary-type-conversion -- allProps can carry non-strings
|
|
100
98
|
const propBorders = props.borders.toString().split(" ");
|
|
101
99
|
if (!propBorders) {
|
|
102
100
|
return borders;
|
|
103
101
|
}
|
|
104
102
|
|
|
105
103
|
if (propBorders.length === 1) {
|
|
106
|
-
borders
|
|
107
|
-
borders
|
|
108
|
-
borders
|
|
109
|
-
borders
|
|
104
|
+
borders["top"] = Number(propBorders[0]);
|
|
105
|
+
borders["right"] = Number(propBorders[0]);
|
|
106
|
+
borders["bottom"] = Number(propBorders[0]);
|
|
107
|
+
borders["left"] = Number(propBorders[0]);
|
|
110
108
|
return borders;
|
|
111
109
|
}
|
|
112
110
|
|
|
113
111
|
propBorders.forEach((item: string, index) => {
|
|
114
112
|
switch (index) {
|
|
115
113
|
case 1:
|
|
116
|
-
borders
|
|
117
|
-
borders
|
|
118
|
-
borders
|
|
119
|
-
borders
|
|
114
|
+
borders["top"] = Number(propBorders[0]);
|
|
115
|
+
borders["right"] = Number(item);
|
|
116
|
+
borders["bottom"] = Number(propBorders[0]);
|
|
117
|
+
borders["left"] = Number(item);
|
|
120
118
|
break;
|
|
121
119
|
case 2:
|
|
122
|
-
borders
|
|
123
|
-
borders
|
|
124
|
-
borders
|
|
125
|
-
borders
|
|
120
|
+
borders["top"] = Number(propBorders[0]);
|
|
121
|
+
borders["right"] = Number(propBorders[1]);
|
|
122
|
+
borders["bottom"] = Number(item);
|
|
123
|
+
borders["left"] = Number(propBorders[1]);
|
|
126
124
|
break;
|
|
127
125
|
case 3:
|
|
128
|
-
borders
|
|
129
|
-
borders
|
|
130
|
-
borders
|
|
131
|
-
borders
|
|
126
|
+
borders["top"] = Number(propBorders[0]);
|
|
127
|
+
borders["right"] = Number(propBorders[1]);
|
|
128
|
+
borders["bottom"] = Number(propBorders[2]);
|
|
129
|
+
borders["left"] = Number(item);
|
|
132
130
|
break;
|
|
133
131
|
default:
|
|
134
132
|
break;
|
|
@@ -138,63 +136,64 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
138
136
|
},
|
|
139
137
|
borderTop: (props: { readonly borderTop: string }): unknown => {
|
|
140
138
|
const allProps = props as Record<string, unknown>;
|
|
141
|
-
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
139
|
+
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps["borders"] ?? {};
|
|
142
140
|
borders.top = Number(props.borderTop);
|
|
143
141
|
return borders;
|
|
144
142
|
},
|
|
145
143
|
borderBottom: (props: { readonly borderBottom: string }): unknown => {
|
|
146
144
|
const allProps = props as Record<string, unknown>;
|
|
147
|
-
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
145
|
+
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps["borders"] ?? {};
|
|
148
146
|
borders.bottom = Number(props.borderBottom);
|
|
149
147
|
return borders;
|
|
150
148
|
},
|
|
151
149
|
borderLeft: (props: { readonly borderLeft: string }): unknown => {
|
|
152
150
|
const allProps = props as Record<string, unknown>;
|
|
153
|
-
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
151
|
+
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps["borders"] ?? {};
|
|
154
152
|
borders.left = Number(props.borderLeft);
|
|
155
153
|
return borders;
|
|
156
154
|
},
|
|
157
155
|
borderRight: (props: { readonly borderRight: string }): unknown => {
|
|
158
156
|
const allProps = props as Record<string, unknown>;
|
|
159
|
-
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
157
|
+
const borders: { top?: number; bottom?: number; left?: number; right?: number } = allProps["borders"] ?? {};
|
|
160
158
|
borders.right = Number(props.borderRight);
|
|
161
159
|
return borders;
|
|
162
160
|
},
|
|
163
161
|
padding: (props: { readonly padding: string }): unknown => {
|
|
164
162
|
const padding: { [k: string]: number } = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
165
163
|
|
|
164
|
+
// oxlint-disable-next-line typescript/no-unnecessary-type-conversion -- allProps can carry non-strings
|
|
166
165
|
const paddings = props.padding.toString().split(" ");
|
|
167
166
|
if (!paddings) {
|
|
168
167
|
return padding;
|
|
169
168
|
}
|
|
170
169
|
|
|
171
170
|
if (paddings.length === 1) {
|
|
172
|
-
padding
|
|
173
|
-
padding
|
|
174
|
-
padding
|
|
175
|
-
padding
|
|
171
|
+
padding["top"] = Number(paddings[0]);
|
|
172
|
+
padding["right"] = Number(paddings[0]);
|
|
173
|
+
padding["bottom"] = Number(paddings[0]);
|
|
174
|
+
padding["left"] = Number(paddings[0]);
|
|
176
175
|
return padding;
|
|
177
176
|
}
|
|
178
177
|
|
|
179
178
|
paddings.forEach((item: string, index) => {
|
|
180
179
|
switch (index) {
|
|
181
180
|
case 1:
|
|
182
|
-
padding
|
|
183
|
-
padding
|
|
184
|
-
padding
|
|
185
|
-
padding
|
|
181
|
+
padding["top"] = Number(paddings[0]);
|
|
182
|
+
padding["right"] = Number(item);
|
|
183
|
+
padding["bottom"] = Number(paddings[0]);
|
|
184
|
+
padding["left"] = Number(item);
|
|
186
185
|
break;
|
|
187
186
|
case 2:
|
|
188
|
-
padding
|
|
189
|
-
padding
|
|
190
|
-
padding
|
|
191
|
-
padding
|
|
187
|
+
padding["top"] = Number(paddings[0]);
|
|
188
|
+
padding["right"] = Number(paddings[1]);
|
|
189
|
+
padding["bottom"] = Number(item);
|
|
190
|
+
padding["left"] = Number(paddings[1]);
|
|
192
191
|
break;
|
|
193
192
|
case 3:
|
|
194
|
-
padding
|
|
195
|
-
padding
|
|
196
|
-
padding
|
|
197
|
-
padding
|
|
193
|
+
padding["top"] = Number(paddings[0]);
|
|
194
|
+
padding["right"] = Number(paddings[1]);
|
|
195
|
+
padding["bottom"] = Number(paddings[2]);
|
|
196
|
+
padding["left"] = Number(item);
|
|
198
197
|
break;
|
|
199
198
|
default:
|
|
200
199
|
break;
|
|
@@ -204,61 +203,62 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
204
203
|
},
|
|
205
204
|
paddingTop: (props: { readonly paddingTop: string }): unknown => {
|
|
206
205
|
const allProps = props as Record<string, unknown>;
|
|
207
|
-
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
206
|
+
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps["padding"] ?? {};
|
|
208
207
|
padding.top = Number(props.paddingTop);
|
|
209
208
|
return padding;
|
|
210
209
|
},
|
|
211
210
|
paddingBottom: (props: { readonly paddingBottom: string }): unknown => {
|
|
212
211
|
const allProps = props as Record<string, unknown>;
|
|
213
|
-
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
212
|
+
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps["padding"] ?? {};
|
|
214
213
|
padding.bottom = Number(props.paddingBottom);
|
|
215
214
|
return padding;
|
|
216
215
|
},
|
|
217
216
|
paddingLeft: (props: { readonly paddingLeft: string }): unknown => {
|
|
218
217
|
const allProps = props as Record<string, unknown>;
|
|
219
|
-
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
218
|
+
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps["padding"] ?? {};
|
|
220
219
|
padding.left = Number(props.paddingLeft);
|
|
221
220
|
return padding;
|
|
222
221
|
},
|
|
223
222
|
paddingRight: (props: { readonly paddingRight: string }): unknown => {
|
|
224
223
|
const allProps = props as Record<string, unknown>;
|
|
225
|
-
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
224
|
+
const padding: { top?: number; bottom?: number; left?: number; right?: number } = allProps["padding"] ?? {};
|
|
226
225
|
padding.right = Number(props.paddingRight);
|
|
227
226
|
return padding;
|
|
228
227
|
},
|
|
229
228
|
margins: (props: { readonly margins: string }): unknown => {
|
|
230
229
|
const margins: { [k: string]: number } = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
230
|
+
// oxlint-disable-next-line typescript/no-unnecessary-type-conversion -- allProps can carry non-strings
|
|
231
231
|
const propMargins = props.margins.toString().split(" ");
|
|
232
232
|
if (!propMargins) {
|
|
233
233
|
return margins;
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
if (propMargins.length === 1) {
|
|
237
|
-
margins
|
|
238
|
-
margins
|
|
239
|
-
margins
|
|
240
|
-
margins
|
|
237
|
+
margins["top"] = Number(propMargins[0]);
|
|
238
|
+
margins["right"] = Number(propMargins[0]);
|
|
239
|
+
margins["bottom"] = Number(propMargins[0]);
|
|
240
|
+
margins["left"] = Number(propMargins[0]);
|
|
241
241
|
return margins;
|
|
242
242
|
}
|
|
243
243
|
propMargins.forEach((item: string, index) => {
|
|
244
244
|
switch (index) {
|
|
245
245
|
case 1:
|
|
246
|
-
margins
|
|
247
|
-
margins
|
|
248
|
-
margins
|
|
249
|
-
margins
|
|
246
|
+
margins["top"] = Number(propMargins[0]);
|
|
247
|
+
margins["right"] = Number(item);
|
|
248
|
+
margins["bottom"] = Number(propMargins[0]);
|
|
249
|
+
margins["left"] = Number(item);
|
|
250
250
|
break;
|
|
251
251
|
case 2:
|
|
252
|
-
margins
|
|
253
|
-
margins
|
|
254
|
-
margins
|
|
255
|
-
margins
|
|
252
|
+
margins["top"] = Number(propMargins[0]);
|
|
253
|
+
margins["right"] = Number(propMargins[1]);
|
|
254
|
+
margins["bottom"] = Number(item);
|
|
255
|
+
margins["left"] = Number(propMargins[1]);
|
|
256
256
|
break;
|
|
257
257
|
case 3:
|
|
258
|
-
margins
|
|
259
|
-
margins
|
|
260
|
-
margins
|
|
261
|
-
margins
|
|
258
|
+
margins["top"] = Number(propMargins[0]);
|
|
259
|
+
margins["right"] = Number(propMargins[1]);
|
|
260
|
+
margins["bottom"] = Number(propMargins[2]);
|
|
261
|
+
margins["left"] = Number(item);
|
|
262
262
|
break;
|
|
263
263
|
default:
|
|
264
264
|
break;
|
|
@@ -268,25 +268,25 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
268
268
|
},
|
|
269
269
|
marginTop: (props: { readonly marginTop: string }): unknown => {
|
|
270
270
|
const allProps = props as Record<string, unknown>;
|
|
271
|
-
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
271
|
+
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps["margins"] ?? {};
|
|
272
272
|
margins.top = Number(props.marginTop);
|
|
273
273
|
return margins;
|
|
274
274
|
},
|
|
275
275
|
marginBottom: (props: { readonly marginBottom: string }): unknown => {
|
|
276
276
|
const allProps = props as Record<string, unknown>;
|
|
277
|
-
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
277
|
+
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps["margins"] ?? {};
|
|
278
278
|
margins.bottom = Number(props.marginBottom);
|
|
279
279
|
return margins;
|
|
280
280
|
},
|
|
281
281
|
marginLeft: (props: { readonly marginLeft: string }): unknown => {
|
|
282
282
|
const allProps = props as Record<string, unknown>;
|
|
283
|
-
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
283
|
+
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps["margins"] ?? {};
|
|
284
284
|
margins.left = Number(props.marginLeft);
|
|
285
285
|
return margins;
|
|
286
286
|
},
|
|
287
287
|
marginRight: (props: { readonly marginRight: string }): unknown => {
|
|
288
288
|
const allProps = props as Record<string, unknown>;
|
|
289
|
-
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps
|
|
289
|
+
const margins: { top?: number; bottom?: number; left?: number; right?: number } = allProps["margins"] ?? {};
|
|
290
290
|
margins.right = Number(props.marginRight);
|
|
291
291
|
return margins;
|
|
292
292
|
},
|
|
@@ -295,16 +295,16 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
295
295
|
props.borderColors.split(" ").forEach((item: string, index) => {
|
|
296
296
|
switch (index) {
|
|
297
297
|
case 0:
|
|
298
|
-
borderColors
|
|
298
|
+
borderColors["top"] = item;
|
|
299
299
|
break;
|
|
300
300
|
case 1:
|
|
301
|
-
borderColors
|
|
301
|
+
borderColors["right"] = item;
|
|
302
302
|
break;
|
|
303
303
|
case 2:
|
|
304
|
-
borderColors
|
|
304
|
+
borderColors["bottom"] = item;
|
|
305
305
|
break;
|
|
306
306
|
case 3:
|
|
307
|
-
borderColors
|
|
307
|
+
borderColors["left"] = item;
|
|
308
308
|
break;
|
|
309
309
|
default:
|
|
310
310
|
break;
|
|
@@ -314,59 +314,63 @@ export const propsCreators: Record<string, ADCreatorFn> = {
|
|
|
314
314
|
},
|
|
315
315
|
borderColorTop: (props: { readonly borderColorTop: string }): unknown => {
|
|
316
316
|
const allProps = props as Record<string, unknown>;
|
|
317
|
-
const margins: { top?: string; bottom?: string; left?: string; right?: string } = allProps
|
|
317
|
+
const margins: { top?: string; bottom?: string; left?: string; right?: string } = allProps["borderColors"] ?? {};
|
|
318
318
|
margins.top = props.borderColorTop;
|
|
319
319
|
return margins;
|
|
320
320
|
},
|
|
321
321
|
borderColorBottom: (props: { readonly borderColorBottom: string }): unknown => {
|
|
322
322
|
const allProps = props as Record<string, unknown>;
|
|
323
|
-
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
323
|
+
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
324
|
+
allProps["borderColors"] ?? {};
|
|
324
325
|
boderColors.bottom = props.borderColorBottom;
|
|
325
326
|
return boderColors;
|
|
326
327
|
},
|
|
327
328
|
borderColorLeft: (props: { readonly borderColorLeft: string }): unknown => {
|
|
328
329
|
const allProps = props as Record<string, unknown>;
|
|
329
|
-
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
330
|
+
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
331
|
+
allProps["borderColors"] ?? {};
|
|
330
332
|
boderColors.left = props.borderColorLeft;
|
|
331
333
|
return boderColors;
|
|
332
334
|
},
|
|
333
335
|
borderColorRight: (props: { readonly borderColorRight: string }): unknown => {
|
|
334
336
|
const allProps = props as Record<string, unknown>;
|
|
335
|
-
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
337
|
+
const boderColors: { top?: string; bottom?: string; left?: string; right?: string } =
|
|
338
|
+
allProps["borderColors"] ?? {};
|
|
336
339
|
boderColors.right = props.borderColorRight;
|
|
337
340
|
return boderColors;
|
|
338
341
|
},
|
|
339
342
|
|
|
340
343
|
//decimal/integer values
|
|
341
|
-
width: (props: { readonly width: string
|
|
342
|
-
height: (props: { readonly height: string
|
|
343
|
-
rowSpan: (props: { readonly rowSpan: string
|
|
344
|
-
columnSpan: (props: { readonly columnSpan: string
|
|
345
|
-
fontScale: (props: { readonly fontScale: string
|
|
346
|
-
fontSize: (props: { readonly fontSize: string
|
|
347
|
-
lineGap: (props: { readonly lineGap: string
|
|
348
|
-
characterSpacing: (props: { readonly characterSpacing: string
|
|
349
|
-
verticalPosition: (props: { readonly verticalPosition: string
|
|
350
|
-
indent: (props: { readonly indent: string
|
|
351
|
-
top: (props: { readonly top: string
|
|
352
|
-
bottom: (props: { readonly bottom: string
|
|
353
|
-
left: (props: { readonly left: string
|
|
354
|
-
right: (props: { readonly right: string
|
|
355
|
-
columnCount: (props: { readonly columnCount: string
|
|
356
|
-
columnGap: (props: { readonly columnGap: string
|
|
344
|
+
width: (props: { readonly width: string }) => strToNum(props.width),
|
|
345
|
+
height: (props: { readonly height: string }) => strToNum(props.height),
|
|
346
|
+
rowSpan: (props: { readonly rowSpan: string }) => strToNum(props.rowSpan),
|
|
347
|
+
columnSpan: (props: { readonly columnSpan: string }) => strToNum(props.columnSpan),
|
|
348
|
+
fontScale: (props: { readonly fontScale: string }) => strToNum(props.fontScale),
|
|
349
|
+
fontSize: (props: { readonly fontSize: string }) => strToNum(props.fontSize),
|
|
350
|
+
lineGap: (props: { readonly lineGap: string }) => strToNum(props.lineGap),
|
|
351
|
+
characterSpacing: (props: { readonly characterSpacing: string }) => strToNum(props.characterSpacing),
|
|
352
|
+
verticalPosition: (props: { readonly verticalPosition: string }) => strToNum(props.verticalPosition),
|
|
353
|
+
indent: (props: { readonly indent: string }) => strToNum(props.indent),
|
|
354
|
+
top: (props: { readonly top: string }) => strToNum(props.top),
|
|
355
|
+
bottom: (props: { readonly bottom: string }) => strToNum(props.bottom),
|
|
356
|
+
left: (props: { readonly left: string }) => strToNum(props.left),
|
|
357
|
+
right: (props: { readonly right: string }) => strToNum(props.right),
|
|
358
|
+
columnCount: (props: { readonly columnCount: string }) => strToNum(props.columnCount),
|
|
359
|
+
columnGap: (props: { readonly columnGap: string }) => strToNum(props.columnGap),
|
|
357
360
|
|
|
358
361
|
//boolean values
|
|
359
|
-
bold: (props: { readonly bold: string
|
|
360
|
-
italic: (props: { readonly italic: string
|
|
361
|
-
underline: (props: { readonly underline: string
|
|
362
|
-
superScript: (props: { readonly superScript: string
|
|
363
|
-
subScript: (props: { readonly subScript: string
|
|
364
|
-
lineBreak: (props: { readonly lineBreak: string
|
|
365
|
-
mediumBold: (props: { readonly mediumBold: string
|
|
366
|
-
noTopBottomMargin: (props: { readonly noTopBottomMargin: string
|
|
367
|
-
keepTogetherSections: (props: { readonly keepTogetherSections: string
|
|
368
|
-
|
|
369
|
-
|
|
362
|
+
bold: (props: { readonly bold: string }): unknown => strToBool(props.bold),
|
|
363
|
+
italic: (props: { readonly italic: string }): unknown => strToBool(props.italic),
|
|
364
|
+
underline: (props: { readonly underline: string }): unknown => strToBool(props.underline),
|
|
365
|
+
superScript: (props: { readonly superScript: string }): unknown => strToBool(props.superScript),
|
|
366
|
+
subScript: (props: { readonly subScript: string }): unknown => strToBool(props.subScript),
|
|
367
|
+
lineBreak: (props: { readonly lineBreak: string }): unknown => strToBool(props.lineBreak),
|
|
368
|
+
mediumBold: (props: { readonly mediumBold: string }): unknown => strToBool(props.mediumBold),
|
|
369
|
+
noTopBottomMargin: (props: { readonly noTopBottomMargin: string }): unknown => strToBool(props.noTopBottomMargin),
|
|
370
|
+
keepTogetherSections: (props: { readonly keepTogetherSections: string }): unknown =>
|
|
371
|
+
strToBool(props.keepTogetherSections),
|
|
372
|
+
keepTogether: (props: { readonly keepTogether: string }): unknown => strToBool(props.keepTogether),
|
|
373
|
+
differentFirstPage: (props: { readonly differentFirstPage: string }): unknown => strToBool(props.differentFirstPage),
|
|
370
374
|
};
|
|
371
375
|
|
|
372
376
|
const zero = createPoint(0, 0);
|
|
@@ -374,12 +378,12 @@ const size = createSize(0, 0);
|
|
|
374
378
|
function imageProps(props: Record<string, unknown>): Record<string, unknown> {
|
|
375
379
|
return {
|
|
376
380
|
...props,
|
|
377
|
-
width: Number(props
|
|
378
|
-
height: Number(props
|
|
381
|
+
width: Number(props["width"]),
|
|
382
|
+
height: Number(props["height"]),
|
|
379
383
|
imageResource: ImageResource.create({
|
|
380
|
-
id: props
|
|
384
|
+
id: props["src"] as string,
|
|
381
385
|
abstractImage: createAbstractImage(zero, size, white, [
|
|
382
|
-
createBinaryImage(zero, zero, "png", { type: "url", url: props
|
|
386
|
+
createBinaryImage(zero, zero, "png", { type: "url", url: props["src"] as string }),
|
|
383
387
|
]),
|
|
384
388
|
renderScale: 1,
|
|
385
389
|
}),
|
|
@@ -387,20 +391,20 @@ function imageProps(props: Record<string, unknown>): Record<string, unknown> {
|
|
|
387
391
|
}
|
|
388
392
|
|
|
389
393
|
const strToBool = (str: string | undefined): boolean => {
|
|
390
|
-
if(str === undefined) {
|
|
394
|
+
if (str === undefined) {
|
|
391
395
|
return false;
|
|
392
396
|
}
|
|
393
397
|
const validBools = {
|
|
394
398
|
"1": true,
|
|
395
|
-
|
|
399
|
+
true: true,
|
|
396
400
|
};
|
|
397
401
|
return str in validBools;
|
|
398
|
-
}
|
|
402
|
+
};
|
|
399
403
|
|
|
400
404
|
const strToNum = (str: string | undefined): number => {
|
|
401
405
|
const num = Number(str);
|
|
402
|
-
if(Number.isNaN(num)) {
|
|
406
|
+
if (Number.isNaN(num)) {
|
|
403
407
|
return 0;
|
|
404
408
|
}
|
|
405
409
|
return num;
|
|
406
|
-
}
|
|
410
|
+
};
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
import { ImageProps } from "../../abstract-document/atoms/image.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
TableCellStyle,
|
|
6
|
-
TextRun,
|
|
7
|
-
Paragraph,
|
|
8
|
-
TableCell,
|
|
9
|
-
TableRow,
|
|
10
|
-
Image,
|
|
11
|
-
ImageResource,
|
|
12
|
-
} from "../../abstract-document/index.js";
|
|
13
|
-
import { ParagraphProps } from "../../abstract-document/section-elements/paragraph.js";
|
|
1
|
+
import type { ImageProps } from "../../abstract-document/atoms/image.js";
|
|
2
|
+
import type { TextStyle, ParagraphStyle, TableCellStyle } from "../../abstract-document/index.js";
|
|
3
|
+
import { TextRun, Paragraph, TableCell, TableRow, Image } from "../../abstract-document/index.js";
|
|
4
|
+
import type { ParagraphProps } from "../../abstract-document/section-elements/paragraph.js";
|
|
14
5
|
//dummy2
|
|
15
6
|
|
|
16
7
|
type StyleProps = {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable no-useless-escape */
|
|
2
1
|
export const textRow = `<xs:complexType name="TextRow">
|
|
3
2
|
<xs:annotation>
|
|
4
3
|
<xs:documentation>Shortcut to create a \\<TableRow> \\<TableCell> \\<Paragraph> \\<TextRun text="..." /> \\</Paragraph> \\</TableCell> \\</TableRow></xs:documentation>
|
|
@@ -319,4 +319,4 @@ export const layoutFoundation = `<xs:complexType name="LayoutFoundation">
|
|
|
319
319
|
export const pageColumnLayout = `<xs:complexType name="PageColumnLayout">
|
|
320
320
|
<xs:attribute name="columnCount" type="xs:decimal" />
|
|
321
321
|
<xs:attribute name="columnGap" type="xs:decimal" />
|
|
322
|
-
</xs:complexType>`;
|
|
322
|
+
</xs:complexType>`;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-row.d.ts","sourceRoot":"","sources":["../../../src/abstract-document/table/text-row.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-row.js","sourceRoot":"","sources":["../../../src/abstract-document/table/text-row.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docx-document-renderer.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/docx/docx-document-renderer.ts"],"names":[],"mappings":""}
|