rework on codebase layout
[unfold.git] / third-party / spin-1.2.8 / jquery.spin.js
diff --git a/third-party/spin-1.2.8/jquery.spin.js b/third-party/spin-1.2.8/jquery.spin.js
new file mode 100644 (file)
index 0000000..d363e36
--- /dev/null
@@ -0,0 +1,48 @@
+// https://gist.github.com/its-florida/1290439/raw/ce7face0309bdb265244e8483ce91dcf86e8cb14/jquery.spin.js
+/*
+
+You can now create a spinner using any of the variants below:
+
+$("#el").spin(); // Produces default Spinner using the text color of #el.
+$("#el").spin("small"); // Produces a 'small' Spinner using the text color of #el.
+$("#el").spin("large", "white"); // Produces a 'large' Spinner in white (or any valid CSS color).
+$("#el").spin({ ... }); // Produces a Spinner using your custom settings.
+
+$("#el").spin(false); // Kills the spinner.
+
+*/
+(function($) {
+       $.fn.spin = function(opts, color) {
+               var presets = {
+                       "tiny": { lines: 8, length: 2, width: 2, radius: 3 },
+                       "small": { lines: 8, length: 4, width: 3, radius: 5 },
+                       "large": { lines: 10, length: 8, width: 4, radius: 8 }
+               };
+               if (Spinner) {
+                       return this.each(function() {
+                               var $this = $(this),
+                                       data = $this.data();
+                               
+                               if (data.spinner) {
+                                       data.spinner.stop();
+                                       delete data.spinner;
+                               }
+                               if (opts !== false) {
+                                       if (typeof opts === "string") {
+                                               if (opts in presets) {
+                                                       opts = presets[opts];
+                                               } else {
+                                                       opts = {};
+                                               }
+                                               if (color) {
+                                                       opts.color = color;
+                                               }
+                                       }
+                                       data.spinner = new Spinner($.extend({color: $this.css('color')}, opts)).spin(this);
+                               }
+                       });
+               } else {
+                       throw "Spinner class not available.";
+               }
+       };
+})(jQuery);