| ; | |
| // jQuery toast plugin created by Kamran Ahmed copyright MIT license 2015 | |
| if ( typeof Object.create !== 'function' ) { | |
| Object.create = function( obj ) { | |
| function F() {} | |
| F.prototype = obj; | |
| return new F(); | |
| }; | |
| } | |
| (function( $, window, document, undefined ) { | |
| "use strict"; | |
| var Toast = { | |
| _positionClasses : ['bottom-left', 'bottom-right', 'top-right', 'top-left', 'bottom-center', 'top-center', 'mid-center'], | |
| _defaultIcons : ['success', 'error', 'info', 'warning'], | |
| init: function (options, elem) { | |
| this.prepareOptions(options, $.toast.options); | |
| this.process(); | |
| }, | |
| prepareOptions: function(options, options_to_extend) { | |
| var _options = {}; | |
| if ( ( typeof options === 'string' ) || ( options instanceof Array ) ) { | |
| _options.text = options; | |
| } else { | |
| _options = options; | |
| } | |
| this.options = $.extend( {}, options_to_extend, _options ); | |
| }, | |
| process: function () { | |
| this.setup(); | |
| this.addToDom(); | |
| this.position(); | |
| this.bindToast(); | |
| this.animate(); | |
| }, | |
| setup: function () { | |
| var _toastContent = ''; | |
| this._toastEl = this._toastEl || $('<div></div>', { | |
| class : 'jq-toast-single' | |
| }); | |
| // For the loader on top | |
| _toastContent += '<span class="jq-toast-loader"></span>'; | |
| if ( this.options.allowToastClose ) { | |
| _toastContent += '<span class="close-jq-toast-single">×</span>'; | |
| }; | |
| if ( this.options.text instanceof Array ) { | |
| if ( this.options.heading ) { | |
| _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>'; | |
| }; | |
| _toastContent += '<ul class="jq-toast-ul">'; | |
| for (var i = 0; i < this.options.text.length; i++) { | |
| _toastContent += '<li class="jq-toast-li" id="jq-toast-item-' + i + '">' + this.options.text[i] + '</li>'; | |
| } | |
| _toastContent += '</ul>'; | |
| } else { | |
| if ( this.options.heading ) { | |
| _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>'; | |
| }; | |
| _toastContent += this.options.text; | |
| } | |
| this._toastEl.html( _toastContent ); | |
| if ( this.options.bgColor !== false ) { | |
| this._toastEl.css("background-color", this.options.bgColor); | |
| }; | |
| if ( this.options.textColor !== false ) { | |
| this._toastEl.css("color", this.options.textColor); | |
| }; | |
| if ( this.options.textAlign ) { | |
| this._toastEl.css('text-align', this.options.textAlign); | |
| } | |
| if ( this.options.icon !== false ) { | |
| this._toastEl.addClass('jq-has-icon'); | |
| if ( $.inArray(this.options.icon, this._defaultIcons) !== -1 ) { | |
| this._toastEl.addClass('jq-icon-' + this.options.icon); | |
| }; | |
| }; | |
| }, | |
| position: function () { | |
| if ( ( typeof this.options.position === 'string' ) && ( $.inArray( this.options.position, this._positionClasses) !== -1 ) ) { | |
| if ( this.options.position === 'bottom-center' ) { | |
| this._container.css({ | |
| left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, | |
| bottom: 20 | |
| }); | |
| } else if ( this.options.position === 'top-center' ) { | |
| this._container.css({ | |
| left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, | |
| top: 20 | |
| }); | |
| } else if ( this.options.position === 'mid-center' ) { | |
| this._container.css({ | |
| left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, | |
| top: ( $(window).outerHeight() / 2 ) - this._container.outerHeight()/2 | |
| }); | |
| } else { | |
| this._container.addClass( this.options.position ); | |
| } | |
| } else if ( typeof this.options.position === 'object' ) { | |
| this._container.css({ | |
| top : this.options.position.top ? this.options.position.top : 'auto', | |
| bottom : this.options.position.bottom ? this.options.position.bottom : 'auto', | |
| left : this.options.position.left ? this.options.position.left : 'auto', | |
| right : this.options.position.right ? this.options.position.right : 'auto' | |
| }); | |
| } else { | |
| this._container.addClass( 'bottom-left' ); | |
| } | |
| }, | |
| bindToast: function () { | |
| var that = this; | |
| this._toastEl.on('afterShown', function () { | |
| that.processLoader(); | |
| }); | |
| this._toastEl.find('.close-jq-toast-single').on('click', function ( e ) { | |
| e.preventDefault(); | |
| if( that.options.showHideTransition === 'fade') { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.fadeOut(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } else if ( that.options.showHideTransition === 'slide' ) { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.slideUp(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } else { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.hide(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } | |
| }); | |
| if ( typeof this.options.beforeShow == 'function' ) { | |
| this._toastEl.on('beforeShow', function () { | |
| that.options.beforeShow(); | |
| }); | |
| }; | |
| if ( typeof this.options.afterShown == 'function' ) { | |
| this._toastEl.on('afterShown', function () { | |
| that.options.afterShown(); | |
| }); | |
| }; | |
| if ( typeof this.options.beforeHide == 'function' ) { | |
| this._toastEl.on('beforeHide', function () { | |
| that.options.beforeHide(); | |
| }); | |
| }; | |
| if ( typeof this.options.afterHidden == 'function' ) { | |
| this._toastEl.on('afterHidden', function () { | |
| that.options.afterHidden(); | |
| }); | |
| }; | |
| if ( typeof this.options.onClick == 'function' ) { | |
| this._toastEl.on('click', function () { | |
| that.options.onClick(); | |
| }); | |
| }; | |
| }, | |
| addToDom: function () { | |
| var _container = $('.jq-toast-wrap'); | |
| if ( _container.length === 0 ) { | |
| _container = $('<div></div>',{ | |
| class: "jq-toast-wrap" | |
| }); | |
| $('body').append( _container ); | |
| } else if ( !this.options.stack || isNaN( parseInt(this.options.stack, 10) ) ) { | |
| _container.empty(); | |
| } | |
| _container.find('.jq-toast-single:hidden').remove(); | |
| _container.append( this._toastEl ); | |
| if ( this.options.stack && !isNaN( parseInt( this.options.stack ), 10 ) ) { | |
| var _prevToastCount = _container.find('.jq-toast-single').length, | |
| _extToastCount = _prevToastCount - this.options.stack; | |
| if ( _extToastCount > 0 ) { | |
| $('.jq-toast-wrap').find('.jq-toast-single').slice(0, _extToastCount).remove(); | |
| }; | |
| } | |
| this._container = _container; | |
| }, | |
| canAutoHide: function () { | |
| return ( this.options.hideAfter !== false ) && !isNaN( parseInt( this.options.hideAfter, 10 ) ); | |
| }, | |
| processLoader: function () { | |
| // Show the loader only, if auto-hide is on and loader is demanded | |
| if (!this.canAutoHide() || this.options.loader === false) { | |
| return false; | |
| } | |
| var loader = this._toastEl.find('.jq-toast-loader'); | |
| // 400 is the default time that jquery uses for fade/slide | |
| // Divide by 1000 for milliseconds to seconds conversion | |
| var transitionTime = (this.options.hideAfter - 400) / 1000 + 's'; | |
| var loaderBg = this.options.loaderBg; | |
| var style = loader.attr('style') || ''; | |
| style = style.substring(0, style.indexOf('-webkit-transition')); // Remove the last transition definition | |
| style += '-webkit-transition: width ' + transitionTime + ' ease-in; \ | |
| -o-transition: width ' + transitionTime + ' ease-in; \ | |
| transition: width ' + transitionTime + ' ease-in; \ | |
| background-color: ' + loaderBg + ';'; | |
| loader.attr('style', style).addClass('jq-toast-loaded'); | |
| }, | |
| animate: function () { | |
| var that = this; | |
| this._toastEl.hide(); | |
| this._toastEl.trigger('beforeShow'); | |
| if ( this.options.showHideTransition.toLowerCase() === 'fade' ) { | |
| this._toastEl.fadeIn(function ( ){ | |
| that._toastEl.trigger('afterShown'); | |
| }); | |
| } else if ( this.options.showHideTransition.toLowerCase() === 'slide' ) { | |
| this._toastEl.slideDown(function ( ){ | |
| that._toastEl.trigger('afterShown'); | |
| }); | |
| } else { | |
| this._toastEl.show(function ( ){ | |
| that._toastEl.trigger('afterShown'); | |
| }); | |
| } | |
| if (this.canAutoHide()) { | |
| var that = this; | |
| window.setTimeout(function(){ | |
| if ( that.options.showHideTransition.toLowerCase() === 'fade' ) { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.fadeOut(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } else if ( that.options.showHideTransition.toLowerCase() === 'slide' ) { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.slideUp(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } else { | |
| that._toastEl.trigger('beforeHide'); | |
| that._toastEl.hide(function () { | |
| that._toastEl.trigger('afterHidden'); | |
| }); | |
| } | |
| }, this.options.hideAfter); | |
| }; | |
| }, | |
| reset: function ( resetWhat ) { | |
| if ( resetWhat === 'all' ) { | |
| $('.jq-toast-wrap').remove(); | |
| } else { | |
| this._toastEl.remove(); | |
| } | |
| }, | |
| update: function(options) { | |
| this.prepareOptions(options, this.options); | |
| this.setup(); | |
| this.bindToast(); | |
| } | |
| }; | |
| $.toast = function(options) { | |
| var toast = Object.create(Toast); | |
| toast.init(options, this); | |
| return { | |
| reset: function ( what ) { | |
| toast.reset( what ); | |
| }, | |
| update: function( options ) { | |
| toast.update( options ); | |
| } | |
| } | |
| }; | |
| $.toast.options = { | |
| text: '', | |
| heading: '', | |
| showHideTransition: 'fade', | |
| allowToastClose: true, | |
| hideAfter: 3000, | |
| loader: true, | |
| loaderBg: '#9EC600', | |
| stack: 5, | |
| position: 'bottom-left', | |
| bgColor: false, | |
| textColor: false, | |
| textAlign: 'left', | |
| icon: false, | |
| beforeShow: function () {}, | |
| afterShown: function () {}, | |
| beforeHide: function () {}, | |
| afterHidden: function () {}, | |
| onClick: function () {} | |
| }; | |
| })( jQuery, window, document ); | |
Xet Storage Details
- Size:
- 12.7 kB
- Xet hash:
- 447357b629c7309c0af1c6a9f3bf8c8ad79c978f838b75e9fcacc2b2e5d65e79
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.