PageSourceSearch

https://amiba.net/wp-content/plugins/ds-counter/includes/js/ds-counter.js?ver=1

js amiba.net collected 2026-10-02 02:26:28 UTC 8,850 bytes, 197 lines download raw bytes

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.