Current File : /home/exataengenharia/public_html/node_modules/@splidejs/splide/src/js/constructors/State/State.ts |
import { includes, toArray } from '../../utils';
/**
* The interface for the State object.
*
* @since 3.0.0
*/
export interface StateObject {
set( state: number ): void;
is( states: number | number[] ): boolean;
}
/**
* The function providing a super simple state system.
*
* @param initialState - Specifies the initial state.
*/
export function State( initialState: number ): StateObject {
/**
* The current state.
*/
let state = initialState;
/**
* Sets a new state.
*
* @param value - A new state value.
*/
function set( value: number ): void {
state = value;
}
/**
* Checks if the current state matches the provided one.
*
* @param states - A state to check.
*
* @return `true` if the current state is the provided one.
*/
function is( states: number | number[] ): boolean {
return includes( toArray( states ), state );
}
return { set, is };
}