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, `
{layout}
` ); export const InnerCaption = new Template("Inner caption", TemplatePosition.InnerBottom, `
{layout}
` ); export const SideCaption = new Template("Side caption", TemplatePosition.OutterRight, `
{layout}
` ); 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, `
{layout}
` ); 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; } }