framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
112 lines (107 loc) • 5.63 kB
TypeScript
import { Dom7Instance } from 'dom7';
import Framework7, { CSSSelector, Framework7EventsClass, Framework7Plugin } from '../app/app-class';
export namespace Sheet {
interface Events {
/** Event will be triggered when Sheet Modal starts its opening animation. As an argument event handler receives sheet instance */
open: (sheet : Sheet) => void
/** Event will be triggered when Sheet Modal completes its opening animation. As an argument event handler receives sheet instance */
opened: (sheet : Sheet) => void
/** Event will be triggered when Sheet Modal starts its closing animation. As an argument event handler receives sheet instance */
close: (sheet : Sheet) => void
/** Event will be triggered after Sheet Modal completes its closing animation. As an argument event handler receives sheet instance */
closed: (sheet : Sheet) => void
/** Event will be triggered right before Sheet Modal instance will be destroyed */
beforeDestroy: (sheet : Sheet) => void
}
interface Parameters {
/** Sheet Modal element. Can be useful if you already have Sheet Modal element in your HTML and want to create new instance using this element. */
el?: HTMLElement | CSSSelector
/** Full Sheet Modal HTML layout string. Can be useful if you want to create Sheet Modal element dynamically. */
content?: string
/** Enables Sheet Modal backdrop (dark semi transparent layer behind). (default true) */
backdrop?: boolean
/** HTML element or string (with CSS selector) of element. If specified, then sheet will try to scroll page content to this element on open */
scrollToEl?: HTMLElement | CSSSelector
/** When enabled, Sheet Modal will be closed on backdrop click. (default true) */
closeByBackdropClick?: boolean
/** When enabled, sheet will be closed on when click outside of it */
closeByOutsideClick?: boolean
/** Whether the Sheet Modal should be opened/closed with animation or not. Can be overwritten in .open() and .close() methods. (default true) */
animate?: boolean
/** When enabled it will be possible to close sheet with swipe, can be false or true (default false) */
swipeToClose?: boolean
/** When enabled it will be possible to split opened sheet into two states: partially opened and fully opened that can be controlled with swipe (default false) */
swipeToStep?: boolean
/** When enabled it will be possible to close sheet with swipe only on specified handler element (default null) */
swipeHandler?: HTMLElement | CSSSelector
/** When enabled it will push view behind on open. Works only when top safe area is in place. It can also be enabled by adding `sheet-modal-push` class to Sheet element. (default false) */
push?: boolean
/** Object with events handlers.. */
on?: {
[]? : Events[event]
}
}
interface Sheet extends Framework7EventsClass<Events> {
/** Link to global app instance */
app : Framework7
/** Sheet Modal HTML element */
el : HTMLElement
/** Dom7 instance with Sheet Modal HTML element */
$el : Dom7Instance
/** Backdrop HTML element */
backdropEl : HTMLElement
/** Dom7 instance with backdrop HTML element */
$backdropEl: Dom7Instance
/** sheet parameters */
params : Parameters
/** Boolean prop indicating whether sheet is opened or not */
opened : boolean
/** Open sheet. */
open(animate?: boolean) : Sheet
/** Close sheet. */
close(animate?: boolean) : Sheet
/** Destroy sheet */
destroy() : void
}
interface DomEvents {
/** Event will be triggered when Sheet Modal starts its opening animation */
'sheet:open' : () => void
/** Event will be triggered after Sheet Modal completes its opening animation */
'sheet:opened' : () => void
/** Event will be triggered when Sheet Modal starts its closing animation */
'sheet:close' : () => void
/** Event will be triggered after Sheet Modal completes its closing animation */
'sheet:closed' : () => void
}
interface AppMethods {
sheet: {
/** create Sheet Modal instance */
create(parameters : Parameters) : Sheet
/** destroy Sheet Modal instance */
destroy(el : HTMLElement | CSSSelector | Sheet) : void
/** get Sheet Modal instance by HTML element */
get(el? : HTMLElement | CSSSelector) : Sheet
/** open Sheet Modal */
open(el? : HTMLElement | CSSSelector, animate?: boolean) : Sheet
/** closes Sheet Modal */
close(el? : HTMLElement | CSSSelector, animate?: boolean) : Sheet
}
}
interface AppParams {
sheet?: Parameters | undefined
}
interface AppEvents {
/** Event will be triggered when Sheet Modal starts its opening animation. As an argument event handler receives sheet instance */
sheetOpen: (sheet : Sheet) => void
/** Event will be triggered when Sheet Modal completes its opening animation. As an argument event handler receives sheet instance */
sheetOpened: (sheet : Sheet) => void
/** Event will be triggered when Sheet Modal starts its closing animation. As an argument event handler receives sheet instance */
sheetClose: (sheet : Sheet) => void
/** Event will be triggered after Sheet Modal completes its closing animation. As an argument event handler receives sheet instance */
sheetClosed: (sheet : Sheet) => void
/** Event will be triggered right before Sheet Modal instance will be destroyed */
sheetBeforeDestroy: (sheet : Sheet) => void
}
}
declare const SheetComponent: Framework7Plugin;
export default SheetComponent;