1;(function ($, window, document, undefined) { 2 'use strict'; 3 4 Foundation.libs.equalizer = { 5 name : 'equalizer', 6 7 version : '5.5.3', 8 9 settings : { 10 use_tallest : true, 11 before_height_change : $.noop, 12 after_height_change : $.noop, 13 equalize_on_stack : false, 14 act_on_hidden_el: false 15 }, 16 17 init : function (scope, method, options) { 18 Foundation.inherit(this, 'image_loaded'); 19 this.bindings(method, options); 20 this.reflow(); 21 }, 22 23 events : function () { 24 this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) { 25 this.reflow(); 26 }.bind(this)); 27 }, 28 29 equalize : function (equalizer) { 30 var isStacked = false, 31 group = equalizer.data('equalizer'), 32 settings = equalizer.data(this.attr_name(true)+'-init') || this.settings, 33 vals, 34 firstTopOffset; 35 36 if (settings.act_on_hidden_el) { 37 vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]'); 38 } 39 else { 40 vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible'); 41 } 42 43 if (vals.length === 0) { 44 return; 45 } 46 47 settings.before_height_change(); 48 equalizer.trigger('before-height-change.fndth.equalizer'); 49 vals.height('inherit'); 50 51 if (settings.equalize_on_stack === false) { 52 firstTopOffset = vals.first().offset().top; 53 vals.each(function () { 54 if ($(this).offset().top !== firstTopOffset) { 55 isStacked = true; 56 return false; 57 } 58 }); 59 if (isStacked) { 60 return; 61 } 62 } 63 64 var heights = vals.map(function () { return $(this).outerHeight(false) }).get(); 65 66 if (settings.use_tallest) { 67 var max = Math.max.apply(null, heights); 68 vals.css('height', max); 69 } else { 70 var min = Math.min.apply(null, heights); 71 vals.css('height', min); 72 } 73 74 settings.after_height_change(); 75 equalizer.trigger('after-height-change.fndtn.equalizer'); 76 }, 77 78 reflow : function () { 79 var self = this; 80 81 this.S('[' + this.attr_name() + ']', this.scope).each(function () { 82 var $eq_target = $(this), 83 media_query = $eq_target.data('equalizer-mq'), 84 ignore_media_query = true; 85 86 if (media_query) { 87 media_query = 'is_' + media_query.replace(/-/g, '_'); 88 if (Foundation.utils.hasOwnProperty(media_query)) { 89 ignore_media_query = false; 90 } 91 } 92 93 self.image_loaded(self.S('img', this), function () { 94 if (ignore_media_query || Foundation.utils[media_query]()) { 95 self.equalize($eq_target) 96 } else { 97 var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible'); 98 vals.css('height', 'auto'); 99 } 100 }); 101 }); 102 } 103 }; 104})(jQuery, window, window.document);
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.