UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

117 lines (113 loc) 5.26 kB
import { Dom7Instance } from 'dom7'; import Framework7, { CSSSelector, Framework7EventsClass, Framework7Plugin } from '../app/app-class'; export namespace Stepper { interface Parameters { /** Stepper element. HTMLElement or string with CSS selector of stepper element */ el: HTMLElement | CSSSelector /** Stepper input element or CSS selector of input element. If not specified, will try to look for <input> inside of stepper element */ inputEl?: HTMLElement | CSSSelector /** Minimal step between values (default 1) */ step?: number /** Minimum value (default 0) */ min?: number /** Maximum value (default 100) */ max?: number /** Initial value (default 0) */ value?: number /** When enabled, incrementing beyond maximum value sets value to minimum value; likewise, decrementing below minimum value sets value to maximum value (default false) */ wraps?: boolean /** When enabled it will repeatedly increase/decrease values while you tap and hold plus/minus buttons (default false) */ autorepeat?: boolean /** When enabled it will increase autorepeat ratio based on how long you hold the button (default false) */ autorepeatDynamic?: boolean /** Stepper value element or CSS selector of this element where Stepper will insert value. If not specified, and there is no inputEl passed will try to look for <div class="stepper-value"> inside of stepper element */ valueEl?: HTMLElement | CSSSelector /** Function to format value in required format. It accepts current value and must return new formatted value */ formatValue?: (value: number) => string | number /** */ manualInputMode?: boolean /** Enables manual input mode. This mode allows to type value from keyboar and check fractional part with defined accurancy. Also, step parameter is ignored when typing in this mode */ decimalPoint?: number /** Number of digits after dot, when in manual input mode */ buttonsEndInputMode?: boolean /** Object with events handlers.. */ on?: { [event in keyof Events]? : Events[event] } } interface Stepper extends Framework7EventsClass<Events> { /** Link to global app instance */ app : Framework7 /** Stepper HTML element */ el : HTMLElement /** Dom7 instance with stepper HTML element */ $el : Dom7Instance /** Stepper min value */ min: number /** Stepper max value */ max: number /** Stepper value */ value: number /** Stepper input HTML element */ inputEl: HTMLElement /** Dom7 instance with stepper input HTML element */ $inputEl: Dom7Instance /** Stepper value container HTML element */ valueEl: HTMLElement /** Dom7 instance with stepper value container HTML element */ $valueEl: HTMLElement /** Stepper parameters */ params : Parameters /** Returns stepper value */ getValue(): number /** Set new stepper value */ setValue(value: number): Stepper /** Increment stepper value, similar to clicking on its "plus" button */ incremenet(): Stepper /** Increment stepper value, similar to clicking on its "plus" button */ plus(): Stepper /** Decrement stepper value, similar to clicking on its "minus" button */ decrement(): Stepper /** Decrement stepper value, similar to clicking on its "minus" button */ minus(): Stepper /** Destroy stepper */ destroy() : void } interface Events { /** Event will be triggered when stepper value has been changed. As an argument event handler receives stepper instance and stepper value */ change: (stepper : Stepper, value: number) => void /** Event will be triggered right before Stepper instance will be destroyed. As an argument event handler receives stepper instance */ beforeDestroy: (stepper : Stepper) => void } interface DomEvents { /** Event will be triggered when Stepper value has been changed*/ 'stepper:change' : () => void /** Event will be triggered right before Stepper instance will be destroyed */ 'stepper:beforedestroy' : () => void } interface AppMethods { stepper: { /** create Stepper instance */ create(parameters: Parameters): Stepper /** get Stepper instance by HTML element */ get(el: HTMLElement | CSSSelector | Stepper): Stepper /** get Stepper value */ getValue(el: HTMLElement | CSSSelector | Stepper): number | number[] /** set new Stepper value */ setValue(el: HTMLElement | CSSSelector | Stepper, value: number | number[]): void /** destroy Stepper instance */ destroy(el : HTMLElement | CSSSelector | Stepper) : void } } interface AppParams { stepper?: Parameters | undefined } interface AppEvents { /** Event will be triggered when stepper value has been changed. As an argument event handler receives stepper instance and stepper value */ stepperChange: (stepper : Stepper, value: number) => void /** Event will be triggered right before Stepper instance will be destroyed. As an argument event handler receives stepper instance */ stepperBeforeDestroy: (stepper : Stepper) => void } } declare const StepperComponent: Framework7Plugin; export default StepperComponent;