import React = require("react");
export enum TemplatePosition {
InnerTop,
InnerBottom,
InnerRight,
InnerLeft,
OutterTop,
OutterBottom,
OutterRight,
OutterLeft,
}
export class Template {
constructor(name: string, position: TemplatePosition, layout: string) {
this._name = name;
this._position = position;
this._layout = layout;
}
private _name: string;
private _position: TemplatePosition;
private _layout: string;
get Name(): string {
return this._name;
}
get Position(): TemplatePosition {
return this._position;
}
get Layout(): string {
return this._layout;
}
}
export namespace Templates {
// export const BasicLayout = new Template("Basic layout", "{layout}");
export const OuterCaption = new Template("Outer caption", TemplatePosition.OutterBottom,
`
`
);
export const InnerCaption = new Template("Inner caption", TemplatePosition.InnerBottom,
``
);
export const SideCaption = new Template("Side caption", TemplatePosition.OutterRight,
``
);
export const TitleOverlay = new Template("TitleOverlay", TemplatePosition.InnerTop,
`{layout}
{props.Document.title}
`
);
export const Title = new Template("Title", TemplatePosition.InnerTop,
`{layout}
{props.Document.title}
`
);
export const Bullet = new Template("Bullet", TemplatePosition.InnerTop,
``
);
export const TemplateList: Template[] = [Title, TitleOverlay, OuterCaption, InnerCaption, SideCaption, Bullet];
export function sortTemplates(a: Template, b: Template) {
if (a.Position < b.Position) { return -1; }
if (a.Position > b.Position) { return 1; }
return 0;
}
}