<aura:component description="AuraInput">
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
    <aura:method name="validate" action="{!c.validate}" access="public"/>
    <aura:method name="updateValue" action="{!c.updateValue}" access="public">
        <aura:attribute name="value" type="String" default="" description="Value To Set" />
        <aura:attribute name="refresh" type="Boolean" default="true" description="Fires input change event" />
    </aura:method>
    <aura:attribute name="value" type="Map" access="public"/>
    <aura:attribute name="type" type="String" access="public"/>
    <aura:attribute name="fieldName" type="String" access="public"/>
    <aura:attribute name="QA_name" type="String" access="public"/>
    <aura:attribute name="label" type="String" access="public"/>
    <aura:attribute name="required" type="Boolean" access="public"/>
    <aura:attribute name="secondaryGroup" type="String" access="public"/>
    <aura:attribute name="fireChangeEvent" type="Boolean" default="false" access="public"/>
    <aura:attribute name="useSecondaryId" type="Boolean" default="false" access="public"/>
    <aura:attribute name="suppressValidationMessages" type="Boolean" default="false" access="public"/>
    <aura:attribute name="secondaryId" type="String" access="public"/>
    <aura:attribute name="helpText" type="String" access="public"/>
    <aura:attribute name="group" type="String" access="public"/>
    <aura:attribute name="selectOptions" type="List" access="public"/>
    <aura:attribute name="otherAttributes" type="Map" access="public"/>
    <aura:attribute name="styleClasses" type="String" access="public"/>
    <aura:attribute name="sObjectName" type="String" access="public"/>

    <aura:if isTrue="{!v.type == 'date'}">
        <c:pfmInput
                aura:id="pfmInput"
                type="date"
                delimiter="/"
                locale=""
                minYear="1900"
                maxYear="2100"
                label="{!v.label}"
                fieldId="{!v.fieldName}"
                required="{!v.required}"
                val="{!v.value}"
                name="{!v.fieldName}"
                QA_name="{!v.QA_name || v.fieldName}"
                onvaluechange="{!c.pfmValueChange}"
        ></c:pfmInput>
        <aura:set attribute="else">
            <div aura:id="frameworkInput"></div>
        </aura:set>
    </aura:if>
</aura:component>
