Use level.start for overrideLevel.start if possible
Implemented via additional reference config map.
This commit is contained in:
@ -29,6 +29,7 @@ export interface INumberingOptions {
|
|||||||
export class Numbering extends XmlComponent {
|
export class Numbering extends XmlComponent {
|
||||||
private readonly abstractNumberingMap = new Map<string, AbstractNumbering>();
|
private readonly abstractNumberingMap = new Map<string, AbstractNumbering>();
|
||||||
private readonly concreteNumberingMap = new Map<string, ConcreteNumbering>();
|
private readonly concreteNumberingMap = new Map<string, ConcreteNumbering>();
|
||||||
|
private readonly referenceConfigMap = new Map<string, ILevelsOptions>();
|
||||||
|
|
||||||
constructor(options: INumberingOptions) {
|
constructor(options: INumberingOptions) {
|
||||||
super("w:numbering");
|
super("w:numbering");
|
||||||
@ -174,6 +175,7 @@ export class Numbering extends XmlComponent {
|
|||||||
|
|
||||||
for (const con of options.config) {
|
for (const con of options.config) {
|
||||||
this.abstractNumberingMap.set(con.reference, new AbstractNumbering(uniqueNumericId(), con.levels));
|
this.abstractNumberingMap.set(con.reference, new AbstractNumbering(uniqueNumericId(), con.levels));
|
||||||
|
this.referenceConfigMap.set(con.reference, con.levels);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,19 +203,28 @@ export class Numbering extends XmlComponent {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.concreteNumberingMap.set(
|
const concreteNumberingSettings = {
|
||||||
fullReference,
|
numId: uniqueNumericId(),
|
||||||
new ConcreteNumbering({
|
abstractNumId: abstractNumbering.id,
|
||||||
numId: uniqueNumericId(),
|
reference,
|
||||||
abstractNumId: abstractNumbering.id,
|
instance,
|
||||||
reference,
|
};
|
||||||
instance,
|
|
||||||
overrideLevel: {
|
const referenceConfigLevels = this.referenceConfigMap.get(reference);
|
||||||
num: 0,
|
const firstLevelStartNumber = referenceConfigLevels?.[0]?.start;
|
||||||
start: 1,
|
if (firstLevelStartNumber) {
|
||||||
},
|
concreteNumberingSettings.overrideLevel = {
|
||||||
}),
|
num: 0,
|
||||||
);
|
start: firstLevelStartNumber,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
concreteNumberingSettings.overrideLevel = {
|
||||||
|
num: 0,
|
||||||
|
start: 1,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
this.concreteNumberingMap.set(fullReference, new ConcreteNumbering(concreteNumberingSettings));
|
||||||
}
|
}
|
||||||
|
|
||||||
public get ConcreteNumbering(): ConcreteNumbering[] {
|
public get ConcreteNumbering(): ConcreteNumbering[] {
|
||||||
|
Reference in New Issue
Block a user