@vivliostyle/react
Version:
React component for Vivliostyle
45 lines (44 loc) • 1.75 kB
TypeScript
import { PageViewMode, Payload, ReadyState } from "@vivliostyle/core";
import React from "react";
export type MessageType = "debug" | "info" | "warn";
export type NavigationPayload = Omit<Payload, "internal" | "href" | "content">;
export type HyperlinkPayload = Pick<Payload, "internal" | "href">;
interface VolatileState {
docTitle: string;
epage: number;
epageCount: number;
metadata: unknown;
}
type ChildrenFunction = ({ container, reload, }: {
container: JSX.Element;
reload: () => void;
}) => React.ReactNode;
interface RendererProps {
source: string;
page?: number;
zoom?: number;
bookMode?: boolean;
renderAllPages?: boolean;
autoResize?: boolean;
pageViewMode?: PageViewMode;
defaultPaperSize?: {
width: number;
height: number;
};
pageBorderWidth?: number;
fitToScreen?: boolean;
fontSize?: number;
background?: string;
userStyleSheet?: string;
authorStyleSheet?: string;
style?: React.CSSProperties;
onMessage?: (message: string, type: MessageType) => void;
onError?: (error: string) => void;
onReadyStateChange?: (state: ReadyState) => void;
onLoad?: (state: VolatileState) => void;
onNavigation?: (state: VolatileState) => void;
onHyperlink?: (payload: HyperlinkPayload) => void;
children?: React.ReactNode | ChildrenFunction;
}
export declare const Renderer: ({ source, page, zoom, bookMode, fontSize, background, renderAllPages, autoResize, pageViewMode, defaultPaperSize, pageBorderWidth, fitToScreen, userStyleSheet, authorStyleSheet, style, onMessage, onError, onReadyStateChange, onLoad, onNavigation, onHyperlink, children, }: RendererProps) => ReturnType<ChildrenFunction> | JSX.Element;
export {};