{% sw_extends "@Storefront/storefront/component/address/address-form.html.twig" %}
{% block component_address_form_address_fields %}
<div class="form-row">
{% block component_address_form_street %}
<div class="form-row m-0 p-0 form-street-input col-12">
{{ parent() }}
</div>
{% endblock %}
{% block component_address_form_zipcode_city %}
<div class="form-row m-0 p-0 form-zipcode-city-input col-12">
{{ parent() }}
</div>
{% endblock %}
{% block component_address_form_additional_field1 %}
{% if config('core.loginRegistration.showAdditionalAddressField1') %}
{% if formViolations.getViolations("/additionalAddressLine1") is not empty %}
{% set violationPath = "/additionalAddressLine1" %}
{% elseif formViolations.getViolations("/#{prefix}/additionalAddressLine1") is not empty %}
{% set violationPath = "/#{prefix}/additionalAddressLine1" %}
{% endif %}
<div class="form-group col-12">
{{ block('component_address_form_additional_field1_label') }}
{{ block('component_address_form_additional_field1_input') }}
{{ block('component_address_form_additional_field1_error') }}
</div>
{% endif %}
{% endblock %}
{% block component_address_form_additional_field2 %}
{% if config('core.loginRegistration.showAdditionalAddressField2') %}
{% if formViolations.getViolations("/additionalAddressLine2") is not empty %}
{% set violationPath = "/additionalAddressLine2" %}
{% elseif formViolations.getViolations("/#{prefix}/additionalAddressLine2") is not empty %}
{% set violationPath = "/#{prefix}/additionalAddressLine2" %}
{% endif %}
<div class="form-group col-12">
{{ block('component_address_form_additional_field2_label') }}
{{ block('component_address_form_additional_field2_input') }}
{{ block('component_address_form_additional_field2_error') }}
</div>
{% endif %}
{% endblock %}
</div>
<div class="form-row country-and-state-form-elements" data-country-state-select="true">
{% block component_address_form_country %}
<div class="form-group col-6">
{% set initialCountryId = null %}
{% if 'billing' in prefix %}
{% set initialCountryId = context.salesChannel.countryId %}
{% endif %}
{% if data.get('countryId') %}
{% set initialCountryId = data.get('countryId') %}
{% endif %}
{% if formViolations.getViolations("/countryId") is not empty %}
{% set violationPath = "/countryId" %}
{% elseif formViolations.getViolations("/#{prefix}/countryId") is not empty %}
{% set violationPath = "/#{prefix}/countryId" %}
{% endif %}
{% block component_address_form_country_label %}
<label class="form-label active input-valid"
for="{{ prefix }}AddressCountry">
{{ "address.countryLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
</label>
{% endblock %}
{% block component_address_form_country_select %}
<select class="country-select custom-select{% if violationPath %} is-invalid{% endif %} input-valid"
id="{{ prefix }}AddressCountry"
name="{{ prefix }}[countryId]"
required="required"
data-initial-country-id="{{ initialCountryId }}">
{% if not initialCountryId %}
<option disabled="disabled"
value=""
selected="selected">
{{ "address.countryPlaceholder"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
</option>
{% endif %}
{% for country in page.countries %}
<option {% if country.id == initialCountryId %}
selected="selected"
{% endif %}
value="{{ country.id }}"
{% if feature('FEATURE_NEXT_14114') %}
data-vat-id-required="{{ country.vatIdRequired }}"
{% endif %}
{% if feature('FEATURE_NEXT_15707') and not country.shippingAvailable and disableNonShippableCountries %}
disabled="disabled"
{% endif %}>
{{ country.translated.name }}{% if feature('FEATURE_NEXT_15707') and showNoShippingPostfix and not country.shippingAvailable %} {{ "address.countryPostfixNoShipping"|trans|sw_sanitize }}{% endif %}
</option>
{% endfor %}
</select>
{% endblock %}
</div>
<div class="form-group col-md-6 d-none">
{% if formViolations.getViolations("/countryStateId") is not empty %}
{% set violationPath = "/countryStateId" %}
{% elseif formViolations.getViolations("/#{prefix}/countryStateId") is not empty %}
{% set violationPath = "/#{prefix}/countryStateId" %}
{% endif %}
{{ block('component_address_form_country_state_label') }}
{{ block('component_address_form_country_state_select') }}
{{ block('component_address_form_country_error') }}
</div>
{% endblock %}
{% block component_address_form_phone_number %}
{% if config('core.loginRegistration.showPhoneNumberField') %}
<div class="form-group col-6">
{% if formViolations.getViolations("/phoneNumber") is not empty %}
{% set violationPath = "/phoneNumber" %}
{% elseif formViolations.getViolations("/#{prefix}/phoneNumber") is not empty %}
{% set violationPath = "/#{prefix}/phoneNumber" %}
{% endif %}
{% block component_address_form_phone_number_label %}
<label class="form-label{% if data.get('phoneNumber') %} active{% endif %}"
for="{{ prefix }}AddressPhoneNumber">
{{ "address.phoneNumberLabel"|trans|sw_sanitize }}{{ config('core.loginRegistration.phoneNumberFieldRequired') ? "general.required"|trans|sw_sanitize }}
</label>
{% endblock %}
{% block component_address_form_phone_number_input %}
<input type="tel"
pattern="[+]?[0-9]{8,}"
class="form-control"
id="{{ prefix }}AddressPhoneNumber"
placeholder="{{ "address.phoneNumberPlaceholder"|trans|striptags }}"
name="{{ prefix }}[phoneNumber]"
value="{{ data.get('phoneNumber') }}"
{{ config('core.loginRegistration.phoneNumberFieldRequired') ? 'required="true"' }}>
{% endblock %}
{{ block('component_address_form_phone_error') }}
</div>
{% endif %}
{% endblock %}
<button type="submit" class="d-none"></button>
</div>
{% endblock %}
{% block component_address_form_zipcode_label %}
<label class="form-label{% if data.get('zipcode') %} active{% endif %}"
for="{{ prefix }}AddressZipcode">
{{ "address.zipcodeLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
</label>
{% endblock %}
{% block component_address_form_city_label %}
<label class="form-label{% if data.get('city') %} active{% endif %}"
for="{{ prefix }}AddressCity">
{{ "address.cityLabel"|trans|sw_sanitize }}{{ "general.required"|trans|sw_sanitize }}
</label>
{% endblock %}