File "State.ts"
Full path: /home/fsibplc/public_html/sommilito-bank2/splide-4.1.3/src/js/constructors/State/State.ts
File
size: 928 B (928 B bytes)
MIME-type: text/x-java
Charset: utf-8
Download Open Edit Advanced Editor Back
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 };
}