<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="customer">
        <field name="prefix" formElement="input" sortOrder="1">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="firstname" formElement="input" sortOrder="2">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
            </settings>
        </field>
        <field name="middlename" sortOrder="3" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="lastname" sortOrder="4" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
            </settings>
        </field>
        <field name="suffix" sortOrder="5" formElement="input">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="email" sortOrder="6" formElement="email">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-email" xsi:type="boolean">true</rule>
                    <rule name="required-entry" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
            </settings>
        </field>
        <field name="dob" sortOrder="7" formElement="date">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <validation>
                    <rule name="validate-date" xsi:type="boolean">true</rule>
                    <rule name="validate-dob" xsi:type="boolean">true</rule>
                </validation>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
            <formElements>
                <date>
                    <settings>
                        <options>
                            <option name="maxDate" xsi:type="string">-1d</option>
                        </options>
                    </settings>
                </date>
            </formElements>
        </field>
        <field name="customer_address" formElement="input" sortOrder="8">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="customer_address" formElement="input" sortOrder="8">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="company" formElement="input" sortOrder="9">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="taxvat" formElement="input" sortOrder="10">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="gender" sortOrder="11" formElement="select">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>text</dataType>
                <visible>true</visible>
            </settings>
        </field>
        <field name="sendemail_store_id" formElement="select">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="source" xsi:type="string">customer</item>
                </item>
            </argument>
            <settings>
                <dataType>number</dataType>
                <label translate="true">Send Welcome Email From</label>
                <imports>
                    <link name="value">${ $.provider }:data.customer.store_id</link>
                </imports>
                <visible>false</visible>
            </settings>
            <formElements>
                <select>
                    <settings>
                        <options class="Magento\Store\Model\System\Store"/>
                    </settings>
                </select>
            </formElements>
        </field>
        <container name="container_group" component="Magento_Ui/js/form/components/group" sortOrder="20">
            <argument name="data" xsi:type="array">
                <item name="type" xsi:type="string">group</item>
                <item name="config" xsi:type="array">
                    <item name="dataScope" xsi:type="boolean">false</item>
                    <item name="validateWholeGroup" xsi:type="boolean">true</item>
                </item>
            </argument>
            <field name="group_id" formElement="select">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="fieldGroup" xsi:type="string">group_id</item>
                        <item name="source" xsi:type="string">customer</item>
                    </item>
                </argument>
                <settings>
                    <required>true</required>
                    <dataType>number</dataType>

                    <visible>false</visible>
                </settings>
            </field>
            <field name="disable_auto_group_change" formElement="checkbox" class="Magento\Customer\Ui\Component\Form\Field\DisableAutoGroupChange">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="fieldGroup" xsi:type="string">group_id</item>
                        <item name="source" xsi:type="string">customer</item>
                        <item name="default" xsi:type="number">0</item>
                    </item>
                </argument>
                <settings>

                    <visible>false</visible>
                    <dataType>boolean</dataType>
                </settings>
                <formElements>
                    <checkbox>
                        <settings>
                            <description translate="true">Disable Automatic Group Change Based on VAT ID</description>
                            <valueMap>
                                <map name="false" xsi:type="string">0</map>
                                <map name="true" xsi:type="string">1</map>
                            </valueMap>
                            <prefer>checkbox</prefer>
                        </settings>
                    </checkbox>
                </formElements>
            </field>
        </container>
        <field name="website_id" component="Magento_Ui/js/form/element/website" formElement="select">
            <settings>
                <visible>false</visible>
            </settings>
        </field>
    </fieldset>
    <fieldset name="address" class="Magento\Customer\Ui\Component\Form\AddressFieldset">
        <settings>
            <collapsible>false</collapsible>
            <label translate="true">Destination Address Book</label>
            <componentType>fieldset</componentType>
            <additionalClasses>
                <class name="customer-address-form">true</class>
            </additionalClasses>
        </settings>
        <container name="customer_default_billing_address_wrapper" template="CTSG_Account/default-address-hidden-wrapper">
        </container>
        <button name="add_address" component="Magento_Customer/js/address/default-address">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="formElement" xsi:type="string">container</item>
                    <item name="buttonClasses" xsi:type="string">add-new-address-button</item>
                    <item name="actions" xsi:type="array">
                        <item name="0" xsi:type="array">
                            <item name="targetName" xsi:type="string">${ $.parentName}.customer_address_update_modal.update_customer_address_form_loader</item>
                            <item name="actionName" xsi:type="string">destroyInserted</item>
                        </item>
                        <item name="1" xsi:type="array">
                            <item name="targetName" xsi:type="string">${ $.parentName}.customer_address_update_modal</item>
                            <item name="actionName" xsi:type="string">openModal</item>
                        </item>
                        <item name="2" xsi:type="array">
                            <item name="targetName" xsi:type="string">${ $.parentName}.customer_address_update_modal.update_customer_address_form_loader</item>
                            <item name="actionName" xsi:type="string">render</item>
                        </item>
                    </item>
                </item>
            </argument>
            <settings>
                <title translate="true">Add New Address</title>
                <imports>
                    <link name="parentId">${ $.provider}:data.customer_id</link>
                </imports>
            </settings>
        </button>
        <modal name="customer_address_update_modal">
            <settings>
                <options>
                    <option name="title" xsi:type="string">Add/Update Address</option>
                </options>
            </settings>
            <insertForm name="update_customer_address_form_loader" component="Magento_Customer/js/form/components/insert-form">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="addressListingProvider" xsi:type="string">ns = customer_address_listing, index = customer_address_listing</item>
                        <item name="addressModalProvider" xsi:type="string">${ $.parentName }</item>
                    </item>
                </argument>
                <settings>
                    <formSubmitType>ajax</formSubmitType>
                    <renderUrl path="mui/index/render_handle">
                        <param name="handle">customer_address_edit</param>
                        <param name="buttons">1</param>
                    </renderUrl>
                    <loading>false</loading>
                    <toolbarContainer>${ $.parentName }</toolbarContainer>
                    <externalProvider>${ $.ns }.customer_address_form_data_source</externalProvider>
                    <ns>customer_address_form</ns>
                    <exports>
                        <link name="parentId">${ $.externalProvider }:data.parent_id</link>
                    </exports>
                    <imports>
                        <link name="parentId">${ $.provider}:data.customer_id</link>
                        <link name="onAddressDelete">${ $.ns }.${ $.ns }:deleteAddressAction</link>
                    </imports>
                </settings>
            </insertForm>
        </modal>
        <insertListing name="customer_address_listing" component="Magento_Customer/js/form/components/insert-listing">
            <settings>
                <dataLinks>
                    <exports>false</exports>
                    <imports>true</imports>
                </dataLinks>
                <externalProvider>customer_address_listing.customer_address_listing_data_source</externalProvider>
                <selectionsProvider>customer_address_listing.customer_address_listing.customer_address_listing_columns.ids</selectionsProvider>
                <autoRender>true</autoRender>
                <dataScope>customer_address_listing</dataScope>
                <ns>customer_address_listing</ns>
                <exports>
                    <link name="parent_id">${ $.externalProvider }:params.parent_id</link>
                </exports>
                <imports>
                    <link name="parent_id">${ $.provider }:data.customer.entity_id</link>
                    <link name="onAction">ns = ${ $.ns }, index = actions:action</link>
                    <link name="onMassAction">ns = ${ $.ns }, index = listing_massaction:massaction</link>
                </imports>
            </settings>
        </insertListing>
    </fieldset>
</form>
