1'use strict'; 2 3(function ($) { 4 $(function () { 5 woovr_init(); 6 }); 7 8 $(document).on('click touch mouseover', '.woovr-variations', function () { 9 $(this).attr('data-click', 1); 10 }); 11 12 $(document).on('click touch', '.woovr-variation-radio', function () { 13 var _this = $(this); 14 var _variations = _this.closest('.woovr-variations'); 15 var _click = parseInt(_variations.attr('data-click')); 16 var _variations_form = _this.closest('.variations_form'); 17 18 woovr_do_select(_this, _variations, _variations_form, _click); 19 20 _variations.find('.woovr-variation-radio').removeClass('woovr-variation-active'); 21 _this.addClass('woovr-variation-active').find('input[type="radio"]').prop('checked', true); 22 }); 23 24 $(document).on('change', '.woovr-variation-select', function () { 25 var _this = $(this); 26 var _variations = _this.closest('.woovr-variations'); 27 var _click = parseInt(_variations.attr('data-click')); 28 var _variations_form = _this.closest('.variations_form'); 29 var _selected = $('option:selected', this); 30 31 woovr_do_select(_selected, _variations, _variations_form, _click); 32 33 if (_selected.attr('data-imagesrc') !== '') { 34 _this.closest('.woovr-variation').find('.woovr-variation-image').html('<img src="' + _selected.attr('data-imagesrc') + '"/>'); 35 } else { 36 _this.closest('.woovr-variation').find('.woovr-variation-image').html(''); 37 } 38 39 _this.closest('.woovr-variation').find('.woovr-variation-price').html(_selected.attr('data-pricehtml')); 40 }); 41 42 $(document).on('found_variation', function (e, t) { 43 var variation_id = t['variation_id']; 44 var $variations_default = $(e['target']).find('.woovr-variations-default'); 45 var $variations_select = $(e['target']).find('.woovr-variations-select'); 46 var $variations_select2 = $(e['target']).find('.woovr-variations-select2'); 47 var $variations_ddslick = $(e['target']).find('.woovr-variations-ddslick'); 48 49 if ($variations_default.length && !$variations_default.closest('.wpc_variations_form').length) { 50 // radio 51 if (parseInt($variations_default.attr('data-click')) < 1) { 52 $variations_default.find('.woovr-variation-radio[data-id="' + variation_id + '"] input[type="radio"]').prop('checked', true); 53 } 54 } 55 56 if ($variations_select.length && !$variations_select.closest('.wpc_variations_form').length) { 57 // select 58 if (parseInt($variations_select.attr('data-click')) < 1) { 59 $variations_select.find('.woovr-variation-select').val(variation_id).trigger('change'); 60 } 61 } 62 63 if ($variations_select2.length && !$variations_select2.closest('.wpc_variations_form').length) { 64 // select2 65 if (parseInt($variations_select2.attr('data-click')) < 1) { 66 $variations_select2.find('.woovr-variation-select').val(variation_id).trigger('change'); 67 } 68 } 69 70 if ($variations_ddslick.length && !$variations_ddslick.closest('.wpc_variations_form').length) { 71 // ddslick 72 if (parseInt($variations_ddslick.attr('data-click')) < 1) { 73 var variation_index = $variations_ddslick.find('li:has(.dd-option-value[value="' + variation_id + '"])').index(); 74 75 $variations_ddslick.find('.dd-container').ddslick('select', {index: variation_index}); 76 } 77 } 78 }); 79 80 $(document).on('woosq_loaded', function () { 81 // wpc quick view popup 82 woovr_init(); 83 }); 84})(jQuery); 85 86function woovr_init() { 87 jQuery('.woovr-variations').each(function () { 88 var _variations = jQuery(this); 89 var _variations_form = jQuery(this).closest('.variations_form'); 90 var _select = _variations.find('select'); 91 92 if (_variations.hasClass('woovr-variations-ddslick')) { 93 _select.ddslick({ 94 width: '100%', onSelected: function (data) { 95 var _click = parseInt(_variations.attr('data-click')); 96 var _selected = jQuery(data.original[0].children[data.selectedIndex]); 97 98 if (!_variations.hasClass('woovr-variations-ddslick-checked-desc')) { 99 _variations.find('.dd-selected, .dd-option').each(function () { 100 if (!jQuery(this).find('.dd-desc').length) { 101 jQuery(this).addClass('dd-option-without-desc'); 102 } else { 103 jQuery(this).removeClass('dd-option-without-desc'); 104 } 105 }); 106 107 _variations.addClass('woovr-variations-ddslick-checked-desc'); 108 } 109 110 woovr_do_select(_selected, _variations, _variations_form, _click); 111 }, 112 }); 113 _variations.addClass('woovr-variations-ddslick-initialized'); 114 } else if (_variations.hasClass('woovr-variations-select2')) { 115 _select.select2({ 116 templateResult: woovr_select2_state, 117 width: '100%', 118 containerCssClass: 'wpc-select2-container', 119 dropdownCssClass: 'wpc-select2-dropdown', 120 }); 121 _select.trigger('change'); 122 } else if (_variations.hasClass('woovr-variations-select')) { 123 _select.trigger('change'); 124 } else if (_variations.hasClass('woovr-variations-default')) { 125 _variations.find('input[type="radio"]').each(function () { 126 if (jQuery(this).is(':checked')) { 127 jQuery(this).trigger('click'); 128 } 129 }); 130 } 131 }); 132} 133 134function woovr_select2_state(state) { 135 if (!state.id) { 136 return state.text; 137 } 138 139 var $state; 140 141 if (jQuery(state.element).attr('data-imagesrc') != '') { 142 $state = jQuery('<span class="image"><img src="' + jQuery(state.element).attr('data-imagesrc') + '"/></span><span class="info"><span>' + state.text + '</span> <span>' + jQuery(state.element).attr('data-description') + '</span></span>'); 143 } else { 144 $state = jQuery('<span class="info"><span>' + state.text + '</span> <span>' + jQuery(state.element).attr('data-description') + '</span></span>'); 145 } 146 147 return $state; 148} 149 150function woovr_do_select(selected, variations, variations_form, click) { 151 if (click > 0) { 152 // compatible with woobt/woosb/woosg/woofs 153 if (!variations.closest('.wpc_variations_form').length) { 154 if (selected.attr('data-attrs') !== '') { 155 var attrs = jQuery.parseJSON(selected.attr('data-attrs')); 156 157 if (attrs !== null) { 158 for (var key in attrs) { 159 var attr = key; 160 161 if (key.substr(0, 9) !== 'attribute') { 162 attr = 'attribute_' + key; 163 } 164 165 if (jQuery.isFunction(jQuery.escapeSelector)) { 166 if (!variations_form.find('select[name="' + attr + '"] option[value="' + jQuery.escapeSelector(attrs[key]) + '"]').length) { 167 variations_form.find('select[name="' + attr + '"]').append('<option value="' + attrs[key] + '">' + attrs[key] + '</option>'); 168 } 169 } else { 170 if (!variations_form.find('select[name="' + attr + '"] option[value="' + attrs[key] + '"]').length) { 171 variations_form.find('select[name="' + attr + '"]').append('<option value="' + attrs[key] + '">' + attrs[key] + '</option>'); 172 } 173 } 174 175 variations_form.find('select[name="' + attr + '"]').val(attrs[key]); 176 } 177 } 178 } else { 179 variations_form.find('.reset_variations').trigger('click'); 180 } 181 182 variations_form.find('select:not(.woovr-variation-select)').trigger('change'); 183 } 184 185 jQuery(document).trigger('woovr_selected_on_click', [selected, variations, variations_form]); 186 } 187 188 jQuery(document).trigger('woovr_selected', [selected, variations, variations_form]); 189}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.