Add footnotes class

This commit is contained in:
Dolan
2018-06-11 00:45:21 +01:00
parent b5b96506ae
commit 8cb8d3514a
5 changed files with 128 additions and 1 deletions

View File

@ -0,0 +1,13 @@
import { XmlAttributeComponent } from "file/xml-components";
export interface IFootnoteAttributesProperties {
type?: string;
id: number;
}
export class FootnoteAttributes extends XmlAttributeComponent<IFootnoteAttributesProperties> {
protected xmlKeys = {
type: "w:type",
id: "w:id",
};
}

View File

@ -0,0 +1,19 @@
import { XmlComponent } from "file/xml-components";
import { Paragraph } from "../../paragraph";
import { FootnoteAttributes } from "./footnote-attributes";
export class FootNote extends XmlComponent {
constructor(id: number, type?: string) {
super("w:footnote");
this.root.push(
new FootnoteAttributes({
type: type,
id: id,
}),
);
}
public addParagraph(paragraph: Paragraph): void {
this.root.push(paragraph);
}
}

View File

@ -0,0 +1,43 @@
import { XmlAttributeComponent } from "file/xml-components";
export interface IFootnotesAttributesProperties {
wpc?: string;
mc?: string;
o?: string;
r?: string;
m?: string;
v?: string;
wp14?: string;
wp?: string;
w10?: string;
w?: string;
w14?: string;
w15?: string;
wpg?: string;
wpi?: string;
wne?: string;
wps?: string;
Ignorable?: string;
}
export class FootnotesAttributes extends XmlAttributeComponent<IFootnotesAttributesProperties> {
protected xmlKeys = {
wpc: "xmlns:wpc",
mc: "xmlns:mc",
o: "xmlns:o",
r: "xmlns:r",
m: "xmlns:m",
v: "xmlns:v",
wp14: "xmlns:wp14",
wp: "xmlns:wp",
w10: "xmlns:w10",
w: "xmlns:w",
w14: "xmlns:w14",
w15: "xmlns:w15",
wpg: "xmlns:wpg",
wpi: "xmlns:wpi",
wne: "xmlns:wne",
wps: "xmlns:wps",
Ignorable: "mc:Ignorable",
};
}

View File

@ -1,4 +1,54 @@
export class FootNotes { import { XmlComponent } from "file/xml-components";
import { FootNote } from "./footnote/footnote";
import { FootnotesAttributes } from "./footnotes-attributes";
import { Paragraph } from "../paragraph";
export class FootNotes extends XmlComponent {
constructor() {
super("w:footnotes");
this.root.push(
new FootnotesAttributes({
wpc: "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
mc: "http://schemas.openxmlformats.org/markup-compatibility/2006",
o: "urn:schemas-microsoft-com:office:office",
r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
m: "http://schemas.openxmlformats.org/officeDocument/2006/math",
v: "urn:schemas-microsoft-com:vml",
wp14: "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing",
wp: "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
w10: "urn:schemas-microsoft-com:office:word",
w: "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
w14: "http://schemas.microsoft.com/office/word/2010/wordml",
w15: "http://schemas.microsoft.com/office/word/2012/wordml",
wpg: "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup",
wpi: "http://schemas.microsoft.com/office/word/2010/wordprocessingInk",
wne: "http://schemas.microsoft.com/office/word/2006/wordml",
wps: "http://schemas.microsoft.com/office/word/2010/wordprocessingShape",
Ignorable: "w14 w15 wp14",
}),
);
const begin = new FootNote(-1);
begin.addParagraph(
new Paragraph().spacing({
after: 0,
line: 240,
lineRule: "auto",
}),
);
this.root.push(begin);
const spacing = new FootNote(0);
spacing.addParagraph(
new Paragraph().spacing({
after: 0,
line: 240,
lineRule: "auto",
}),
);
this.root.push(spacing);
}
public createFootNote(): void { public createFootNote(): void {
// TODO // TODO
} }

View File

@ -5,6 +5,7 @@ export interface ISpacingProperties {
after?: number; after?: number;
before?: number; before?: number;
line?: number; line?: number;
lineRule?: string;
} }
class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> { class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> {
@ -12,6 +13,7 @@ class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> {
after: "w:after", after: "w:after",
before: "w:before", before: "w:before",
line: "w:line", line: "w:line",
lineRule: "w:lineRule",
}; };
} }