UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

166 lines (155 loc) 7.59 kB
import { Dom7Array } from 'dom7'; import Framework7, { CSSSelector, Framework7EventsClass, Framework7Plugin, } from '../app/app-class.js'; export namespace Messagebar { interface Messagebar extends Framework7EventsClass<Events> { /** Messagebar HTML element. */ el: HTMLElement; /** Dom7 element with messagebar HTML element. */ $el: Dom7Array; /** Messagebar textarea HTML element */ textareaEl: HTMLTextAreaElement; /** Dom7 element with messagebar textarea HTML element */ $textareaEl: Dom7Array; /** Object with passed initialization parameters */ params: Parameters; /** Array with messagebar attachments */ attachments: string[]; /** Get messagebar textarea value */ getValue(): string; /** Set messagebar textarea value/text */ setValue(value: string): Messagebar; /** Clear textarea and update/reset its size */ clear(): Messagebar; /** Focus messagebar textarea */ focus(): Messagebar; /** Remove focus from messagebar textarea */ blur(): Messagebar; /** Set/change messagebar placeholder text */ setPlaceholder(placeholder: string): Messagebar; /** Force Messagebar to resize messages page depending on messagebar height/size */ resizePage(): Messagebar; /** Dynamically create attachments block HTML element */ attachmentsCreate(): Messagebar; /** Show attachments block */ attachmentsShow(): Messagebar; /** Hide attachments block */ attachmentsHide(): Messagebar; /** Toggle attachments block */ attachmentsToggle(): Messagebar; /** Render attachments block based on attachments data */ renderAttachments(): Messagebar; /** Dynamically create messagebar sheet block HTML element */ sheetCreate(): Messagebar; /** Show messagebar sheet */ sheetShow(): Messagebar; /** Hide messagebar sheet */ sheetHide(): Messagebar; /** Toggle messagebar sheet */ sheetToggle(): Messagebar; /** Destroy messagebar instance */ destroy(): void; } interface Parameters { /** CSS selector or HTML element of messagebar element (div class="messagebar"). */ el: HTMLElement | CSSSelector; /** CSS selector or HTML element of messagebar textarea element. By default (if not passed) will try to look for textarea inside of messagebar. */ textareaEl?: HTMLElement | CSSSelector; /** Max height of textarea when it resized depending on amount of its text. (default null) */ maxHeight?: number; /** Array with attachments. For example ['path/to/image1.png', 'path/to/image2.png']. (default []) */ attachments?: string[]; /** Disable if you don't want to resize messages page when messagebar textarea size changed. (default true) */ resizePage?: boolean; /** Object with events handlers.. */ on?: { [event in keyof Events]?: Events[event]; }; /** Function to render attachments block. Must return full attachments HTML string. */ renderAttachments?: (attachments: string[]) => string; /** Function to render single attachment. Must return full attachment HTML string. */ renderAttachment?: (attachment: string) => string; } interface Events { /** Event will be triggered after messagebar textarea value changed. As an argument event handler receives messagebar instance */ change(messagebar: Messagebar): void; /** Event will be triggered when messagebar textarea gets focus. As an argument event handler receives messagebar instance */ focus(messagebar: Messagebar): void; /** Event will be triggered when messagebar textarea loses focus. As an argument event handler receives messagebar instance */ blur(messagebar: Messagebar): void; /** Event will be triggered when messagebar resizes messages page. As an argument event handler receives messagebar instance */ resizePage(messagebar: Messagebar): void; /** Event will be triggered after click on messagebar attachment delete button. As an argument event handler receives messagebar instance, clicked attachment HTML element and attachment index number */ attachmentDelete( messagebar: Messagebar, attachmentEl: HTMLElement, attachmentIndex: number, ): void; /** Event will be triggered on messagebar attachment click. As an argument event handler receives messagebar instance, clicked attachment HTML element and attachment index number */ attachmentClick( messagebar: Messagebar, attachmentEl: HTMLElement, attachmentIndex: number, ): void; /** Event will be triggered right before Messagebar instance will be destroyed */ beforeDestroy(messagebar: Messagebar): void; } interface DomEvents { /** Event will be triggered after messagebar textarea value changed */ 'messagebar:change': void; /** Event will be triggered when messagebar textarea gets focus */ 'messagebar:focus': void; /** Event will be triggered when messagebar textarea loses focus */ 'messagebar:blur': void; /** Event will be triggered when messagebar resizes messages page */ 'messagebar:resizepage': void; /** Event will be triggered after click on messagebar attachment delete button */ 'messagebar:attachmentdelete': void; /** Event will be triggered on messagebar attachment click */ 'messagebar:attachmentclick': void; /** Event will be triggered right before Messagebar instance will be destroyed */ 'messagebar:beforedestroy': void; } interface AppMethods { messagebar: { /** create Messagebar instance */ create(parameters: Parameters): Messagebar; /** destroy Messagebar instance */ destroy(el: HTMLElement | CSSSelector | Messagebar): void; /** get Messagebar instance by HTML element */ get(el: HTMLElement | CSSSelector): Messagebar; }; } interface AppParams { messagebar?: Parameters | undefined; } interface AppEvents { /** Event will be triggered after messagebar textarea value changed. As an argument event handler receives messagebar instance */ messagebarChange(messagebar: Messagebar): void; /** Event will be triggered when messagebar textarea gets focus. As an argument event handler receives messagebar instance */ messagebarFocus(messagebar: Messagebar): void; /** Event will be triggered when messagebar textarea loses focus. As an argument event handler receives messagebar instance */ messagebarBlur(messagebar: Messagebar): void; /** Event will be triggered when messagebar resizes messages page. As an argument event handler receives messagebar instance */ messagebarResizePage(messagebar: Messagebar): void; /** Event will be triggered after click on messagebar attachment delete button. As an argument event handler receives messagebar instance, clicked attachment HTML element and attachment index number */ messagebarAttachmentDelete( messagebar: Messagebar, attachmentEl: HTMLElement, attachmentIndex: number, ): void; /** Event will be triggered on messagebar attachment click. As an argument event handler receives messagebar instance, clicked attachment HTML element and attachment index number */ messagebarAttachmentClick( messagebar: Messagebar, attachmentEl: HTMLElement, attachmentIndex: number, ): void; /** Event will be triggered right before Messagebar instance will be destroyed */ messagebarBeforeDestroy(messagebar: Messagebar): void; } } declare const MessagebarComponent: Framework7Plugin; export default MessagebarComponent;