var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // Generated by CoffeeScript 2.1.0 (function () { /* jQuery Growl Copyright 2015 Kevin Sylvestre 1.3.5 */ "use strict"; var $, Animation, Growl; $ = jQuery; Animation = function () { var Animation = function () { function Animation() { _classCallCheck(this, Animation); } _createClass(Animation, null, [{ key: "transition", value: function transition($el) { var el, ref, result, type; el = $el[0]; ref = this.transitions; for (type in ref) { result = ref[type]; if (el.style[type] != null) { return result; } } } }]); return Animation; }(); ; Animation.transitions = { "webkitTransition": "webkitTransitionEnd", "mozTransition": "mozTransitionEnd", "oTransition": "oTransitionEnd", "transition": "transitionend" }; return Animation; }(); Growl = function () { var Growl = function () { _createClass(Growl, null, [{ key: "growl", value: function growl() { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return new Growl(settings); } }]); function Growl() { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, Growl); this.render = this.render.bind(this); this.bind = this.bind.bind(this); this.unbind = this.unbind.bind(this); this.mouseEnter = this.mouseEnter.bind(this); this.mouseLeave = this.mouseLeave.bind(this); this.click = this.click.bind(this); this.close = this.close.bind(this); this.cycle = this.cycle.bind(this); this.waitAndDismiss = this.waitAndDismiss.bind(this); this.present = this.present.bind(this); this.dismiss = this.dismiss.bind(this); this.remove = this.remove.bind(this); this.animate = this.animate.bind(this); this.$growls = this.$growls.bind(this); this.$growl = this.$growl.bind(this); this.html = this.html.bind(this); this.content = this.content.bind(this); this.container = this.container.bind(this); this.settings = $.extend({}, Growl.settings, settings); this.initialize(this.settings.location); this.render(); } _createClass(Growl, [{ key: "initialize", value: function initialize(location) { var id; id = 'growls-' + location; return $('body:not(:has(#' + id + '))').append('
'); } }, { key: "render", value: function render() { var $growl; $growl = this.$growl(); this.$growls(this.settings.location).append($growl); if (this.settings.fixed) { this.present(); } else { this.cycle(); } } }, { key: "bind", value: function bind() { var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl(); $growl.on("click", this.click); if (this.settings.delayOnHover) { $growl.on("mouseenter", this.mouseEnter); $growl.on("mouseleave", this.mouseLeave); } return $growl.on("contextmenu", this.close).find("." + this.settings.namespace + "-close").on("click", this.close); } }, { key: "unbind", value: function unbind() { var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl(); $growl.off("click", this.click); if (this.settings.delayOnHover) { $growl.off("mouseenter", this.mouseEnter); $growl.off("mouseleave", this.mouseLeave); } return $growl.off("contextmenu", this.close).find("." + this.settings.namespace + "-close").off("click", this.close); } }, { key: "mouseEnter", value: function mouseEnter(event) { var $growl; $growl = this.$growl(); return $growl.stop(true, true); } }, { key: "mouseLeave", value: function mouseLeave(event) { return this.waitAndDismiss(); } }, { key: "click", value: function click(event) { if (this.settings.url != null) { event.preventDefault(); event.stopPropagation(); return window.open(this.settings.url); } } }, { key: "close", value: function close(event) { var $growl; event.preventDefault(); event.stopPropagation(); $growl = this.$growl(); return $growl.stop().queue(this.dismiss).queue(this.remove); } }, { key: "cycle", value: function cycle() { var $growl; $growl = this.$growl(); return $growl.queue(this.present).queue(this.waitAndDismiss()); } }, { key: "waitAndDismiss", value: function waitAndDismiss() { var $growl; $growl = this.$growl(); return $growl.delay(this.settings.duration).queue(this.dismiss).queue(this.remove); } }, { key: "present", value: function present(callback) { var $growl; $growl = this.$growl(); this.bind($growl); return this.animate($growl, this.settings.namespace + "-incoming", 'out', callback); } }, { key: "dismiss", value: function dismiss(callback) { var $growl; $growl = this.$growl(); this.unbind($growl); return this.animate($growl, this.settings.namespace + "-outgoing", 'in', callback); } }, { key: "remove", value: function remove(callback) { this.$growl().remove(); return typeof callback === "function" ? callback() : void 0; } }, { key: "animate", value: function animate($element, name) { var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in'; var callback = arguments[3]; var transition; transition = Animation.transition($element); $element[direction === 'in' ? 'removeClass' : 'addClass'](name); $element.offset().position; $element[direction === 'in' ? 'addClass' : 'removeClass'](name); if (callback == null) { return; } if (transition != null) { $element.one(transition, callback); } else { callback(); } } }, { key: "$growls", value: function $growls(location) { var base; if (this.$_growls == null) { this.$_growls = []; } return (base = this.$_growls)[location] != null ? base[location] : base[location] = $('#growls-' + location); } }, { key: "$growl", value: function $growl() { return this.$_growl != null ? this.$_growl : this.$_growl = $(this.html()); } }, { key: "html", value: function html() { return this.container(this.content()); } }, { key: "content", value: function content() { return "
" + this.settings.close + "
\n
" + this.settings.title + "
\n
" + this.settings.message + "
"; } }, { key: "container", value: function container(content) { return "
\n " + content + "\n
"; } }]); return Growl; }(); ; Growl.settings = { namespace: 'growl', duration: 3200, close: "×", location: "default", style: "default", size: "medium", delayOnHover: true }; return Growl; }(); this.Growl = Growl; $.growl = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return Growl.growl(options); }; $.growl.error = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var settings; settings = { title: "Error!", style: "error" }; return $.growl($.extend(settings, options)); }; $.growl.notice = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var settings; settings = { title: "Notice!", style: "notice" }; return $.growl($.extend(settings, options)); }; $.growl.warning = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var settings; settings = { title: "Warning!", style: "warning" }; return $.growl($.extend(settings, options)); }; }).call(this);