Add children to hyperlink
This commit is contained in:
@ -10,10 +10,12 @@ describe("ConcreteHyperlink", () => {
|
||||
|
||||
beforeEach(() => {
|
||||
hyperlink = new ConcreteHyperlink(
|
||||
[
|
||||
new TextRun({
|
||||
text: "https://example.com",
|
||||
style: "Hyperlink",
|
||||
}),
|
||||
],
|
||||
"superid",
|
||||
);
|
||||
});
|
||||
@ -42,10 +44,12 @@ describe("ConcreteHyperlink", () => {
|
||||
describe("with optional anchor parameter", () => {
|
||||
beforeEach(() => {
|
||||
hyperlink = new ConcreteHyperlink(
|
||||
[
|
||||
new TextRun({
|
||||
text: "Anchor Text",
|
||||
style: "Hyperlink",
|
||||
}),
|
||||
],
|
||||
"superid2",
|
||||
"anchor",
|
||||
);
|
||||
@ -78,7 +82,7 @@ describe("ExternalHyperlink", () => {
|
||||
describe("#constructor()", () => {
|
||||
it("should create", () => {
|
||||
const externalHyperlink = new ExternalHyperlink({
|
||||
child: new TextRun("test"),
|
||||
children: [new TextRun("test")],
|
||||
link: "http://www.google.com",
|
||||
});
|
||||
|
||||
|
@ -13,7 +13,7 @@ export enum HyperlinkType {
|
||||
export class ConcreteHyperlink extends XmlComponent {
|
||||
public readonly linkId: string;
|
||||
|
||||
constructor(child: ParagraphChild, relationshipId: string, anchor?: string) {
|
||||
constructor(children: ParagraphChild[], relationshipId: string, anchor?: string) {
|
||||
super("w:hyperlink");
|
||||
|
||||
this.linkId = relationshipId;
|
||||
@ -26,16 +26,18 @@ export class ConcreteHyperlink extends XmlComponent {
|
||||
|
||||
const attributes = new HyperlinkAttributes(props);
|
||||
this.root.push(attributes);
|
||||
children.forEach((child) => {
|
||||
this.root.push(child);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class InternalHyperlink extends ConcreteHyperlink {
|
||||
constructor(options: { readonly child: ParagraphChild; readonly anchor: string }) {
|
||||
super(options.child, uniqueId(), options.anchor);
|
||||
super([options.child], uniqueId(), options.anchor);
|
||||
}
|
||||
}
|
||||
|
||||
export class ExternalHyperlink {
|
||||
constructor(public readonly options: { readonly child: ParagraphChild; readonly link: string }) {}
|
||||
constructor(public readonly options: { readonly children: ParagraphChild[]; readonly link: string }) {}
|
||||
}
|
||||
|
@ -927,7 +927,7 @@ describe("Paragraph", () => {
|
||||
const paragraph = new Paragraph({
|
||||
children: [
|
||||
new ExternalHyperlink({
|
||||
child: new TextRun("test"),
|
||||
children: [new TextRun("test")],
|
||||
link: "http://www.google.com",
|
||||
}),
|
||||
],
|
||||
|
@ -75,7 +75,7 @@ export class Paragraph extends XmlComponent {
|
||||
for (const element of this.root) {
|
||||
if (element instanceof ExternalHyperlink) {
|
||||
const index = this.root.indexOf(element);
|
||||
const concreteHyperlink = new ConcreteHyperlink(element.options.child, uniqueId());
|
||||
const concreteHyperlink = new ConcreteHyperlink(element.options.children, uniqueId());
|
||||
context.viewWrapper.Relationships.createRelationship(
|
||||
concreteHyperlink.linkId,
|
||||
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
|
||||
|
Reference in New Issue
Block a user