aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch/static/materialize/js/global.js
diff options
context:
space:
mode:
authorMitch Riedstra <Mitch@riedstra.us>2017-10-24 16:59:48 -0400
committerMitch Riedstra <Mitch@riedstra.us>2017-10-24 16:59:48 -0400
commit3e8b34be2fdeccf16c8b46f1ee518f970853768d (patch)
treeabcb7d0cb260790a2b4a746e3959f2e7ee3a33f7 /app/dispatch/static/materialize/js/global.js
parent4ee5893fd9c82228c62306fc7f5babdfc602e4c4 (diff)
downloaddispatch-tracker-3e8b34be2fdeccf16c8b46f1ee518f970853768d.tar.gz
dispatch-tracker-3e8b34be2fdeccf16c8b46f1ee518f970853768d.tar.xz
Adding in materialize source and templates
Diffstat (limited to 'app/dispatch/static/materialize/js/global.js')
-rw-r--r--app/dispatch/static/materialize/js/global.js177
1 files changed, 177 insertions, 0 deletions
diff --git a/app/dispatch/static/materialize/js/global.js b/app/dispatch/static/materialize/js/global.js
new file mode 100644
index 0000000..db5437b
--- /dev/null
+++ b/app/dispatch/static/materialize/js/global.js
@@ -0,0 +1,177 @@
+// Required for Meteor package, the use of window prevents export by Meteor
+(function(window){
+ if(window.Package){
+ Materialize = {};
+ } else {
+ window.Materialize = {};
+ }
+})(window);
+
+if (typeof exports !== 'undefined' && !exports.nodeType) {
+ if (typeof module !== 'undefined' && !module.nodeType && module.exports) {
+ exports = module.exports = Materialize;
+ }
+ exports.default = Materialize;
+}
+
+/*
+ * raf.js
+ * https://github.com/ngryman/raf.js
+ *
+ * original requestAnimationFrame polyfill by Erik Möller
+ * inspired from paul_irish gist and post
+ *
+ * Copyright (c) 2013 ngryman
+ * Licensed under the MIT license.
+ */
+(function(window) {
+ var lastTime = 0,
+ vendors = ['webkit', 'moz'],
+ requestAnimationFrame = window.requestAnimationFrame,
+ cancelAnimationFrame = window.cancelAnimationFrame,
+ i = vendors.length;
+
+ // try to un-prefix existing raf
+ while (--i >= 0 && !requestAnimationFrame) {
+ requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
+ cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
+ }
+
+ // polyfill with setTimeout fallback
+ // heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
+ if (!requestAnimationFrame || !cancelAnimationFrame) {
+ requestAnimationFrame = function(callback) {
+ var now = +Date.now(),
+ nextTime = Math.max(lastTime + 16, now);
+ return setTimeout(function() {
+ callback(lastTime = nextTime);
+ }, nextTime - now);
+ };
+
+ cancelAnimationFrame = clearTimeout;
+ }
+
+ // export to window
+ window.requestAnimationFrame = requestAnimationFrame;
+ window.cancelAnimationFrame = cancelAnimationFrame;
+}(window));
+
+/**
+ * Generate approximated selector string for a jQuery object
+ * @param {jQuery} obj jQuery object to be parsed
+ * @returns {string}
+ */
+Materialize.objectSelectorString = function(obj) {
+ var tagStr = obj.prop('tagName') || '';
+ var idStr = obj.attr('id') || '';
+ var classStr = obj.attr('class') || '';
+ return (tagStr + idStr + classStr).replace(/\s/g,'');
+};
+
+
+// Unique Random ID
+Materialize.guid = (function() {
+ function s4() {
+ return Math.floor((1 + Math.random()) * 0x10000)
+ .toString(16)
+ .substring(1);
+ }
+ return function() {
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
+ s4() + '-' + s4() + s4() + s4();
+ };
+})();
+
+/**
+ * Escapes hash from special characters
+ * @param {string} hash String returned from this.hash
+ * @returns {string}
+ */
+Materialize.escapeHash = function(hash) {
+ return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
+};
+
+Materialize.elementOrParentIsFixed = function(element) {
+ var $element = $(element);
+ var $checkElements = $element.add($element.parents());
+ var isFixed = false;
+ $checkElements.each(function(){
+ if ($(this).css("position") === "fixed") {
+ isFixed = true;
+ return false;
+ }
+ });
+ return isFixed;
+};
+
+
+/**
+ * Get time in ms
+ * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
+ * @type {function}
+ * @return {number}
+ */
+var getTime = (Date.now || function () {
+ return new Date().getTime();
+});
+
+
+/**
+ * Returns a function, that, when invoked, will only be triggered at most once
+ * during a given window of time. Normally, the throttled function will run
+ * as much as it can, without ever going more than once per `wait` duration;
+ * but if you'd like to disable the execution on the leading edge, pass
+ * `{leading: false}`. To disable execution on the trailing edge, ditto.
+ * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
+ * @param {function} func
+ * @param {number} wait
+ * @param {Object=} options
+ * @returns {Function}
+ */
+Materialize.throttle = function(func, wait, options) {
+ var context, args, result;
+ var timeout = null;
+ var previous = 0;
+ options || (options = {});
+ var later = function () {
+ previous = options.leading === false ? 0 : getTime();
+ timeout = null;
+ result = func.apply(context, args);
+ context = args = null;
+ };
+ return function () {
+ var now = getTime();
+ if (!previous && options.leading === false) previous = now;
+ var remaining = wait - (now - previous);
+ context = this;
+ args = arguments;
+ if (remaining <= 0) {
+ clearTimeout(timeout);
+ timeout = null;
+ previous = now;
+ result = func.apply(context, args);
+ context = args = null;
+ } else if (!timeout && options.trailing !== false) {
+ timeout = setTimeout(later, remaining);
+ }
+ return result;
+ };
+};
+
+
+// Velocity has conflicts when loaded with jQuery, this will check for it
+// First, check if in noConflict mode
+var Vel;
+if (jQuery) {
+ Vel = jQuery.Velocity;
+} else if ($) {
+ Vel = $.Velocity;
+} else {
+ Vel = Velocity;
+}
+
+if (Vel) {
+ Materialize.Vel = Vel;
+} else {
+ Materialize.Vel = Velocity;
+}