From c92cab5e5bd5f66af83aec6fc9f1a3b45844873a Mon Sep 17 00:00:00 2001 From: h4buli <34742290+h4buli@users.noreply.github.com> Date: Tue, 17 Apr 2018 15:33:53 +0200 Subject: [PATCH] Fix Numbering (#4) * Version bump * (fix): fixed issue with numbering in document --- package.json | 2 +- src/file/numbering/numbering.ts | 66 ++++++--------------------------- src/file/paragraph/paragraph.ts | 5 +++ 3 files changed, 18 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 3edbf6d1ae..23d233f46e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "docx-h4", - "version": "3.2.1", + "version": "3.2.2", "description": "Generate .docx documents with JavaScript (formerly Office-Clippy)", "main": "build/index.js", "scripts": { diff --git a/src/file/numbering/numbering.ts b/src/file/numbering/numbering.ts index 64ec0b5a9c..517766987a 100644 --- a/src/file/numbering/numbering.ts +++ b/src/file/numbering/numbering.ts @@ -1,13 +1,14 @@ -import { XmlComponent } from "file/xml-components"; +import { XmlComponent, IXmlableObject } from "file/xml-components"; import { DocumentAttributes } from "../document/document-attributes"; -import { Indent } from "../paragraph/formatting"; -import { RunFonts } from "../paragraph/run/run-fonts"; import { AbstractNumbering } from "./abstract-numbering"; import { Num } from "./num"; export class Numbering extends XmlComponent { private nextId: number; + private abstractNumbering: Array = []; + private concreteNumbering: Array = []; + constructor() { super("w:numbering"); this.root.push( @@ -33,66 +34,23 @@ export class Numbering extends XmlComponent { ); this.nextId = 0; - - const abstractNumbering = this.createAbstractNumbering(); - - abstractNumbering - .createLevel(0, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 720, hanging: 360 })) - .addRunProperty(new RunFonts("Symbol", "default")); - - abstractNumbering - .createLevel(1, "bullet", "o", "left") - .addParagraphProperty(new Indent({ left: 1440, hanging: 360 })) - .addRunProperty(new RunFonts("Courier New", "default")); - - abstractNumbering - .createLevel(2, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 2160, hanging: 360 })) - .addRunProperty(new RunFonts("Wingdings", "default")); - - abstractNumbering - .createLevel(3, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 2880, hanging: 360 })) - .addRunProperty(new RunFonts("Symbol", "default")); - - abstractNumbering - .createLevel(4, "bullet", "o", "left") - .addParagraphProperty(new Indent({ left: 3600, hanging: 360 })) - .addRunProperty(new RunFonts("Courier New", "default")); - - abstractNumbering - .createLevel(5, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 4320, hanging: 360 })) - .addRunProperty(new RunFonts("Wingdings", "default")); - - abstractNumbering - .createLevel(6, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 5040, hanging: 360 })) - .addRunProperty(new RunFonts("Symbol", "default")); - - abstractNumbering - .createLevel(7, "bullet", "o", "left") - .addParagraphProperty(new Indent({ left: 5760, hanging: 360 })) - .addRunProperty(new RunFonts("Courier New", "default")); - - abstractNumbering - .createLevel(8, "bullet", "•", "left") - .addParagraphProperty(new Indent({ left: 6480, hanging: 360 })) - .addRunProperty(new RunFonts("Wingdings", "default")); - - this.createConcreteNumbering(abstractNumbering); } public createAbstractNumbering(): AbstractNumbering { const num = new AbstractNumbering(this.nextId++); - this.root.push(num); + this.abstractNumbering.push(num); return num; } public createConcreteNumbering(abstractNumbering: AbstractNumbering): Num { const num = new Num(this.nextId++, abstractNumbering.id); - this.root.push(num); + this.concreteNumbering.push(num); return num; } + + public prepForXml(): IXmlableObject { + this.abstractNumbering.forEach(x => this.root.push(x)); + this.concreteNumbering.forEach(x => this.root.push(x)); + return super.prepForXml(); + } } diff --git a/src/file/paragraph/paragraph.ts b/src/file/paragraph/paragraph.ts index 0bf128acd3..ac779de094 100644 --- a/src/file/paragraph/paragraph.ts +++ b/src/file/paragraph/paragraph.ts @@ -136,6 +136,11 @@ export class Paragraph extends XmlComponent { return this; } + public setCustomNumbering(numberId: number, indentLevel: number): Paragraph { + this.properties.push(new NumberProperties(numberId, indentLevel)); + return this; + } + public style(styleId: string): Paragraph { this.properties.push(new Style(styleId)); return this;