= f.fields_for method, (address || f.object.send(method) || f.object.addresses.build(category: method.to_s.gsub('_address', ''))) do |fa| - uuid = fa.object_id - method = method.to_sym - same_as_billing = (fa.object.category == 'shipping') && f.object.try(:shipping_address_same_as_billing?) - required = (required && !same_as_billing) - wrapper_options = { class: "form-group #{method}_form_group", style: ('display: none;' if same_as_billing) } - if ((f.object.errors.include?(method) && !f.object.errors.include?(:addresses)) rescue false) = f.errors method - if fa.object.category == 'shipping' && f.object.respond_to?(:shipping_address_same_as_billing?) = fa.check_box :shipping_address_same_as_billing, label: 'Shipping address is same as billing address', required: false, feedback: false, input_html: { checked: same_as_billing } - if local_assigns[:use_full_name] || EffectiveAddresses.use_full_name || fa.object.errors.include?(:full_name) = fa.text_field :full_name, required: required, disabled: same_as_billing, wrapper: wrapper_options = fa.text_field :address1, label: (local_assigns[:label] || method.to_s.titleize), required: required, disabled: same_as_billing, wrapper: wrapper_options = fa.text_field :address2, label: false, required: false, disabled: same_as_billing, wrapper: wrapper_options - if EffectiveAddresses.use_address3 = fa.text_field :address3, label: false, required: false, disabled: same_as_billing, wrapper: wrapper_options = fa.text_field :city, required: required, disabled: same_as_billing, input_html: { 'data-effective-address-city' => uuid }, wrapper: wrapper_options .row .col-md-4 = fa.select :country_code, effective_address_regions_collection(resource: fa.object), label: 'Country', required: required, disabled: same_as_billing, input_html: { 'data-effective-address-country' => uuid }, wrapper: wrapper_options .col-md-5 - subregions = Carmen::Country.coded(fa.object.country_code).try(:subregions) if fa.object.country_code.present? - if subregions.present? = fa.select :state_code, effective_address_regions_collection(subregions), label: 'State / Province', required: required, disabled: same_as_billing, input_html: { 'data-effective-address-state' => uuid }, wrapper: wrapper_options - else = fa.select :state_code, [], label: 'State / Province', required: required, disabled: true, input_html: { 'data-effective-address-state' => uuid }, input_js: { placeholder: 'Please choose country first' }, wrapper: wrapper_options .col-md-3 = fa.text_field :postal_code, label: 'Postal Code', required: required, disabled: same_as_billing, input_html: { 'data-effective-address-postal-code' => uuid }, wrapper: wrapper_options