2016-05-24 21:37:58 +01:00
|
|
|
import * as _ from "lodash";
|
2017-03-08 17:09:48 +01:00
|
|
|
import { XmlAttributeComponent, XmlComponent } from "../docx/xml-components";
|
|
|
|
import { Level } from "./level";
|
|
|
|
import { MultiLevelType } from "./multi-level-type";
|
2016-05-19 22:42:23 +01:00
|
|
|
|
2017-03-08 17:09:48 +01:00
|
|
|
interface IAbstractNumberingAttributesProperties {
|
2016-05-26 15:08:34 +01:00
|
|
|
abstractNumId?: number;
|
|
|
|
restartNumberingAfterBreak?: number;
|
2016-05-19 22:42:23 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
class AbstractNumberingAttributes extends XmlAttributeComponent {
|
2016-05-26 15:08:34 +01:00
|
|
|
|
2017-03-08 17:09:48 +01:00
|
|
|
constructor(properties: IAbstractNumberingAttributesProperties) {
|
2016-05-19 22:42:23 +01:00
|
|
|
super({
|
|
|
|
abstractNumId: "w:abstractNumId",
|
2017-03-08 17:09:48 +01:00
|
|
|
restartNumberingAfterBreak: "w15:restartNumberingAfterBreak",
|
2016-05-19 22:42:23 +01:00
|
|
|
}, properties);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export class AbstractNumbering extends XmlComponent {
|
|
|
|
|
2016-05-21 00:02:46 +01:00
|
|
|
constructor(id: number) {
|
2016-05-19 22:42:23 +01:00
|
|
|
super("w:abstractNum");
|
|
|
|
this.root.push(new AbstractNumberingAttributes({
|
2016-05-21 00:02:46 +01:00
|
|
|
abstractNumId: id,
|
2017-03-08 17:09:48 +01:00
|
|
|
restartNumberingAfterBreak: 0,
|
2016-05-19 22:42:23 +01:00
|
|
|
}));
|
2016-05-21 00:02:46 +01:00
|
|
|
this.root.push(new MultiLevelType("hybridMultilevel"));
|
|
|
|
}
|
2016-05-26 15:08:34 +01:00
|
|
|
|
2017-03-08 17:09:48 +01:00
|
|
|
public addLevel(level: Level): void {
|
2016-05-21 00:02:46 +01:00
|
|
|
this.root.push(level);
|
2016-05-19 22:42:23 +01:00
|
|
|
}
|
2016-05-26 15:08:34 +01:00
|
|
|
|
2017-03-08 17:09:48 +01:00
|
|
|
public clearVariables(): void {
|
|
|
|
_.forEach(this.root, (element) => {
|
2016-05-24 21:37:58 +01:00
|
|
|
element.clearVariables();
|
|
|
|
});
|
|
|
|
}
|
2017-03-08 17:09:48 +01:00
|
|
|
}
|