#2388 - Add default tab stop (#2470)

* #2388 - Check for undefined rather than falsey

* Add default tab stop

* Add back tab stop positions

* Add test for default tab stop
This commit is contained in:
Dolan
2023-12-24 03:37:36 +00:00
committed by GitHub
parent abbd695a8f
commit 2bd4aacdd5
6 changed files with 29 additions and 3 deletions

View File

@ -112,6 +112,23 @@ describe("Settings", () => {
});
});
it("should add defaultTabStop setting with version", () => {
const settings = new Settings({
defaultTabStop: 100,
});
const tree = new Formatter().format(settings);
expect(Object.keys(tree)).has.length(1);
expect(tree["w:settings"]).to.be.an("array");
expect(tree["w:settings"]).to.deep.include({
"w:defaultTabStop": {
_attr: {
"w:val": 100,
},
},
});
});
// TODO: Remove when deprecating compatibilityModeVersion
it("should add compatibility setting with legacy version", () => {
const settings = new Settings({

View File

@ -1,4 +1,4 @@
import { OnOffElement, XmlAttributeComponent, XmlComponent } from "@file/xml-components";
import { NumberValueElement, OnOffElement, XmlAttributeComponent, XmlComponent } from "@file/xml-components";
import { Compatibility, ICompatibilityOptions } from "./compatibility";
@ -152,6 +152,7 @@ export interface ISettingsOptions {
readonly trackRevisions?: boolean;
readonly updateFields?: boolean;
readonly compatibility?: ICompatibilityOptions;
readonly defaultTabStop?: number;
}
export class Settings extends XmlComponent {
@ -198,6 +199,11 @@ export class Settings extends XmlComponent {
this.root.push(new OnOffElement("w:updateFields", options.updateFields));
}
// https://c-rex.net/samples/ooxml/e1/Part4/OOXML_P4_DOCX_defaultTabStop_topic_ID0EIXSX.html
if (options.defaultTabStop !== undefined) {
this.root.push(new NumberValueElement("w:defaultTabStop", options.defaultTabStop));
}
this.root.push(
new Compatibility({
...(options.compatibility ?? {}),