#332 Compatability mode

This commit is contained in:
Dolan
2021-02-27 01:40:55 +00:00
parent 84f48446df
commit 10455a534f
8 changed files with 108 additions and 37 deletions

View File

@ -0,0 +1,23 @@
import { expect } from "chai";
import { Formatter } from "export/formatter";
import { CompatibilitySetting } from "./compatibility-setting";
describe("CompatibilitySetting", () => {
describe("#constructor", () => {
it("creates an initially empty property object", () => {
const compatibilitySetting = new CompatibilitySetting(15);
const tree = new Formatter().format(compatibilitySetting);
expect(tree).to.deep.equal({
"w:compatSetting": {
_attr: {
"w:name": "compatibilityMode",
"w:uri": "http://schemas.microsoft.com/office/word",
"w:val": 15,
},
},
});
});
});
});

View File

@ -0,0 +1,27 @@
import { XmlAttributeComponent, XmlComponent } from "file/xml-components";
export class CompatibilitySettingAttributes extends XmlAttributeComponent<{
readonly version: number;
readonly name: string;
readonly uri: string;
}> {
protected readonly xmlKeys = {
version: "w:val",
name: "w:name",
uri: "w:uri",
};
}
export class CompatibilitySetting extends XmlComponent {
constructor(version: number) {
super("w:compatSetting");
this.root.push(
new CompatibilitySettingAttributes({
version,
uri: "http://schemas.microsoft.com/office/word",
name: "compatibilityMode",
}),
);
}
}