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, `
{layout}
` ); export const Title = new Template("Title", TemplatePosition.InnerTop, `
{props.Document.title}
{layout}
` ); export const Header = new Template("Header", TemplatePosition.InnerTop, `
{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 function TitleBar(datastring: string) { return (`
${datastring}
{layout}
` ); } export const TemplateList: Template[] = [Title, Header, 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; } }