1jQuery(function($) { 2 3 window.ds_counter_counter_reset = function (counter) { 4 counter.removeData('easyPieChart'); 5 counter.find('canvas').remove(); 6 7 var count_from = counter.attr('data-count-from') ? counter.attr('data-count-from') : 0; 8 var number = Math.round(parseInt(count_from)); 9 counter.find('.ds_counter_counter_number').text(number); 10 11 ds_counter_counter_reinit(counter); 12 13 ds_counter_counter_update_on_waypoint(counter); 14 } 15 16 window.ds_counter_counter_init = function (counter) { 17 18 var count_duration = counter.attr('data-count-duration') ? counter.attr('data-count-duration') : 2000; 19 var count_to = counter.attr('data-count-to') ? counter.attr('data-count-to') : 0; 20 var count_from = counter.attr('data-count-from') ? counter.attr('data-count-from') : 0; 21 var decimal_places = counter.attr('data-decimal-places') ? counter.attr('data-decimal-places') : Math.max(ds_counter_get_decimal_places(count_to), ds_counter_get_decimal_places(count_from)); 22 var show_decimals = count_to % 1 !== 0 || count_from % 1 !== 0 || counter.attr('data-force-decimal-places'); 23 var counter_type = counter.attr('data-counter-type') ? counter.attr('data-counter-type') : 'number'; 24 var circle_percent = counter.attr('data-circle-percent') ? counter.attr('data-circle-percent') : 100; 25 var separator = counter.attr('data-number-separator') ? counter.attr('data-number-separator') : ''; 26 var decimal_separator = counter.attr('data-number-decimal-separator') ? counter.attr('data-number-decimal-separator') : ''; 27 28 var size = 0; 29 var trackColor = false; 30 var lineWidth = 0; 31 var barColor = false; 32 var trackAlpha = false; 33 var lineCap = false; 34 var scaleColor = false; 35 var scaleLength = 0; 36 var scaleWidth = 0; 37 var scaleCount = 0; 38 var scaleLongInterval = 0; 39 var scaleShortPercent = 0; 40 var rotate = 0; 41 42 //Setup Circular counter if necessary 43 if ('circle' === counter_type) { 44 45 size = counter.attr('data-circle-size') ? counter.attr('data-circle-size') : counter.width(); 46 trackColor = counter.attr('data-circle-track-color'); 47 lineWidth = Math.min(counter.attr('data-circle-line-width'), size); 48 barColor = counter.attr('data-circle-bar-color'); 49 // trackAlpha = counter.attr('data-circle-track-alpha'); 50 lineCap = counter.attr('data-circle-line-cap'); 51 scaleColor = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-color') : false; 52 scaleLength = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-length') : false; 53 scaleWidth = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-width') : false; 54 if (scaleLength) { 55 let orgLineWidth = lineWidth; 56 lineWidth = Math.min(counter.attr('data-circle-line-width'), size - (2 * scaleLength) - 4); 57 } 58 scaleCount = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-count') : false; 59 scaleLongInterval = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-long-interval') : false; 60 scaleShortPercent = counter.attr('data-circle-use-scale') === 'true' ? counter.attr('data-circle-scale-short-percent') : false; 61 62 rotate = counter.attr('data-circle-rotate'); 63 } 64 65 counter.senseiPieChart({ 66 animate: { 67 duration: count_duration, 68 enabled: true 69 }, 70 // easing: 'easeOutBounce', 71 size: size, 72 barColor: barColor, 73 trackColor: trackColor, 74 // trackAlpha: trackAlpha, 75 lineWidth: lineWidth, 76 lineCap: lineCap, 77 scaleColor: scaleColor, 78 scaleLength: parseInt(scaleLength), 79 scaleWidth: parseInt(scaleWidth), 80 scaleCount: parseInt(scaleCount), 81 scaleLongInterval: parseInt(scaleLongInterval), 82 scaleShortPercent: parseInt(scaleShortPercent), 83 rotate: rotate, 84 onStart: function () { 85 }, 86 onStep: function (from, to, percent) { 87 //Normalize percent
88 if ('circle' === counter_type) { 89 percent = 0 == circle_percent ? percent : percent * 100 / circle_percent; 90 } 91 92 var number = count_from - (count_from - count_to) * (percent / 100); 93 number = !show_decimals ? Math.round(parseInt(number)) : ds_counter_round(number, decimal_places).toFixed(decimal_places); 94 number = window.ds_format_number(number, separator, decimal_separator); 95 $(this.el).find('.et_pb_jt_counter_number_number').text(number); 96 }, 97 onStop: function (from, to) { 98 var number = !show_decimals ? Math.round(parseInt(count_to)) : ds_counter_round(count_to, decimal_places).toFixed(decimal_places); 99 number = window.ds_format_number(number, separator, decimal_separator); 100 $(this.el).find('.et_pb_jt_counter_number_number').text(number); 101 } 102 }); 103 104 } 105 106 window.ds_counter_round = function (number, precision) { 107 if (number == 0) return 0; 108 var factor = Math.pow(10, precision); 109 var tempNumber = number * factor; 110 var roundedTempNumber = Math.round(tempNumber); 111 return roundedTempNumber / factor; 112 }; 113 114 115 window.ds_counter_get_decimal_places = function (number) { 116 var match = ('' + number).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); 117 if (!match) { return 0; } 118 return Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0)); 119 } 120 121 window.ds_format_number = function (number_value, separator, decimal_separator) { 122 var numberStrings = number_value.toString().split("."); 123 var thousands = numberStrings[0].replace(/\B(?=(\d{3})+(?!\d))/g, separator); 124 125 if (decimal_separator && decimal_separator !== '' && numberStrings.length > 1) { 126 return thousands + decimal_separator + numberStrings[1]; 127 } else if(numberStrings.length > 1) { 128 return thousands + "." + numberStrings[1]; 129 } else { 130 return thousands; 131 } 132 } 133 134 window.ds_counter_counter_reinit = function (counter) { 135 136 window.ds_counter_counter_init(counter); 137 138 counter.on('containerWidthChanged', function (event) { 139 counter = $(event.target); 140 counter.find('canvas').remove(); 141 counter.removeData('easyPieChart'); 142 window.ds_counter_counter_init(counter); 143 }); 144 } 145 146 window.ds_counter_counter_update_on_waypoint = function (counter) { 147 148 if ($.fn.waypoint && 'yes' !== et_pb_custom.ignore_waypoints) { 149 let position = counter.attr('data-count-animation-position'); 150 et_waypoint(counter, { 151 offset: position, 152 handler: function () { 153 ds_counter_counter_update(counter); 154 } 155 }); 156 157 et_waypoint(counter, { 158 offset: 'bottom-in-view', 159 handler: function () { 160 ds_counter_counter_update(counter); 161 } 162 }); 163 164 function et_waypoint(element, options) { 165 if (!element.data('et_waypoint')) { 166 var instances = element.waypoint(options); 167 168 if (instances && instances.length > 0) { 169 element.data('et_waypoint', instances[0]); 170 } 171 } else { 172 // Reinit existing 173 element.data('et_waypoint').context.refresh(); 174 } 175 } 176 } 177 } 178 179 window.ds_counter_counter_update = function (counter) { 180 let delay = parseInt(counter.attr('data-count-animation-delay')); 181 setTimeout(function(){ 182 let counter_type = counter.attr('data-counter-type') ? counter.attr('data-counter-type') : 'number'; 183 if ('number' === counter_type) { 184 counter.data('easyPieChart').update(100); 185 } else if ('circle' === counter_type) { 186 var circle_percent = counter.attr('data-circle-percent') ? counter.attr('data-circle-percent') : 100; 187 counter.data('easyPieChart').update(circle_percent); 188 } 189 }, delay); 190 } 191 192 $('.et_pb_jt_counter .counter').each(function() { 193 var counter = $(this); 194 ds_counter_counter_reset(counter); 195 }); 196 197});
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.