{"version":3,"file":"../country-select-313.min.js","sources":["country-select-313.js"],"sourcesContent":["/**\n * Country Select Script\n *\n * Replaces the original WooCommerce `country-select.js`.\n */\n\n/*global wc_country_select_params */\njQuery( function( $ ) {\n\n\t// wc_country_select_params is required to continue, ensure the object exists\n\tif ( typeof wc_country_select_params === 'undefined' ) {\n\t\treturn false;\n\t}\n\n\t// Select2 Enhancement if it exists\n\tif ( $().selectWoo ) {\n\t\tvar getEnhancedSelectFormatString = function() {\n\t\t\treturn {\n\t\t\t\t'language': {\n\t\t\t\t\terrorLoading: function() {\n\t\t\t\t\t\t// Workaround for https://github.com/select2/select2/issues/4355 instead of i18n_ajax_error.\n\t\t\t\t\t\treturn wc_country_select_params.i18n_searching;\n\t\t\t\t\t},\n\t\t\t\t\tinputTooLong: function( args ) {\n\t\t\t\t\t\tvar overChars = args.input.length - args.maximum;\n\n\t\t\t\t\t\tif ( 1 === overChars ) {\n\t\t\t\t\t\t\treturn wc_country_select_params.i18n_input_too_long_1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn wc_country_select_params.i18n_input_too_long_n.replace( '%qty%', overChars );\n\t\t\t\t\t},\n\t\t\t\t\tinputTooShort: function( args ) {\n\t\t\t\t\t\tvar remainingChars = args.minimum - args.input.length;\n\n\t\t\t\t\t\tif ( 1 === remainingChars ) {\n\t\t\t\t\t\t\treturn wc_country_select_params.i18n_input_too_short_1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn wc_country_select_params.i18n_input_too_short_n.replace( '%qty%', remainingChars );\n\t\t\t\t\t},\n\t\t\t\t\tloadingMore: function() {\n\t\t\t\t\t\treturn wc_country_select_params.i18n_load_more;\n\t\t\t\t\t},\n\t\t\t\t\tmaximumSelected: function( args ) {\n\t\t\t\t\t\tif ( args.maximum === 1 ) {\n\t\t\t\t\t\t\treturn wc_country_select_params.i18n_selection_too_long_1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn wc_country_select_params.i18n_selection_too_long_n.replace( '%qty%', args.maximum );\n\t\t\t\t\t},\n\t\t\t\t\tnoResults: function() {\n\t\t\t\t\t\treturn wc_country_select_params.i18n_no_matches;\n\t\t\t\t\t},\n\t\t\t\t\tsearching: function() {\n\t\t\t\t\t\treturn wc_country_select_params.i18n_searching;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\n\t\tvar wc_country_select_select2 = function() {\n\t\t\t// CHANGE: Run function code after a short delay,\n\t\t\t// to allow components to be completely rendered\n\t\t\trequestAnimationFrame(function(){\n\t\t\t\t// CHANGE: Allow building `select2` fields while not visible\n\t\t\t\t$( 'select.country_select, select.state_select' ).each( function() {\n\t\t\t\t\tvar $this = $( this );\n\n\t\t\t\t\t// CHANGE: Try to remove rendered `select2` elements before building it again\n\t\t\t\t\t$this.off( 'select2:select' );\n\t\t\t\t\t$this.parent().find( '.select2-container' ).remove();\n\t\n\t\t\t\t\tvar select2_args = $.extend({\n\t\t\t\t\t\tplaceholder: $this.attr( 'data-placeholder' ) || $this.attr( 'placeholder' ) || '',\n\t\t\t\t\t\tlabel: $this.attr( 'data-label' ) || null,\n\t\t\t\t\t\twidth: '100%'\n\t\t\t\t\t}, getEnhancedSelectFormatString() );\n\t\n\t\t\t\t\t$( this )\n\t\t\t\t\t\t.on( 'select2:select', function() {\n\t\t\t\t\t\t\t$( this ).trigger( 'focus' ); // Maintain focus after select https://github.com/select2/select2/issues/4384\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.selectWoo( select2_args );\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\twc_country_select_select2();\n\n\t\t// CHANGE: Rebuild `select2` fields in some cases\n\t\t$( document.body ).on( 'country_to_state_changed', wc_country_select_select2 );\n\t\t$( document.body ).on( 'updated_checkout', wc_country_select_select2 );\n\t\t$( document.body ).on( 'wc_fragments_refreshed', wc_country_select_select2 );\n\t}\n\n\t/* State/Country select boxes */\n\tvar states_json = wc_country_select_params.countries.replace( /"/g, '\"' ),\n\t\tstates = JSON.parse( states_json ),\n\t\twrapper_selectors = '.woocommerce-billing-fields,' +\n\t\t\t'.woocommerce-shipping-fields,' +\n\t\t\t'.woocommerce-address-fields,' +\n\t\t\t'.woocommerce-shipping-calculator';\n\n\t$( document.body ).on( 'change refresh', 'select.country_to_state, input.country_to_state', function() {\n\t\t// Grab wrapping element to target only stateboxes in same 'group'\n\t\tvar $wrapper = $( this ).closest( wrapper_selectors );\n\n\t\tif ( ! $wrapper.length ) {\n\t\t\t$wrapper = $( this ).closest('.form-row').parent();\n\t\t}\n\n\t\tvar country = $( this ).val(),\n\t\t\t// CHANGE: Add selector for address fields without prefix\n\t\t\t$statebox = $wrapper.find( '#state, #billing_state, #shipping_state, #calc_shipping_state' ),\n\t\t\t$parent = $statebox.closest( '.form-row' ),\n\t\t\tinput_name = $statebox.attr( 'name' ),\n\t\t\tinput_id = $statebox.attr('id'),\n\t\t\tinput_classes = $statebox.attr('data-input-classes'),\n\t\t\tvalue = $statebox.val(),\n\t\t\tplaceholder = $statebox.attr( 'placeholder' ) || $statebox.attr( 'data-placeholder' ) || '',\n\t\t\t$newstate;\n\n\t\tif ( states[ country ] ) {\n\t\t\tif ( $.isEmptyObject( states[ country ] ) ) {\n\t\t\t\t$newstate = $( '' )\n\t\t\t\t\t.prop( 'id', input_id )\n\t\t\t\t\t.prop( 'name', input_name )\n\t\t\t\t\t.prop( 'placeholder', placeholder )\n\t\t\t\t\t.attr( 'data-input-classes', input_classes )\n\t\t\t\t\t.addClass( 'hidden ' + input_classes );\n\t\t\t\t$parent.hide().find( '.select2-container' ).remove();\n\t\t\t\t$statebox.replaceWith( $newstate );\n\t\t\t\t$( document.body ).trigger( 'country_to_state_changed', [ country, $wrapper ] );\n\t\t\t} else {\n\t\t\t\tvar state = states[ country ],\n\t\t\t\t\t$defaultOption = $( '' ).text( wc_country_select_params.i18n_select_state_text );\n\n\t\t\t\tif ( ! placeholder ) {\n\t\t\t\t\tplaceholder = wc_country_select_params.i18n_select_state_text;\n\t\t\t\t}\n\n\t\t\t\t$parent.show();\n\n\t\t\t\tif ( $statebox.is( 'input' ) ) {\n\t\t\t\t\t$newstate = $( '' )\n\t\t\t\t\t\t.prop( 'id', input_id )\n\t\t\t\t\t\t.prop( 'name', input_name )\n\t\t\t\t\t\t.data( 'placeholder', placeholder )\n\t\t\t\t\t\t.attr( 'data-input-classes', input_classes )\n\t\t\t\t\t\t.addClass( 'state_select ' + input_classes );\n\t\t\t\t\t$statebox.replaceWith( $newstate );\n\t\t\t\t\t// CHANGE: Add selector for address fields without prefix\n\t\t\t\t\t$statebox = $wrapper.find( '#state, #billing_state, #shipping_state, #calc_shipping_state' );\n\t\t\t\t}\n\n\t\t\t\t$statebox.empty().append( $defaultOption );\n\n\t\t\t\t$.each( state, function( index ) {\n\t\t\t\t\tvar $option = $( '' )\n\t\t\t\t\t\t.prop( 'value', index )\n\t\t\t\t\t\t.text( state[ index ] );\n\t\t\t\t\t$statebox.append( $option );\n\t\t\t\t} );\n\n\t\t\t\t$statebox.val( value ).trigger( 'change' );\n\n\t\t\t\t$( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( $statebox.is( 'select, input[type=\"hidden\"]' ) ) {\n\t\t\t\t$newstate = $( '' )\n\t\t\t\t\t.prop( 'id', input_id )\n\t\t\t\t\t.prop( 'name', input_name )\n\t\t\t\t\t.prop('placeholder', placeholder)\n\t\t\t\t\t.attr('data-input-classes', input_classes )\n\t\t\t\t\t.addClass( 'input-text ' + input_classes );\n\t\t\t\t$parent.show().find( '.select2-container' ).remove();\n\t\t\t\t$statebox.replaceWith( $newstate );\n\t\t\t\t$( document.body ).trigger( 'country_to_state_changed', [country, $wrapper ] );\n\t\t\t}\n\t\t}\n\n\t\t$( document.body ).trigger( 'country_to_state_changing', [country, $wrapper ] );\n\t});\n\n\t$( document.body ).on( 'wc_address_i18n_ready', function() {\n\t\t// Init country selects with their default value once the page loads.\n\t\t$( wrapper_selectors ).each( function() {\n // CHANGE: Add selector for address fields without prefix\n\t\t\tvar $country_input = $( this ).find( '#country, #billing_country, #shipping_country, #calc_shipping_country' );\n\n\t\t\tif ( 0 === $country_input.length || 0 === $country_input.val().length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$country_input.trigger( 'refresh' );\n\t\t});\n\t});\n});\n"],"names":["jQuery","$","wc_country_select_params","selectWoo","wc_country_select_select2","requestAnimationFrame","each","$this","this","select2_args","off","parent","find","remove","extend","placeholder","attr","label","width","language","errorLoading","i18n_searching","inputTooLong","args","overChars","input","length","maximum","i18n_input_too_long_1","i18n_input_too_long_n","replace","inputTooShort","remainingChars","minimum","i18n_input_too_short_1","i18n_input_too_short_n","loadingMore","i18n_load_more","maximumSelected","i18n_selection_too_long_1","i18n_selection_too_long_n","noResults","i18n_no_matches","searching","on","trigger","document","body","states_json","countries","states","JSON","parse","wrapper_selectors","$newstate","state","$defaultOption","$wrapper","closest","country","val","$statebox","$parent","input_name","input_id","input_classes","value","isEmptyObject","prop","addClass","hide","replaceWith","text","i18n_select_state_text","show","is","data","empty","append","index","$option","$country_input"],"mappings":"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"}