UNPKG

usfm-editor

Version:
50 lines (49 loc) 2.01 kB
/// <reference types="react" /> import PropTypes from "prop-types"; import { ToolbarSpecs } from "./components/UsfmToolbar"; export declare type IdentificationHeaders = Record<string, string | string[] | null>; export interface UsfmEditorRef { getMarksAtSelection: () => string[]; addMarkAtSelection: (mark: string) => void; removeMarkAtSelection: (mark: string) => void; getParagraphTypesAtSelection: () => string[]; setParagraphTypeAtSelection: (marker: string) => void; goToVerse: (verseObject: Verse) => void; } export interface UsfmEditorProps { usfmString: string; onChange?: (usfm: string) => void; readOnly?: boolean; identification?: IdentificationHeaders; onIdentificationChange?: (identification: IdentificationHeaders) => void; goToVerse?: Verse; onVerseChange?: (verseRange: VerseRange) => void; toolbarSpecs: ToolbarSpecs; } export declare const usfmEditorPropTypes: { usfmString: PropTypes.Validator<string>; onChange: PropTypes.Requireable<(...args: any[]) => any>; readOnly: PropTypes.Requireable<boolean>; identification: PropTypes.Requireable<object>; onIdentificationChange: PropTypes.Requireable<(...args: any[]) => any>; goToVerse: PropTypes.Requireable<object>; onVerseChange: PropTypes.Requireable<(...args: any[]) => any>; toolbarSpecs: PropTypes.Requireable<object>; }; export declare const usfmEditorDefaultProps: Partial<UsfmEditorProps>; export declare type Verse = { chapter: number; verse: number; key?: unknown; }; export declare type VerseRange = { chapter: number; verseStart: number; verseEnd: number; }; export declare type ForwardRefUsfmEditor<R extends UsfmEditorRef> = React.ForwardRefExoticComponent<UsfmEditorProps & React.RefAttributes<R>>; export declare type HocUsfmEditorProps<W extends UsfmEditorRef> = UsfmEditorProps & HasWrappedEditor<W>; interface HasWrappedEditor<W extends UsfmEditorRef> { wrappedEditor: ForwardRefUsfmEditor<W>; } export {};