/**
 * BoldSign API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { RequestFile } from './models';
import { AttachmentInfo } from './attachmentInfo';
import { CollaborationSettings } from './collaborationSettings';
import { ConditionalRule } from './conditionalRule';
import { EditableDateFieldSettings } from './editableDateFieldSettings';
import { FormulaFieldSettings } from './formulaFieldSettings';
import { ImageInfo } from './imageInfo';
import { Rectangle } from './rectangle';

export class FormField {
    'fieldType': FormField.FieldTypeEnum;
    'pageNumber': number;
    'bounds': Rectangle;
    'id'?: string | null;
    'name'?: string | null;
    'isRequired'?: boolean;
    'isReadOnly'?: boolean;
    'value'?: string | null;
    'fontSize'?: number;
    'font'?: FormField.FontEnum;
    'fontHexColor'?: string | null;
    'isBoldFont'?: boolean;
    'isItalicFont'?: boolean;
    'isUnderLineFont'?: boolean;
    'lineHeight'?: number;
    'characterLimit'?: number;
    'groupName'?: string | null;
    'label'?: string | null;
    'placeHolder'?: string | null;
    'validationType'?: FormField.ValidationTypeEnum;
    'validationCustomRegex'?: string | null;
    'validationCustomRegexMessage'?: string | null;
    'dateFormat'?: string | null;
    'timeFormat'?: string | null;
    'imageInfo'?: ImageInfo;
    'attachmentInfo'?: AttachmentInfo;
    'editableDateFieldSettings'?: EditableDateFieldSettings;
    'hyperlinkText'?: string | null;
    'conditionalRules'?: Array<ConditionalRule> | null;
    'dataSyncTag'?: string | null;
    'dropdownOptions'?: Array<string> | null;
    'textAlign'?: FormField.TextAlignEnum;
    'textDirection'?: FormField.TextDirectionEnum;
    'characterSpacing'?: number;
    'backgroundHexColor'?: string | null;
    'tabIndex'?: number | null;
    'formulaFieldSettings'?: FormulaFieldSettings;
    'resizeOption'?: FormField.ResizeOptionEnum;
    'allowEditFormField'?: boolean | null;
    'allowDeleteFormField'?: boolean | null;
    'collaborationSettings'?: CollaborationSettings;
    'isMasked'?: boolean | null = false;
    'isDefaultValueRequired'?: boolean | null;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "fieldType",
            "baseName": "fieldType",
            "type": "FormField.FieldTypeEnum"
        },
        {
            "name": "pageNumber",
            "baseName": "pageNumber",
            "type": "number"
        },
        {
            "name": "bounds",
            "baseName": "bounds",
            "type": "Rectangle"
        },
        {
            "name": "id",
            "baseName": "id",
            "type": "string"
        },
        {
            "name": "name",
            "baseName": "name",
            "type": "string"
        },
        {
            "name": "isRequired",
            "baseName": "isRequired",
            "type": "boolean"
        },
        {
            "name": "isReadOnly",
            "baseName": "isReadOnly",
            "type": "boolean"
        },
        {
            "name": "value",
            "baseName": "value",
            "type": "string"
        },
        {
            "name": "fontSize",
            "baseName": "fontSize",
            "type": "number"
        },
        {
            "name": "font",
            "baseName": "font",
            "type": "FormField.FontEnum"
        },
        {
            "name": "fontHexColor",
            "baseName": "fontHexColor",
            "type": "string"
        },
        {
            "name": "isBoldFont",
            "baseName": "isBoldFont",
            "type": "boolean"
        },
        {
            "name": "isItalicFont",
            "baseName": "isItalicFont",
            "type": "boolean"
        },
        {
            "name": "isUnderLineFont",
            "baseName": "isUnderLineFont",
            "type": "boolean"
        },
        {
            "name": "lineHeight",
            "baseName": "lineHeight",
            "type": "number"
        },
        {
            "name": "characterLimit",
            "baseName": "characterLimit",
            "type": "number"
        },
        {
            "name": "groupName",
            "baseName": "groupName",
            "type": "string"
        },
        {
            "name": "label",
            "baseName": "label",
            "type": "string"
        },
        {
            "name": "placeHolder",
            "baseName": "placeHolder",
            "type": "string"
        },
        {
            "name": "validationType",
            "baseName": "validationType",
            "type": "FormField.ValidationTypeEnum"
        },
        {
            "name": "validationCustomRegex",
            "baseName": "validationCustomRegex",
            "type": "string"
        },
        {
            "name": "validationCustomRegexMessage",
            "baseName": "validationCustomRegexMessage",
            "type": "string"
        },
        {
            "name": "dateFormat",
            "baseName": "dateFormat",
            "type": "string"
        },
        {
            "name": "timeFormat",
            "baseName": "timeFormat",
            "type": "string"
        },
        {
            "name": "imageInfo",
            "baseName": "imageInfo",
            "type": "ImageInfo"
        },
        {
            "name": "attachmentInfo",
            "baseName": "attachmentInfo",
            "type": "AttachmentInfo"
        },
        {
            "name": "editableDateFieldSettings",
            "baseName": "editableDateFieldSettings",
            "type": "EditableDateFieldSettings"
        },
        {
            "name": "hyperlinkText",
            "baseName": "hyperlinkText",
            "type": "string"
        },
        {
            "name": "conditionalRules",
            "baseName": "conditionalRules",
            "type": "Array<ConditionalRule>"
        },
        {
            "name": "dataSyncTag",
            "baseName": "dataSyncTag",
            "type": "string"
        },
        {
            "name": "dropdownOptions",
            "baseName": "dropdownOptions",
            "type": "Array<string>"
        },
        {
            "name": "textAlign",
            "baseName": "textAlign",
            "type": "FormField.TextAlignEnum"
        },
        {
            "name": "textDirection",
            "baseName": "textDirection",
            "type": "FormField.TextDirectionEnum"
        },
        {
            "name": "characterSpacing",
            "baseName": "characterSpacing",
            "type": "number"
        },
        {
            "name": "backgroundHexColor",
            "baseName": "backgroundHexColor",
            "type": "string"
        },
        {
            "name": "tabIndex",
            "baseName": "tabIndex",
            "type": "number"
        },
        {
            "name": "formulaFieldSettings",
            "baseName": "formulaFieldSettings",
            "type": "FormulaFieldSettings"
        },
        {
            "name": "resizeOption",
            "baseName": "resizeOption",
            "type": "FormField.ResizeOptionEnum"
        },
        {
            "name": "allowEditFormField",
            "baseName": "allowEditFormField",
            "type": "boolean"
        },
        {
            "name": "allowDeleteFormField",
            "baseName": "allowDeleteFormField",
            "type": "boolean"
        },
        {
            "name": "collaborationSettings",
            "baseName": "collaborationSettings",
            "type": "CollaborationSettings"
        },
        {
            "name": "isMasked",
            "baseName": "isMasked",
            "type": "boolean"
        },
        {
            "name": "isDefaultValueRequired",
            "baseName": "isDefaultValueRequired",
            "type": "boolean"
        }    ];

    static getAttributeTypeMap() {
        return FormField.attributeTypeMap;
    }
}

export namespace FormField {
    export enum FieldTypeEnum {
        Signature = <any> 'Signature',
        Initial = <any> 'Initial',
        CheckBox = <any> 'CheckBox',
        TextBox = <any> 'TextBox',
        Label = <any> 'Label',
        DateSigned = <any> 'DateSigned',
        RadioButton = <any> 'RadioButton',
        Image = <any> 'Image',
        Attachment = <any> 'Attachment',
        EditableDate = <any> 'EditableDate',
        Hyperlink = <any> 'Hyperlink',
        Dropdown = <any> 'Dropdown',
        Title = <any> 'Title',
        Company = <any> 'Company',
        Formula = <any> 'Formula',
        Drawing = <any> 'Drawing'
    }
    export enum FontEnum {
        Helvetica = <any> 'Helvetica',
        Courier = <any> 'Courier',
        TimesRoman = <any> 'TimesRoman',
        NotoSans = <any> 'NotoSans',
        Carlito = <any> 'Carlito'
    }
    export enum ValidationTypeEnum {
        None = <any> 'None',
        NumbersOnly = <any> 'NumbersOnly',
        EmailAddress = <any> 'EmailAddress',
        Currency = <any> 'Currency',
        CustomRegex = <any> 'CustomRegex'
    }
    export enum TextAlignEnum {
        Left = <any> 'Left',
        Center = <any> 'Center',
        Right = <any> 'Right'
    }
    export enum TextDirectionEnum {
        Ltr = <any> 'LTR',
        Rtl = <any> 'RTL'
    }
    export enum ResizeOptionEnum {
        GrowVertically = <any> 'GrowVertically',
        GrowHorizontally = <any> 'GrowHorizontally',
        GrowBoth = <any> 'GrowBoth',
        Fixed = <any> 'Fixed',
        AutoResizeFont = <any> 'AutoResizeFont'
    }
}
