import React = require("react");
export enum TemplatePosition {
InnerTop,
InnerBottom,
InnerRight,
InnerLeft,
TopRight,
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 Caption = new Template("Caption", TemplatePosition.OutterBottom,
`
` );
export const ImageTitle = new Template("Image Title", TemplatePosition.InnerTop,
`
{layout}
{props.Document.title}
` );
export const TextTitle = new Template("Text Title", TemplatePosition.InnerTop,
`` );
export const Header = new Template("Header", TemplatePosition.InnerTop,
`< div style = "display:flex; flex-direction:column; height:100%;" >
{layout}
` );
export const Bullet = new Template("Bullet", TemplatePosition.InnerTop,
`< div >
{layout}
`
);
export function ImageOverlay(width: number, height: number, field: string = "thumbnail") {
return (`< div >
{layout}
`);
}
export const TemplateList: Template[] = [TextTitle, Header, ImageTitle, Caption, Bullet];
export function sortTemplates(a: Template, b: Template) {
if (a.Position < b.Position) { return -1; }
if (a.Position > b.Position) { return 1; }
return 0;
}
}