isTab ( value ) {

        let bool = null;

        if( this.isNumber( value ) ) {

            bool = value === 9 ? true : false;

        } else {

            bool = ! _n.empty( value.isTab ) ? true : false;

        }

        return bool;

    }
/**
     * Because we hijacked tabbing materialize ninja adds
     * A custom param to the events object called isTab
     * Because of that calue can either be the keyCode value
     * Or the event value passed from an event
     *
     * @param ( int | obj ) value = keyCode || event
     */
Because we hijacked tabbing materialize ninja adds
A custom param to the events object called isTab
Because of that calue can either be the keyCode value
Or the event value passed from an event

@param ( int | obj ) value = keyCode || event
Because we hijacked tabbing materialize ninja adds A custom param to the events object called isTab Because of that calue can either be the keyCode value Or the event value passed from an event @param ( int | obj ) value = keyCode || event
isTab ( value ) {
        let bool = null;
        if( this.isNumber( value ) ) {
            bool = value === 9 ? true : false;
        } else {
            bool = ! _n.empty( value.isTab ) ? true : false;
        }
        return bool;
    }
isTab ( value ) { let bool = null ; if ( this . isNumber ( value ) ) { bool = value === 9 ? true : false ; } else { bool = ! _n . empty ( value . isTab ) ? true : false ; } return bool ; }
Because we hijacked tabbing materialize ninja adds
 A custom param to the events object called isTab
 Because of that calue can either be the keyCode value
 Or the event value passed from an event
Because we hijacked tabbing materialize ninja adds A custom param to the events object called isTab Because of that calue can either be the keyCode value Or the event value passed from an event