Add work for custom level id

This commit is contained in:
Dolan
2019-11-06 20:54:39 +00:00
parent a622c210ef
commit 9b40b5e55e
7 changed files with 77 additions and 95 deletions

View File

@ -1,7 +1,7 @@
import { Attributes, XmlComponent } from "file/xml-components";
export class NumberProperties extends XmlComponent {
constructor(numberId: number, indentLevel: number) {
constructor(numberId: number | string, indentLevel: number) {
super("w:numPr");
this.root.push(new IndentLevel(indentLevel));
this.root.push(new NumberId(numberId));
@ -20,11 +20,11 @@ class IndentLevel extends XmlComponent {
}
class NumberId extends XmlComponent {
constructor(id: number) {
constructor(id: number | string) {
super("w:numId");
this.root.push(
new Attributes({
val: id,
val: typeof id === "string" ? `__${id}__` : id,
}),
);
}

View File

@ -3,7 +3,6 @@ import { assert, expect } from "chai";
import { Formatter } from "export/formatter";
import { EMPTY_OBJECT } from "file/xml-components";
import { Numbering } from "../numbering";
import { AlignmentType, HeadingLevel, LeaderType, PageBreak, TabStopPosition, TabStopType } from "./formatting";
import { Paragraph } from "./paragraph";
@ -596,19 +595,9 @@ describe("Paragraph", () => {
describe("#setNumbering", () => {
it("should add list paragraph style to JSON", () => {
const numbering = new Numbering({
levels: [
{
level: 0,
format: "lowerLetter",
text: "%1)",
},
],
});
const paragraph = new Paragraph({
numbering: {
num: letterNumbering,
reference: "test id",
level: 0,
},
});
@ -627,19 +616,9 @@ describe("Paragraph", () => {
});
it("it should add numbered properties", () => {
const numbering = new Numbering({
levels: [
{
level: 0,
format: "lowerLetter",
text: "%1)",
},
],
});
const paragraph = new Paragraph({
numbering: {
num: letterNumbering,
reference: "test id",
level: 0,
},
});
@ -650,10 +629,7 @@ describe("Paragraph", () => {
"w:pPr": [
{ "w:pStyle": { _attr: { "w:val": "ListParagraph" } } },
{
"w:numPr": [
{ "w:ilvl": { _attr: { "w:val": 0 } } },
{ "w:numId": { _attr: { "w:val": letterNumbering.id } } },
],
"w:numPr": [{ "w:ilvl": { _attr: { "w:val": 0 } } }, { "w:numId": { _attr: { "w:val": "__test id__" } } }],
},
],
},

View File

@ -1,6 +1,5 @@
// http://officeopenxml.com/WPparagraph.php
import { FootnoteReferenceRun } from "file/footnotes/footnote/run/reference-run";
import { ConcreteNumbering } from "file/numbering/num";
import { XmlComponent } from "file/xml-components";
import { Alignment, AlignmentType } from "./formatting/alignment";
@ -41,7 +40,7 @@ export interface IParagraphOptions {
readonly level: number;
};
readonly numbering?: {
readonly num: ConcreteNumbering;
readonly reference: string;
readonly level: number;
readonly custom?: boolean;
};
@ -141,7 +140,7 @@ export class Paragraph extends XmlComponent {
if (!options.numbering.custom) {
this.properties.push(new Style("ListParagraph"));
}
this.properties.push(new NumberProperties(options.numbering.num.id, options.numbering.level));
this.properties.push(new NumberProperties(options.numbering.reference, options.numbering.level));
}
if (options.children) {