UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

149 lines (143 loc) 7.8 kB
import { Dom7Instance } from 'dom7'; import Framework7, { CSSSelector, Framework7EventsClass, Framework7Plugin } from '../app/app-class'; export namespace TextEditor { interface Parameters { /** Editor element. HTMLElement or string with CSS selector of editor element */ el: HTMLElement | CSSSelector /** Text editor mode: Can be "toolbar", "popover" or "keyboard-toolbar" (default "toolbar") */ mode?: string /** Default value. Should be HTML string. If not passed then it will treat inner HTML content as default value (default undefined) */ value?: string /** Placeholder (default null) */ palceholder?: string /** Set of editor toolbar buttons */ buttons?: string[] | Array<string>[] /** Define custom buttons */ customButtons?: object /** Adds visual divider between buttons group (default true) */ dividers?: boolean /** Prompt text that appears on image url request (default "Insert image URL") */ imageUrlText?: string /** Prompt text that appears on link url request (default "Insert link URL") */ linkUrlText?: string /** When enabled it will clear any formatting on paste from clipboard (default true) */ clearFormattingOnPaste?: boolean /** Object with events handlers.. */ on?: { [event in keyof Events]? : Events[event] } } interface TextEditor extends Framework7EventsClass<Events> { /** Link to global app instance */ app : Framework7 /** Editor HTML element */ el : HTMLElement /** Dom7 instance with editor HTML element */ $el : Dom7Instance /** Editor contenteditable content element */ contentEl: HTMLElement /** Dom7 instance with editor contenteditable content element */ $contentEl: Dom7Instance /** Current editor value (html string) */ value: string /** Editor parameters */ params : Parameters /** Returns editor value */ getValue(): number /** Set new editor value */ setValue(value: string): TextEditor /** Returns current selection Range */ getSelectionRange(): Range /** Set selection based on passed Range */ setSelectionRange(range: Range): void /** Destroy text editor */ destroy() : void } interface Events { /** Event will be triggered when editor value has been changed. As an argument event handler receives editor instance and value */ change: (editor : TextEditor, value: string) => void /** Event will be triggered on editor's content "input" event. As an argument event handler receives editor instance */ input: (editor : TextEditor) => void /** Event will be triggered on editor's content focus. As an argument event handler receives editor instance */ focus: (editor : TextEditor) => void /** Event will be triggered on editor's content blur. As an argument event handler receives editor instance */ blur: (editor : TextEditor) => void /** Event will be triggered on editor button click. As an argument event handler receives editor instance and name of the clicked button, e.g. "bold" */ buttonClick: (editor : TextEditor, button: string) => void /** Event will be triggered when editor keyboard toolbar appears. As an argument event handler receives editor instance */ keyboardOpen: (editor : TextEditor) => void /** Event will be triggered when editor keyboard toolbar disappears. As an argument event handler receives editor instance */ keyboardClose: (editor : TextEditor) => void /** Event will be triggered on editor popover open. As an argument event handler receives editor instance */ popoverOpen: (editor : TextEditor) => void /** Event will be triggered on editor popover close. As an argument event handler receives editor instance */ popoverClose: (editor : TextEditor) => void /** Event will be triggered on editor init */ init: (editor : TextEditor) => void /** Event will be triggered right before Text Editor instance will be destroyed. As an argument event handler receives Text Editor instance */ beforeDestroy: (editor : TextEditor) => void } interface DomEvents { /** Event will be triggered when editor value has been changed. */ 'texteditor:change': () => void /** Event will be triggered on editor's content "input" event. */ 'texteditor:input': () => void /** Event will be triggered on editor's content focus.*/ 'texteditor:focus': () => void /** Event will be triggered on editor's content blur.*/ 'texteditor:blur': () => void /** Event will be triggered on editor button click. */ 'texteditor:buttonclick': () => void /** Event will be triggered when editor keyboard toolbar appears.*/ 'texteditor:keyboardopen': () => void /** Event will be triggered when editor keyboard toolbar disappears.*/ 'texteditor:keyboardclose': () => void /** Event will be triggered on editor popover open.*/ 'texteditor:popoveropen': () => void /** Event will be triggered on editor popover close.*/ 'texteditor:popoverclose': () => void /** Event will be triggered on editor init */ 'texteditor:init': () => void /** Event will be triggered right before Text Editor instance will be destroyed.*/ 'texteditor:beforedestroy': () => void } interface AppMethods { textEditor: { /** create Text Editor instance */ create(parameters: Parameters): TextEditor /** get Text Editor instance by HTML element */ get(el: HTMLElement | CSSSelector | TextEditor): TextEditor /** destroy Text Editor instance */ destroy(el : HTMLElement | CSSSelector | TextEditor) : void } } interface AppParams { textEditor?: Parameters | undefined } interface AppEvents { /** Event will be triggered when editor value has been changed. As an argument event handler receives editor instance and value */ textEditorChange: (editor : TextEditor, value: string) => void /** Event will be triggered on editor's content "input" event. As an argument event handler receives editor instance */ textEditorInput: (editor : TextEditor) => void /** Event will be triggered on editor's content focus. As an argument event handler receives editor instance */ textEditorFocus: (editor : TextEditor) => void /** Event will be triggered on editor's content blur. As an argument event handler receives editor instance */ textEditorBlur: (editor : TextEditor) => void /** Event will be triggered on editor button click. As an argument event handler receives editor instance and name of the clicked button, e.g. "bold" */ textEditorButtonClick: (editor : TextEditor, button: string) => void /** Event will be triggered when editor keyboard toolbar appears. As an argument event handler receives editor instance */ textEditorKeyboardOpen: (editor : TextEditor) => void /** Event will be triggered when editor keyboard toolbar disappears. As an argument event handler receives editor instance */ textEditorKeyboardClose: (editor : TextEditor) => void /** Event will be triggered on editor popover open. As an argument event handler receives editor instance */ textEditorPopoverOpen: (editor : TextEditor) => void /** Event will be triggered on editor popover close. As an argument event handler receives editor instance */ textEditorPopoverClose: (editor : TextEditor) => void /** Event will be triggered on editor init */ textEditorInit: (editor : TextEditor) => void /** Event will be triggered right before Text Editor instance will be destroyed. As an argument event handler receives Text Editor instance */ textEditorBeforeDestroy: (editor : TextEditor) => void } } declare const TextEditorComponent: Framework7Plugin; export default TextEditorComponent;