PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.87
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.87
51.1.87 51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 All 41 releases
← All changes | includes/assets/libraries/jquerynumerator/jquerynumerator.js +137 -0 51.1.2 → 51.1.87 View file →
@@ -1,0 +1,137 @@
1 +/*
2 + * jQuery Numerator Plugin 0.2.1
3 + * https://github.com/garethdn/jquery-numerator
4 + *
5 + * Copyright 2015, Gareth Nolan
6 + * http://ie.linkedin.com/in/garethnolan/
7 +
8 + * Based on jQuery Boilerplate by Zeno Rocha with the help of Addy Osmani
9 + * http://jqueryboilerplate.com
10 + *
11 + * Licensed under the MIT license:
12 + * http://www.opensource.org/licenses/MIT
13 + */
14 +
15 +;(function (factory) {
16 + 'use strict';
17 + if (typeof define === 'function' && define.amd) {
18 + // AMD is used - Register as an anonymous module.
19 + define(['jquery'], factory);
20 + } else if (typeof exports === 'object') {
21 + factory(require('jquery'));
22 + } else {
23 + // Neither AMD nor CommonJS used. Use global variables.
24 + if (typeof jQuery === 'undefined') {
25 + throw 'jquery-numerator requires jQuery to be loaded first';
26 + }
27 + factory(jQuery);
28 + }
29 +}(function ($) {
30 +
31 + var pluginName = "numerator",
32 + defaults = {
33 + easing: 'swing',
34 + duration: 500,
35 + delimiter: undefined,
36 + rounding: 0,
37 + toValue: undefined,
38 + fromValue: undefined,
39 + queue: false,
40 + onStart: function(){},
41 + onStep: function(){},
42 + onProgress: function(){},
43 + onComplete: function(){}
44 + };
45 +
46 + function Plugin ( element, options ) {
47 + this.element = element;
48 + this.settings = $.extend( {}, defaults, options );
49 + this._defaults = defaults;
50 + this._name = pluginName;
51 + this.init();
52 + }
53 +
54 + Plugin.prototype = {
55 +
56 + init: function () {
57 + this.parseElement();
58 + this.setValue();
59 + },
60 +
61 + parseElement: function () {
62 + var elText = $.trim($(this.element).text());
63 +
64 + this.settings.fromValue = this.settings.fromValue || this.format(elText);
65 + },
66 +
67 + setValue: function() {
68 + var self = this;
69 +
70 + $({value: self.settings.fromValue}).animate({value: self.settings.toValue}, {
71 +
72 + duration: parseInt(self.settings.duration, 10),
73 +
74 + easing: self.settings.easing,
75 +
76 + start: self.settings.onStart,
77 +
78 + step: function(now, fx) {
79 + $(self.element).text(self.format(now));
80 + // accepts two params - (now, fx)
81 + self.settings.onStep(now, fx);
82 + },
83 +
84 + // accepts three params - (animation object, progress ratio, time remaining(ms))
85 + progress: self.settings.onProgress,
86 +
87 + complete: self.settings.onComplete
88 + });
89 + },
90 +
91 + format: function(value){
92 + var self = this;
93 +
94 + if ( parseInt(this.settings.rounding ) < 1) {
95 + value = parseInt(value, 10);
96 + } else {
97 + value = parseFloat(value).toFixed( parseInt(this.settings.rounding) );
98 + }
99 +
100 + if (self.settings.delimiter) {
101 + return this.delimit(value)
102 + } else {
103 + return value;
104 + }
105 + },
106 +
107 + // TODO: Add comments to this function
108 + delimit: function(value){
109 + var self = this;
110 +
111 + value = value.toString();
112 +
113 + if (self.settings.rounding && parseInt(self.settings.rounding, 10) > 0) {
114 + var decimals = value.substring( (value.length - (self.settings.rounding + 1)), value.length ),
115 + wholeValue = value.substring( 0, (value.length - (self.settings.rounding + 1)));
116 +
117 + return self.addDelimiter(wholeValue) + decimals;
118 + } else {
119 + return self.addDelimiter(value);
120 + }
121 + },
122 +
123 + addDelimiter: function(value){
124 + return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter);
125 + }
126 + };
127 +
128 + $.fn[ pluginName ] = function ( options ) {
129 + return this.each(function() {
130 + if ( $.data( this, "plugin_" + pluginName ) ) {
131 + $.data(this, 'plugin_' + pluginName, null);
132 + }
133 + $.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
134 + });
135 + };
136 +
137 +}));