create hyperlink style

This commit is contained in:
Ivan Lopez
2018-05-06 22:23:04 -05:00
parent ac40e13e33
commit 1fd222abea
2 changed files with 44 additions and 1 deletions

View File

@ -9,6 +9,7 @@ import {
Heading4Style, Heading4Style,
Heading5Style, Heading5Style,
Heading6Style, Heading6Style,
HyperlinkStyle,
ListParagraph, ListParagraph,
TitleStyle, TitleStyle,
} from "./style"; } from "./style";
@ -54,6 +55,8 @@ export class DefaultStylesFactory {
// listParagraph.addParagraphProperty(); // listParagraph.addParagraphProperty();
styles.push(listParagraph); styles.push(listParagraph);
const hyperLinkStyle = new HyperlinkStyle();
styles.push(hyperLinkStyle);
return styles; return styles;
} }
} }

View File

@ -3,7 +3,7 @@ import * as paragraph from "../../paragraph";
import * as formatting from "../../paragraph/run/formatting"; import * as formatting from "../../paragraph/run/formatting";
import { RunProperties } from "../../paragraph/run/properties"; import { RunProperties } from "../../paragraph/run/properties";
import { BasedOn, Name, Next, QuickFormat } from "./components"; import { BasedOn, Name, Next, QuickFormat, UiPriority, UnhideWhenUsed } from "./components";
export interface IStyleAttributes { export interface IStyleAttributes {
type?: string; type?: string;
@ -249,3 +249,43 @@ export class ListParagraph extends ParagraphStyle {
this.root.push(new QuickFormat()); this.root.push(new QuickFormat());
} }
} }
export class CharacterStyle extends Style {
private readonly runProperties: RunProperties;
constructor(styleId: string, name?: string) {
super({ type: "character", styleId: styleId }, name);
this.runProperties = new RunProperties();
this.root.push(this.runProperties);
this.root.push(new UiPriority("99"));
this.root.push(new UnhideWhenUsed(""));
}
public basedOn(parentId: string): CharacterStyle {
this.root.push(new BasedOn(parentId));
return this;
}
public addRunProperty(property: XmlComponent): void {
this.runProperties.push(property);
}
public color(color: string): CharacterStyle {
this.addRunProperty(new formatting.Color(color));
return this;
}
public underline(underlineType?: string, color?: string): CharacterStyle {
this.addRunProperty(new formatting.Underline(underlineType, color));
return this;
}
}
export class HyperlinkStyle extends CharacterStyle {
constructor() {
super("Hyperlink", "Hyperlink");
this.basedOn("DefaultParagraphFont")
.color("0563C1")
.underline("single");
}
}