fix: omit empty descr/title in <wp:docPr> for Word 2007 compatibility (#3073)
This commit is contained in:
@ -19,8 +19,8 @@ import { createHyperlinkClick } from "./doc-properties-children";
|
|||||||
|
|
||||||
export type DocPropertiesOptions = {
|
export type DocPropertiesOptions = {
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly description: string;
|
readonly description?: string;
|
||||||
readonly title: string;
|
readonly title?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export class DocProperties extends XmlComponent {
|
export class DocProperties extends XmlComponent {
|
||||||
@ -29,8 +29,7 @@ export class DocProperties extends XmlComponent {
|
|||||||
public constructor({ name, description, title }: DocPropertiesOptions = { name: "", description: "", title: "" }) {
|
public constructor({ name, description, title }: DocPropertiesOptions = { name: "", description: "", title: "" }) {
|
||||||
super("wp:docPr");
|
super("wp:docPr");
|
||||||
|
|
||||||
this.root.push(
|
const attributes: Record<string, { readonly key: string; readonly value: string | number }> = {
|
||||||
new NextAttributeComponent({
|
|
||||||
id: {
|
id: {
|
||||||
key: "id",
|
key: "id",
|
||||||
value: this.docPropertiesUniqueNumericId(),
|
value: this.docPropertiesUniqueNumericId(),
|
||||||
@ -39,16 +38,23 @@ export class DocProperties extends XmlComponent {
|
|||||||
key: "name",
|
key: "name",
|
||||||
value: name,
|
value: name,
|
||||||
},
|
},
|
||||||
description: {
|
};
|
||||||
|
|
||||||
|
if (description !== null && description !== undefined) {
|
||||||
|
attributes.description = {
|
||||||
key: "descr",
|
key: "descr",
|
||||||
value: description,
|
value: description,
|
||||||
},
|
};
|
||||||
title: {
|
}
|
||||||
|
|
||||||
|
if (title !== null && title !== undefined) {
|
||||||
|
attributes.title = {
|
||||||
key: "title",
|
key: "title",
|
||||||
value: title,
|
value: title,
|
||||||
},
|
};
|
||||||
}),
|
}
|
||||||
);
|
|
||||||
|
this.root.push(new NextAttributeComponent(attributes));
|
||||||
}
|
}
|
||||||
|
|
||||||
public prepForXml(context: IContext): IXmlableObject | undefined {
|
public prepForXml(context: IContext): IXmlableObject | undefined {
|
||||||
@ -59,7 +65,6 @@ export class DocProperties extends XmlComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.root.push(createHyperlinkClick(element.linkId, true));
|
this.root.push(createHyperlinkClick(element.linkId, true));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user