<?php if ( ! defined( 'ABSPATH' ) ) exit;

/**
 * Class NF_Field_Textbox
 */
class NF_Fields_Textbox extends NF_Abstracts_Input
{
    protected $_name = 'textbox';

    protected $_section = 'common';

    protected $_icon = 'text-width';

    protected $_aliases = array( 'input' );

    protected $_type = 'textbox';

    protected $_templates = 'textbox';

    protected $_test_value = 'Lorem ipsum';

    protected $_settings = array(
        'disable_browser_autocomplete',
	    'mask',
	    'custom_mask',
	    'custom_name_attribute',
	    'personally_identifiable'
    );

    public function __construct()
    {
        parent::__construct();

        $this->_nicename = esc_html__( 'Single Line Text', 'ninja-forms' );

        add_filter( 'ninja_forms_subs_export_field_value_' . $this->_name, array( $this, 'filter_csv_value' ), 10, 2 );
    }

    public function filter_csv_value( $field_value, $field ) {

        /*
         * sanitize this in case someone tries to inject data that runs in
         * Excel and similar apps
         * */
        if( 0 < strlen( $field_value ) ) {
            $first_char = substr( $field_value, 0, 1 );
            if( in_array( $first_char, array( '=', '@', '+', '-' ) ) ) {
                return "'" . $field_value;
            }
        }

        return $field_value;
    }
}
