// Generated by CoffeeScript 1.12.8 (function() { var closest, match, preventDefaultSupported, slice = [].slice; Turbolinks.copyObject = function(object) { var key, result, value; result = {}; for (key in object) { value = object[key]; result[key] = value; } return result; }; Turbolinks.closest = function(element, selector) { return closest.call(element, selector); }; closest = (function() { var html, ref; html = document.documentElement; return (ref = html.closest) != null ? ref : function(selector) { var node; node = this; while (node) { if (node.nodeType === Node.ELEMENT_NODE && match.call(node, selector)) { return node; } node = node.parentNode; } }; })(); Turbolinks.defer = function(callback) { return setTimeout(callback, 1); }; Turbolinks.throttle = function(fn) { var request; request = null; return function() { var args; args = 1 <= arguments.length ? slice.call(arguments, 0) : []; return request != null ? request : request = requestAnimationFrame((function(_this) { return function() { request = null; return fn.apply(_this, args); }; })(this)); }; }; Turbolinks.dispatch = function(eventName, arg) { var cancelable, data, event, preventDefault, ref, target; ref = arg != null ? arg : {}, target = ref.target, cancelable = ref.cancelable, data = ref.data; event = document.createEvent("Events"); event.initEvent(eventName, true, cancelable === true); event.data = data != null ? data : {}; if (event.cancelable && !preventDefaultSupported) { preventDefault = event.preventDefault; event.preventDefault = function() { if (!this.defaultPrevented) { Object.defineProperty(this, "defaultPrevented", { get: function() { return true; } }); } return preventDefault.call(this); }; } (target != null ? target : document).dispatchEvent(event); return event; }; preventDefaultSupported = (function() { var event; event = document.createEvent("Events"); event.initEvent("test", true, true); event.preventDefault(); return event.defaultPrevented; })(); Turbolinks.match = function(element, selector) { return match.call(element, selector); }; match = (function() { var html, ref, ref1, ref2; html = document.documentElement; return (ref = (ref1 = (ref2 = html.matchesSelector) != null ? ref2 : html.webkitMatchesSelector) != null ? ref1 : html.msMatchesSelector) != null ? ref : html.mozMatchesSelector; })(); Turbolinks.uuid = function() { var i, j, result; result = ""; for (i = j = 1; j <= 36; i = ++j) { if (i === 9 || i === 14 || i === 19 || i === 24) { result += "-"; } else if (i === 15) { result += "4"; } else if (i === 20) { result += (Math.floor(Math.random() * 4) + 8).toString(16); } else { result += Math.floor(Math.random() * 15).toString(16); } } return result; }; }).call(this);