Вход Регистрация
Файл: tyde/www/web/js/components/notify.js
Строк: 201
<?php
/*! UIkit 2.24.3 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
(function(addon) {

    var 
component;

    if (
window.UIkit) {
        
component addon(UIkit);
    }

    if (
typeof define == "function" && define.amd) {
        
define("uikit-notify", ["uikit"], function(){
            return 
component || addon(UIkit);
        });
    }

})(function(
UI){

    
"use strict";

    var 
containers = {},
        
messages   = {},

        
notify     =  function(options){

            if (
UI.$.type(options) == 'string') {
                
options = { messageoptions };
            }

            if (
arguments[1]) {
                
options UI.$.extend(optionsUI.$.type(arguments[1]) == 'string' ? {status:arguments[1]} : arguments[1]);
            }

            return (new 
Message(options)).show();
        },
        
closeAll  = function(groupinstantly){

            var 
id;

            if (
group) {
                for(
id in messages) { if(group===messages[id].groupmessages[id].close(instantly); }
            } else {
                for(
id in messages) { messages[id].close(instantly); }
            }
        };

    var 
Message = function(options){

        
this.options UI.$.extend({}, Message.defaultsoptions);

        
this.uuid    UI.Utils.uid("notifymsg");
        
this.element UI.$([

            
'<div class="uk-notify-message">',
                
'<a class="uk-close"></a>',
                
'<div></div>',
            
'</div>'

        
].join('')).data("notifyMessage"this);

        
this.content(this.options.message);

        
// status
        
if (this.options.status) {
            
this.element.addClass('uk-notify-message-'+this.options.status);
            
this.currentstatus this.options.status;
        }

        
this.group this.options.group;

        
messages[this.uuid] = this;

        if(!
containers[this.options.pos]) {
            
containers[this.options.pos] = UI.$('<div class="uk-notify uk-notify-'+this.options.pos+'"></div>').appendTo('body').on("click"".uk-notify-message", function(){

                var 
message UI.$(this).data("notifyMessage");

                
message.element.trigger('manualclose.uk.notify', [message]);
                
message.close();
            });
        }
    };


    
UI.$.extend(Message.prototype, {

        
uuidfalse,
        
elementfalse,
        
timoutfalse,
        
currentstatus"",
        
groupfalse,

        
show: function() {

            if (
this.element.is(":visible")) return;

            var 
$this this;

            
containers[this.options.pos].show().prepend(this.element);

            var 
marginbottom parseInt(this.element.css("margin-bottom"), 10);

            
this.element.css({"opacity":0"margin-top": -1*this.element.outerHeight(), "margin-bottom":0}).animate({"opacity":1"margin-top"0"margin-bottom":marginbottom}, function(){

                if (
$this.options.timeout) {

                    var 
closefn = function(){ $this.close(); };

                    
$this.timeout setTimeout(closefn$this.options.timeout);

                    
$this.element.hover(
                        function() { 
clearTimeout($this.timeout); },
                        function() { 
$this.timeout setTimeout(closefn$this.options.timeout);  }
                    );
                }

            });

            return 
this;
        },

        
close: function(instantly) {

            var 
$this    this,
                
finalize = function(){
                    
$this.element.remove();

                    if (!
containers[$this.options.pos].children().length) {
                        
containers[$this.options.pos].hide();
                    }

                    
$this.options.onClose.apply($this, []);
                    
$this.element.trigger('close.uk.notify', [$this]);

                    
delete messages[$this.uuid];
                };

            if (
this.timeoutclearTimeout(this.timeout);

            if (
instantly) {
                
finalize();
            } else {
                
this.element.animate({"opacity":0"margin-top": -1this.element.outerHeight(), "margin-bottom":0}, function(){
                    
finalize();
                });
            }
        },

        
content: function(html){

            var 
container this.element.find(">div");

            if(!
html) {
                return 
container.html();
            }

            
container.html(html);

            return 
this;
        },

        
status: function(status) {

            if (!
status) {
                return 
this.currentstatus;
            }

            
this.element.removeClass('uk-notify-message-'+this.currentstatus).addClass('uk-notify-message-'+status);

            
this.currentstatus status;

            return 
this;
        }
    });

    
Message.defaults = {
        
message"",
        
status"",
        
timeout5000,
        
groupnull,
        
pos'top-center',
        
onClose: function() {}
    };

    
UI.notify          notify;
    
UI.notify.message  Message;
    
UI.notify.closeAll closeAll;

    return 
notify;
});
?>
Онлайн: 0
Реклама