layui.define([], function (exports) { 
 | 
    var PLUGIN_NAME = 'iziToast';  // 样式类名 
 | 
    var BODY = document.querySelector('body'); 
 | 
    var ISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false; 
 | 
    var MOBILEWIDTH = 568; 
 | 
    var ISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); 
 | 
    var ISFIREFOX = typeof InstallTrigger !== 'undefined'; 
 | 
    var ACCEPTSTOUCH = 'ontouchstart' in document.documentElement; 
 | 
    // 显示区域 
 | 
    var POSITIONS = ['bottomRight', 'bottomLeft', 'bottomCenter', 'topRight', 'topLeft', 'topCenter', 'center']; 
 | 
    // 默认主题 
 | 
    var THEMES = { 
 | 
        info: { 
 | 
            color: 'blue', 
 | 
            icon: 'ico-info' 
 | 
        }, 
 | 
        success: { 
 | 
            color: 'green', 
 | 
            icon: 'ico-success' 
 | 
        }, 
 | 
        warning: { 
 | 
            color: 'orange', 
 | 
            icon: 'ico-warning' 
 | 
        }, 
 | 
        error: { 
 | 
            color: 'red', 
 | 
            icon: 'ico-error' 
 | 
        }, 
 | 
        question: { 
 | 
            color: 'yellow', 
 | 
            icon: 'ico-question' 
 | 
        } 
 | 
    }; 
 | 
    var CONFIG = {};  // 全局配置 
 | 
    // 默认配置 
 | 
    var defaults = { 
 | 
        id: null, 
 | 
        className: '',  // 自定义class,用空格分割 
 | 
        title: '',  // 标题 
 | 
        titleColor: '',  // 标题文字颜色 
 | 
        titleSize: '',  // 标题文字大小 
 | 
        titleLineHeight: '',  // 标题高度 
 | 
        message: '',  // 内容 
 | 
        messageColor: '',  // 内容文字颜色 
 | 
        messageSize: '',  // 内容文字大小 
 | 
        messageLineHeight: '',  // 内容高度 
 | 
        backgroundColor: '',  // 背景颜色 
 | 
        theme: 'light', // dark 
 | 
        color: '', // 背景颜色 
 | 
        icon: '',  // 图标 
 | 
        iconText: '',  // 图标文字 
 | 
        iconColor: '',  // 图标颜色 
 | 
        iconUrl: null,  // 图标地址 
 | 
        image: '',  // 是否显示图片 
 | 
        imageWidth: 60,  // 图片宽度 
 | 
        maxWidth: null,  // 最大宽度 
 | 
        zindex: null,  // 
 | 
        layout: 2,  // 布局类型 
 | 
        balloon: false,  // 气泡 
 | 
        close: true,  // 是否显示关闭按钮 
 | 
        closeOnEscape: false, 
 | 
        closeOnClick: false,  // 点击关闭 
 | 
        displayMode: 0,  // 0无限制,1存在就不发出,2销毁之前 
 | 
        position: 'topRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center 
 | 
        target: '',  // 显示位置 
 | 
        targetFirst: null,  // 插入顺序 
 | 
        timeout: 5000,  // 关闭时间,false不自动关闭 
 | 
        rtl: false,  // 内容居右 
 | 
        animateInside: false,  // 进入动画效果 
 | 
        drag: true,  // 是否可滑动移除 
 | 
        pauseOnHover: true,  // 鼠标移入暂停进度条时间 
 | 
        resetOnHover: false,  // 鼠标移入重置进度条时间 
 | 
        progressBar: true,  // 是否显示进度条 
 | 
        progressBarColor: '',  // 进度条颜色 
 | 
        progressBarEasing: 'linear',  // 进度条动画效果 
 | 
        overlay: false,  // 是否显示遮罩层 
 | 
        overlayClose: false,  // 点击遮罩层是否关闭 
 | 
        overlayColor: 'rgba(0, 0, 0, 0.1)',  // 遮罩层颜色 
 | 
        transitionIn: 'fadeInLeft', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX 
 | 
        transitionOut: 'fadeOutRight', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX 
 | 
        transitionInMobile: 'bounceInDown',  // 移动端进入动画 
 | 
        transitionOutMobile: 'fadeOutUp',  // 移动端退出动画 
 | 
        buttons: {},  // 操作按钮 
 | 
        inputs: {},  // 输入框 
 | 
        audio: '',  // 音效 
 | 
        onOpening: function () { 
 | 
        }, 
 | 
        onOpened: function () { 
 | 
        }, 
 | 
        onClosing: function () { 
 | 
        }, 
 | 
        onClosed: function () { 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    var $iziToast = { 
 | 
        children: {}, 
 | 
        setSetting: function (ref, option, value) { 
 | 
            $iziToast.children[ref][option] = value; 
 | 
        }, 
 | 
        getSetting: function (ref, option) { 
 | 
            return $iziToast.children[ref][option]; 
 | 
        }, 
 | 
        // 全局设置 
 | 
        settings: function (options) { 
 | 
            $iziToast.destroy();  // 全部销毁之前的通知 
 | 
            CONFIG = options; 
 | 
            defaults = extend(defaults, options || {}); 
 | 
        }, 
 | 
        // 关闭所有通知 
 | 
        destroy: function () { 
 | 
            forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-overlay'), function (element, index) { 
 | 
                element.remove(); 
 | 
            }); 
 | 
            forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-wrapper'), function (element, index) { 
 | 
                element.remove(); 
 | 
            }); 
 | 
            forEach(document.querySelectorAll('.' + PLUGIN_NAME), function (element, index) { 
 | 
                element.remove(); 
 | 
            }); 
 | 
            this.children = {}; 
 | 
            // 移除事件监听 
 | 
            document.removeEventListener(PLUGIN_NAME + '-opened', {}, false); 
 | 
            document.removeEventListener(PLUGIN_NAME + '-opening', {}, false); 
 | 
            document.removeEventListener(PLUGIN_NAME + '-closing', {}, false); 
 | 
            document.removeEventListener(PLUGIN_NAME + '-closed', {}, false); 
 | 
            document.removeEventListener('keyup', {}, false); 
 | 
            CONFIG = {};  // 移除全局配置 
 | 
        }, 
 | 
        // msg类型 
 | 
        msg: function (msg, options) { 
 | 
            if (options.icon == 4) { 
 | 
                options.overlay = true; 
 | 
                options.timeout = false; 
 | 
                options.drag = false; 
 | 
                options.displayMode = 0; 
 | 
            } 
 | 
            var icons = ['ico-success', 'ico-error', 'ico-warning', 'ico-load', 'ico-info']; 
 | 
            options.icon = icons[options.icon - 1]; 
 | 
            var theme = { 
 | 
                message: msg, 
 | 
                position: 'topCenter', 
 | 
                transitionIn: 'bounceInDown', 
 | 
                transitionOut: 'fadeOut', 
 | 
                transitionOutMobile: 'fadeOut', 
 | 
                progressBar: false, 
 | 
                close: false, 
 | 
                layout: 1, 
 | 
                audio: '' 
 | 
            }; 
 | 
            var settings = extend(CONFIG, options || {}); 
 | 
            settings = extend(theme, settings || {}); 
 | 
            this.show(settings); 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 关闭指定的通知 
 | 
    $iziToast.hide = function (options, $toast, closedBy) { 
 | 
        if (typeof $toast != 'object') { 
 | 
            $toast = document.querySelector($toast); 
 | 
        } 
 | 
        var that = this; 
 | 
        var settings = extend(this.children[$toast.getAttribute('data-iziToast-ref')], options || {}); 
 | 
        settings.closedBy = closedBy || null; 
 | 
        delete settings.time.REMAINING; 
 | 
        $toast.classList.add(PLUGIN_NAME + '-closing'); 
 | 
        // 移除遮罩层 
 | 
        (function () { 
 | 
            var $overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay'); 
 | 
            if ($overlay !== null) { 
 | 
                var refs = $overlay.getAttribute('data-iziToast-ref'); 
 | 
                refs = refs.split(','); 
 | 
                var index = refs.indexOf(String(settings.ref)); 
 | 
                if (index !== -1) { 
 | 
                    refs.splice(index, 1); 
 | 
                } 
 | 
                $overlay.setAttribute('data-iziToast-ref', refs.join()); 
 | 
                if (refs.length === 0) { 
 | 
                    $overlay.classList.remove('fadeIn'); 
 | 
                    $overlay.classList.add('fadeOut'); 
 | 
                    setTimeout(function () { 
 | 
                        $overlay.remove(); 
 | 
                    }, 700); 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        // 移除动画 
 | 
        if (settings.transitionIn) { 
 | 
            $toast.classList.remove(settings.transitionIn); 
 | 
        } 
 | 
        if (settings.transitionInMobile) { 
 | 
            $toast.classList.remove(settings.transitionInMobile); 
 | 
        } 
 | 
        if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) { 
 | 
            if (settings.transitionOutMobile) 
 | 
                $toast.classList.add(settings.transitionOutMobile); 
 | 
        } else { 
 | 
            if (settings.transitionOut) 
 | 
                $toast.classList.add(settings.transitionOut); 
 | 
        } 
 | 
        var H = $toast.parentNode.offsetHeight; 
 | 
        $toast.parentNode.style.height = H + 'px'; 
 | 
        $toast.style.pointerEvents = 'none'; 
 | 
        if (!ISMOBILE || window.innerWidth > MOBILEWIDTH) { 
 | 
            $toast.parentNode.style.transitionDelay = '0.2s'; 
 | 
        } 
 | 
        try { 
 | 
            var event = new CustomEvent(PLUGIN_NAME + '-closing', {detail: settings, bubbles: true, cancelable: true}); 
 | 
            document.dispatchEvent(event); 
 | 
        } catch (ex) { 
 | 
            console.warn(ex); 
 | 
        } 
 | 
        setTimeout(function () { 
 | 
            $toast.parentNode.style.height = '0px'; 
 | 
            $toast.parentNode.style.overflow = ''; 
 | 
            setTimeout(function () { 
 | 
                delete that.children[settings.ref]; 
 | 
                $toast.parentNode.remove(); 
 | 
                try { 
 | 
                    var event = new CustomEvent(PLUGIN_NAME + '-closed', { 
 | 
                        detail: settings, 
 | 
                        bubbles: true, 
 | 
                        cancelable: true 
 | 
                    }); 
 | 
                    document.dispatchEvent(event); 
 | 
                } catch (ex) { 
 | 
                    console.warn(ex); 
 | 
                } 
 | 
                if (typeof settings.onClosed !== 'undefined') { 
 | 
                    settings.onClosed.apply(null, [settings, $toast, closedBy]); 
 | 
                } 
 | 
            }, 1000); 
 | 
        }, 200); 
 | 
        // 回调关闭事件 
 | 
        if (typeof settings.onClosing !== 'undefined') { 
 | 
            settings.onClosing.apply(null, [settings, $toast, closedBy]); 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 显示通知 
 | 
    $iziToast.show = function (options) { 
 | 
        var that = this; 
 | 
        // Merge user options with defaults 
 | 
        var settings = extend(CONFIG, options || {}); 
 | 
        settings = extend(defaults, settings); 
 | 
        settings.time = {}; 
 | 
        if (settings.id === null) { 
 | 
            settings.id = generateId(settings.title + settings.message + settings.color); 
 | 
        } 
 | 
        if (settings.displayMode == 1 || settings.displayMode == 'once') { 
 | 
            try { 
 | 
                if (document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id).length > 0) { 
 | 
                    return false; 
 | 
                } 
 | 
            } catch (exc) { 
 | 
                console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.'); 
 | 
            } 
 | 
        } 
 | 
        if (settings.displayMode == 2 || settings.displayMode == 'replace') { 
 | 
            try { 
 | 
                forEach(document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id), function (element, index) { 
 | 
                    that.hide(settings, element, 'replaced'); 
 | 
                }); 
 | 
            } catch (exc) { 
 | 
                console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.'); 
 | 
            } 
 | 
        } 
 | 
        settings.ref = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1); 
 | 
        $iziToast.children[settings.ref] = settings; 
 | 
        var $DOM = { 
 | 
            body: document.querySelector('body'), 
 | 
            overlay: document.createElement('div'), 
 | 
            toast: document.createElement('div'), 
 | 
            toastBody: document.createElement('div'), 
 | 
            toastTexts: document.createElement('div'), 
 | 
            toastCapsule: document.createElement('div'), 
 | 
            cover: document.createElement('div'), 
 | 
            buttons: document.createElement('div'), 
 | 
            inputs: document.createElement('div'), 
 | 
            icon: !settings.iconUrl ? document.createElement('i') : document.createElement('img'), 
 | 
            wrapper: null 
 | 
        }; 
 | 
        $DOM.toast.setAttribute('data-iziToast-ref', settings.ref); 
 | 
        $DOM.toast.appendChild($DOM.toastBody); 
 | 
        $DOM.toastCapsule.appendChild($DOM.toast); 
 | 
        // CSS Settings 
 | 
        (function () { 
 | 
            $DOM.toast.classList.add(PLUGIN_NAME); 
 | 
            $DOM.toast.classList.add(PLUGIN_NAME + '-opening'); 
 | 
            $DOM.toastCapsule.classList.add(PLUGIN_NAME + '-capsule'); 
 | 
            $DOM.toastBody.classList.add(PLUGIN_NAME + '-body'); 
 | 
            $DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts'); 
 | 
            if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) { 
 | 
                if (settings.transitionInMobile) 
 | 
                    $DOM.toast.classList.add(settings.transitionInMobile); 
 | 
            } else { 
 | 
                if (settings.transitionIn) 
 | 
                    $DOM.toast.classList.add(settings.transitionIn); 
 | 
            } 
 | 
            if (settings.className) { 
 | 
                var classes = settings.className.split(' '); 
 | 
                forEach(classes, function (value, index) { 
 | 
                    $DOM.toast.classList.add(value); 
 | 
                }); 
 | 
            } 
 | 
            if (settings.id) { 
 | 
                $DOM.toast.id = settings.id; 
 | 
            } 
 | 
            if (settings.rtl) { 
 | 
                $DOM.toast.classList.add(PLUGIN_NAME + '-rtl'); 
 | 
                $DOM.toast.setAttribute('dir', 'rtl'); 
 | 
            } 
 | 
            if (settings.layout > 1) { 
 | 
                $DOM.toast.classList.add(PLUGIN_NAME + '-layout' + settings.layout); 
 | 
            } 
 | 
            if (settings.balloon) { 
 | 
                $DOM.toast.classList.add(PLUGIN_NAME + '-balloon'); 
 | 
            } 
 | 
            if (settings.maxWidth) { 
 | 
                if (!isNaN(settings.maxWidth)) { 
 | 
                    $DOM.toast.style.maxWidth = settings.maxWidth + 'px'; 
 | 
                } else { 
 | 
                    $DOM.toast.style.maxWidth = settings.maxWidth; 
 | 
                } 
 | 
            } 
 | 
            if (settings.theme !== '' || settings.theme !== 'light') { 
 | 
                $DOM.toast.classList.add(PLUGIN_NAME + '-theme-' + settings.theme); 
 | 
            } 
 | 
            if (settings.color) { //#, rgb, rgba, hsl 
 | 
                if (isColor(settings.color)) { 
 | 
                    $DOM.toast.style.background = settings.color; 
 | 
                } else { 
 | 
                    $DOM.toast.classList.add(PLUGIN_NAME + '-color-' + settings.color); 
 | 
                } 
 | 
            } 
 | 
            if (settings.backgroundColor) { 
 | 
                $DOM.toast.style.background = settings.backgroundColor; 
 | 
                if (settings.balloon) { 
 | 
                    $DOM.toast.style.borderColor = settings.backgroundColor; 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        // Cover image 
 | 
        (function () { 
 | 
            if (settings.image) { 
 | 
                $DOM.cover.classList.add(PLUGIN_NAME + '-cover'); 
 | 
                $DOM.cover.style.width = settings.imageWidth + 'px'; 
 | 
                if (isBase64(settings.image.replace(/ /g, ''))) { 
 | 
                    $DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g, '') + ')'; 
 | 
                } else { 
 | 
                    $DOM.cover.style.backgroundImage = 'url(' + settings.image + ')'; 
 | 
                } 
 | 
                if (settings.rtl) { 
 | 
                    $DOM.toastBody.style.marginRight = (settings.imageWidth) + 'px'; 
 | 
                } else { 
 | 
                    $DOM.toastBody.style.marginLeft = (settings.imageWidth) + 'px'; 
 | 
                } 
 | 
                $DOM.toast.appendChild($DOM.cover); 
 | 
            } 
 | 
        })(); 
 | 
        // Button close 
 | 
        (function () { 
 | 
            if (settings.close) { 
 | 
                $DOM.buttonClose = document.createElement('button'); 
 | 
                // $DOM.buttonClose.type = 'button'; 
 | 
                $DOM.buttonClose.setAttribute('type', 'button'); 
 | 
                $DOM.buttonClose.classList.add(PLUGIN_NAME + '-close'); 
 | 
                $DOM.buttonClose.addEventListener('click', function (e) { 
 | 
                    var button = e.target; 
 | 
                    that.hide(settings, $DOM.toast, 'button'); 
 | 
                }); 
 | 
                $DOM.toast.appendChild($DOM.buttonClose); 
 | 
            } else { 
 | 
                if (settings.rtl) { 
 | 
                    $DOM.toast.style.paddingLeft = '18px'; 
 | 
                } else { 
 | 
                    $DOM.toast.style.paddingRight = '18px'; 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        // Progress Bar & Timeout 
 | 
        (function () { 
 | 
            if (settings.progressBar) { 
 | 
                $DOM.progressBar = document.createElement('div'); 
 | 
                $DOM.progressBarDiv = document.createElement('div'); 
 | 
                $DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar'); 
 | 
                $DOM.progressBarDiv.style.background = settings.progressBarColor; 
 | 
                $DOM.progressBar.appendChild($DOM.progressBarDiv); 
 | 
                $DOM.toast.appendChild($DOM.progressBar); 
 | 
            } 
 | 
            if (settings.timeout) { 
 | 
                if (settings.pauseOnHover && !settings.resetOnHover) { 
 | 
                    $DOM.toast.addEventListener('mouseenter', function (e) { 
 | 
                        that.progress(settings, $DOM.toast).pause(); 
 | 
                    }); 
 | 
                    $DOM.toast.addEventListener('mouseleave', function (e) { 
 | 
                        that.progress(settings, $DOM.toast).resume(); 
 | 
                    }); 
 | 
                } 
 | 
                if (settings.resetOnHover) { 
 | 
                    $DOM.toast.addEventListener('mouseenter', function (e) { 
 | 
                        that.progress(settings, $DOM.toast).reset(); 
 | 
                    }); 
 | 
                    $DOM.toast.addEventListener('mouseleave', function (e) { 
 | 
                        that.progress(settings, $DOM.toast).start(); 
 | 
                    }); 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        // Icon 
 | 
        (function () { 
 | 
            if (settings.iconUrl) { 
 | 
                $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon'); 
 | 
                $DOM.icon.setAttribute('src', settings.iconUrl); 
 | 
            } else if (settings.icon) { 
 | 
                $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon); 
 | 
                if (settings.iconText) { 
 | 
                    $DOM.icon.appendChild(document.createTextNode(settings.iconText)); 
 | 
                } 
 | 
                if (settings.iconColor) { 
 | 
                    $DOM.icon.style.color = settings.iconColor; 
 | 
                } 
 | 
            } 
 | 
            if (settings.icon || settings.iconUrl) { 
 | 
                if (settings.rtl) { 
 | 
                    $DOM.toastBody.style.paddingRight = '33px'; 
 | 
                } else { 
 | 
                    $DOM.toastBody.style.paddingLeft = '33px'; 
 | 
                } 
 | 
                $DOM.toastBody.appendChild($DOM.icon); 
 | 
            } 
 | 
  
 | 
        })(); 
 | 
        // Title & Message 
 | 
        (function () { 
 | 
            if (settings.title.length > 0) { 
 | 
                $DOM.strong = document.createElement('strong'); 
 | 
                $DOM.strong.classList.add(PLUGIN_NAME + '-title'); 
 | 
                $DOM.strong.appendChild(createFragElem(settings.title)); 
 | 
                $DOM.toastTexts.appendChild($DOM.strong); 
 | 
                if (settings.titleColor) { 
 | 
                    $DOM.strong.style.color = settings.titleColor; 
 | 
                } 
 | 
                if (settings.titleSize) { 
 | 
                    if (!isNaN(settings.titleSize)) { 
 | 
                        $DOM.strong.style.fontSize = settings.titleSize + 'px'; 
 | 
                    } else { 
 | 
                        $DOM.strong.style.fontSize = settings.titleSize; 
 | 
                    } 
 | 
                } 
 | 
                if (settings.titleLineHeight) { 
 | 
                    if (!isNaN(settings.titleSize)) { 
 | 
                        $DOM.strong.style.lineHeight = settings.titleLineHeight + 'px'; 
 | 
                    } else { 
 | 
                        $DOM.strong.style.lineHeight = settings.titleLineHeight; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            if (settings.message.length > 0) { 
 | 
                $DOM.p = document.createElement('p'); 
 | 
                $DOM.p.classList.add(PLUGIN_NAME + '-message'); 
 | 
                $DOM.p.appendChild(createFragElem(settings.message)); 
 | 
                $DOM.toastTexts.appendChild($DOM.p); 
 | 
                if (settings.messageColor) { 
 | 
                    $DOM.p.style.color = settings.messageColor; 
 | 
                } 
 | 
                if (settings.messageSize) { 
 | 
                    if (!isNaN(settings.titleSize)) { 
 | 
                        $DOM.p.style.fontSize = settings.messageSize + 'px'; 
 | 
                    } else { 
 | 
                        $DOM.p.style.fontSize = settings.messageSize; 
 | 
                    } 
 | 
                } 
 | 
                if (settings.messageLineHeight) { 
 | 
                    if (!isNaN(settings.titleSize)) { 
 | 
                        $DOM.p.style.lineHeight = settings.messageLineHeight + 'px'; 
 | 
                    } else { 
 | 
                        $DOM.p.style.lineHeight = settings.messageLineHeight; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            if (settings.title.length > 0 && settings.message.length > 0) { 
 | 
                if (settings.rtl) { 
 | 
                    $DOM.strong.style.marginLeft = '10px'; 
 | 
                } else if (settings.layout != 2 && !settings.rtl) { 
 | 
                    $DOM.strong.style.marginRight = '10px'; 
 | 
                    $DOM.strong.style.marginBottom = '0px'; 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        $DOM.toastBody.appendChild($DOM.toastTexts); 
 | 
        // Inputs 
 | 
        var $inputs; 
 | 
        (function () { 
 | 
            if (settings.inputs.length > 0) { 
 | 
                $DOM.inputs.classList.add(PLUGIN_NAME + '-inputs'); 
 | 
                forEach(settings.inputs, function (value, index) { 
 | 
                    $DOM.inputs.appendChild(createFragElem(value[0])); 
 | 
                    $inputs = $DOM.inputs.childNodes; 
 | 
                    $inputs[index].classList.add(PLUGIN_NAME + '-inputs-child'); 
 | 
                    if (value[3]) { 
 | 
                        setTimeout(function () { 
 | 
                            $inputs[index].focus(); 
 | 
                        }, 300); 
 | 
                    } 
 | 
                    $inputs[index].addEventListener(value[1], function (e) { 
 | 
                        var ts = value[2]; 
 | 
                        return ts(that, $DOM.toast, this, e); 
 | 
                    }); 
 | 
                }); 
 | 
                $DOM.toastBody.appendChild($DOM.inputs); 
 | 
            } 
 | 
        })(); 
 | 
        // Buttons 
 | 
        (function () { 
 | 
            if (settings.buttons.length > 0) { 
 | 
                $DOM.buttons.classList.add(PLUGIN_NAME + '-buttons'); 
 | 
                forEach(settings.buttons, function (value, index) { 
 | 
                    $DOM.buttons.appendChild(createFragElem(value[0])); 
 | 
                    var $btns = $DOM.buttons.childNodes; 
 | 
                    $btns[index].classList.add(PLUGIN_NAME + '-buttons-child'); 
 | 
                    if (value[2]) { 
 | 
                        setTimeout(function () { 
 | 
                            $btns[index].focus(); 
 | 
                        }, 300); 
 | 
                    } 
 | 
                    $btns[index].addEventListener('click', function (e) { 
 | 
                        e.preventDefault(); 
 | 
                        var ts = value[1]; 
 | 
                        return ts(that, $DOM.toast, this, e, $inputs); 
 | 
                    }); 
 | 
                }); 
 | 
            } 
 | 
            $DOM.toastTexts.appendChild($DOM.buttons); 
 | 
        })(); 
 | 
        if (settings.message.length > 0 && (settings.inputs.length > 0 || settings.buttons.length > 0)) { 
 | 
            $DOM.p.style.marginBottom = '0'; 
 | 
        } 
 | 
        if (settings.inputs.length > 0 || settings.buttons.length > 0) { 
 | 
            if (settings.rtl) { 
 | 
                $DOM.toastTexts.style.marginLeft = '10px'; 
 | 
            } else { 
 | 
                $DOM.toastTexts.style.marginRight = '10px'; 
 | 
            } 
 | 
            if (settings.inputs.length > 0 && settings.buttons.length > 0) { 
 | 
                if (settings.rtl) { 
 | 
                    $DOM.inputs.style.marginLeft = '8px'; 
 | 
                } else { 
 | 
                    $DOM.inputs.style.marginRight = '8px'; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        // Wrap 
 | 
        (function () { 
 | 
            $DOM.toastCapsule.style.visibility = 'hidden'; 
 | 
            setTimeout(function () { 
 | 
                var H = $DOM.toast.offsetHeight; 
 | 
                var style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast); 
 | 
                var marginTop = style.marginTop; 
 | 
                marginTop = marginTop.split('px'); 
 | 
                marginTop = parseInt(marginTop[0]); 
 | 
                var marginBottom = style.marginBottom; 
 | 
                marginBottom = marginBottom.split('px'); 
 | 
                marginBottom = parseInt(marginBottom[0]); 
 | 
  
 | 
                $DOM.toastCapsule.style.visibility = ''; 
 | 
                $DOM.toastCapsule.style.height = (H + marginBottom + marginTop) + 'px'; 
 | 
  
 | 
                setTimeout(function () { 
 | 
                    $DOM.toastCapsule.style.height = 'auto'; 
 | 
                    if (settings.target) { 
 | 
                        $DOM.toastCapsule.style.overflow = 'visible'; 
 | 
                    } 
 | 
                }, 500); 
 | 
  
 | 
                if (settings.timeout) { 
 | 
                    that.progress(settings, $DOM.toast).start(); 
 | 
                } 
 | 
            }, 100); 
 | 
        })(); 
 | 
        // Target 
 | 
        (function () { 
 | 
            var position = settings.position; 
 | 
            if (settings.target) { 
 | 
                $DOM.wrapper = document.querySelector(settings.target); 
 | 
                $DOM.wrapper.classList.add(PLUGIN_NAME + '-target'); 
 | 
                if (settings.targetFirst) { 
 | 
                    $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild); 
 | 
                } else { 
 | 
                    $DOM.wrapper.appendChild($DOM.toastCapsule); 
 | 
                } 
 | 
            } else { 
 | 
                if (POSITIONS.indexOf(settings.position) == -1) { 
 | 
                    console.warn('[' + PLUGIN_NAME + '] Incorrect position.\nIt can be › ' + POSITIONS); 
 | 
                    return; 
 | 
                } 
 | 
                if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) { 
 | 
                    if (settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter') { 
 | 
                        position = PLUGIN_NAME + '-wrapper-bottomCenter'; 
 | 
                    } else if (settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter') { 
 | 
                        position = PLUGIN_NAME + '-wrapper-topCenter'; 
 | 
                    } else { 
 | 
                        position = PLUGIN_NAME + '-wrapper-center'; 
 | 
                    } 
 | 
                } else { 
 | 
                    position = PLUGIN_NAME + '-wrapper-' + position; 
 | 
                } 
 | 
                $DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.' + position); 
 | 
                if (!$DOM.wrapper) { 
 | 
                    $DOM.wrapper = document.createElement('div'); 
 | 
                    $DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper'); 
 | 
                    $DOM.wrapper.classList.add(position); 
 | 
                    document.body.appendChild($DOM.wrapper); 
 | 
                } 
 | 
                var targetFirst = settings.targetFirst; 
 | 
                if ((targetFirst == undefined || targetFirst == null) && (settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight')) { 
 | 
                    targetFirst = true; 
 | 
                } 
 | 
                if (targetFirst) { 
 | 
                    $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild); 
 | 
                } else { 
 | 
                    $DOM.wrapper.appendChild($DOM.toastCapsule); 
 | 
                } 
 | 
            } 
 | 
            if (!isNaN(settings.zindex)) { 
 | 
                $DOM.wrapper.style.zIndex = settings.zindex; 
 | 
            } else { 
 | 
                console.warn('[' + PLUGIN_NAME + '] Invalid zIndex.'); 
 | 
            } 
 | 
        })(); 
 | 
        // Overlay 
 | 
        (function () { 
 | 
            if (settings.overlay) { 
 | 
                if (document.querySelector('.' + PLUGIN_NAME + '-overlay.fadeIn') !== null) { 
 | 
                    $DOM.overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay'); 
 | 
                    $DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.ref); 
 | 
                    if (!isNaN(settings.zindex) && settings.zindex !== null) { 
 | 
                        $DOM.overlay.style.zIndex = settings.zindex - 1; 
 | 
                    } 
 | 
                } else { 
 | 
                    $DOM.overlay.classList.add(PLUGIN_NAME + '-overlay'); 
 | 
                    $DOM.overlay.classList.add('fadeIn'); 
 | 
                    $DOM.overlay.style.background = settings.overlayColor; 
 | 
                    $DOM.overlay.setAttribute('data-iziToast-ref', settings.ref); 
 | 
                    if (!isNaN(settings.zindex) && settings.zindex !== null) { 
 | 
                        $DOM.overlay.style.zIndex = settings.zindex - 1; 
 | 
                    } 
 | 
                    document.querySelector('body').appendChild($DOM.overlay); 
 | 
                } 
 | 
                if (settings.overlayClose) { 
 | 
                    $DOM.overlay.removeEventListener('click', {}); 
 | 
                    $DOM.overlay.addEventListener('click', function (e) { 
 | 
                        that.hide(settings, $DOM.toast, 'overlay'); 
 | 
                    }); 
 | 
                } else { 
 | 
                    $DOM.overlay.removeEventListener('click', {}); 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        // Inside animations 
 | 
        (function () { 
 | 
            if (settings.animateInside) { 
 | 
                $DOM.toast.classList.add(PLUGIN_NAME + '-animateInside'); 
 | 
                var animationTimes = [200, 100, 300]; 
 | 
                if (settings.transitionIn == 'bounceInLeft' || settings.transitionIn == 'bounceInRight') { 
 | 
                    animationTimes = [400, 200, 400]; 
 | 
                } 
 | 
                if (settings.title.length > 0) { 
 | 
                    setTimeout(function () { 
 | 
                        $DOM.strong.classList.add('slideIn'); 
 | 
                    }, animationTimes[0]); 
 | 
                } 
 | 
                if (settings.message.length > 0) { 
 | 
                    setTimeout(function () { 
 | 
                        $DOM.p.classList.add('slideIn'); 
 | 
                    }, animationTimes[1]); 
 | 
                } 
 | 
                if (settings.icon || settings.iconUrl) { 
 | 
                    setTimeout(function () { 
 | 
                        $DOM.icon.classList.add('revealIn'); 
 | 
                    }, animationTimes[2]); 
 | 
                } 
 | 
                var counter = 150; 
 | 
                if (settings.buttons.length > 0 && $DOM.buttons) { 
 | 
                    setTimeout(function () { 
 | 
                        forEach($DOM.buttons.childNodes, function (element, index) { 
 | 
                            setTimeout(function () { 
 | 
                                element.classList.add('revealIn'); 
 | 
                            }, counter); 
 | 
                            counter = counter + 150; 
 | 
                        }); 
 | 
                    }, settings.inputs.length > 0 ? 150 : 0); 
 | 
                } 
 | 
                if (settings.inputs.length > 0 && $DOM.inputs) { 
 | 
                    counter = 150; 
 | 
                    forEach($DOM.inputs.childNodes, function (element, index) { 
 | 
                        setTimeout(function () { 
 | 
                            element.classList.add('revealIn'); 
 | 
                        }, counter); 
 | 
                        counter = counter + 150; 
 | 
                    }); 
 | 
                } 
 | 
            } 
 | 
        })(); 
 | 
        settings.onOpening.apply(null, [settings, $DOM.toast]); 
 | 
        try { 
 | 
            var event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true}); 
 | 
            document.dispatchEvent(event); 
 | 
        } catch (ex) { 
 | 
            console.warn(ex); 
 | 
        } 
 | 
        setTimeout(function () { 
 | 
            $DOM.toast.classList.remove(PLUGIN_NAME + '-opening'); 
 | 
            $DOM.toast.classList.add(PLUGIN_NAME + '-opened'); 
 | 
            try { 
 | 
                var event = new CustomEvent(PLUGIN_NAME + '-opened', { 
 | 
                    detail: settings, 
 | 
                    bubbles: true, 
 | 
                    cancelable: true 
 | 
                }); 
 | 
                document.dispatchEvent(event); 
 | 
            } catch (ex) { 
 | 
                console.warn(ex); 
 | 
            } 
 | 
            settings.onOpened.apply(null, [settings, $DOM.toast]); 
 | 
        }, 1000); 
 | 
        if (settings.drag) { 
 | 
            if (ACCEPTSTOUCH) { 
 | 
                $DOM.toast.addEventListener('touchstart', function (e) { 
 | 
                    drag.startMoving(this, that, settings, e); 
 | 
                }, false); 
 | 
                $DOM.toast.addEventListener('touchend', function (e) { 
 | 
                    drag.stopMoving(this, e); 
 | 
                }, false); 
 | 
            } else { 
 | 
                $DOM.toast.addEventListener('mousedown', function (e) { 
 | 
                    e.preventDefault(); 
 | 
                    drag.startMoving(this, that, settings, e); 
 | 
                }, false); 
 | 
                $DOM.toast.addEventListener('mouseup', function (e) { 
 | 
                    e.preventDefault(); 
 | 
                    drag.stopMoving(this, e); 
 | 
                }, false); 
 | 
            } 
 | 
        } 
 | 
        if (settings.closeOnEscape) { 
 | 
            document.addEventListener('keyup', function (evt) { 
 | 
                evt = evt || window.event; 
 | 
                if (evt.keyCode == 27) { 
 | 
                    that.hide(settings, $DOM.toast, 'esc'); 
 | 
                } 
 | 
            }); 
 | 
        } 
 | 
        if (settings.closeOnClick) { 
 | 
            $DOM.toast.addEventListener('click', function (evt) { 
 | 
                that.hide(settings, $DOM.toast, 'toast'); 
 | 
            }); 
 | 
        } 
 | 
        // 播放声音 
 | 
        if (settings.audio) { 
 | 
            that.playSound(settings.audio); 
 | 
        } 
 | 
        that.toast = $DOM.toast; 
 | 
    }; 
 | 
  
 | 
    // 控制进度条 
 | 
    $iziToast.progress = function (options, $toast, callback) { 
 | 
        var that = this, 
 | 
            ref = $toast.getAttribute('data-iziToast-ref'), 
 | 
            settings = extend(this.children[ref], options || {}), 
 | 
            $elem = $toast.querySelector('.' + PLUGIN_NAME + '-progressbar div'); 
 | 
        return { 
 | 
            start: function () { 
 | 
                if (typeof settings.time.REMAINING == 'undefined') { 
 | 
                    $toast.classList.remove(PLUGIN_NAME + '-reseted'); 
 | 
                    if ($elem !== null) { 
 | 
                        $elem.style.transition = 'width ' + settings.timeout + 'ms ' + settings.progressBarEasing; 
 | 
                        $elem.style.width = '0%'; 
 | 
                    } 
 | 
                    settings.time.START = new Date().getTime(); 
 | 
                    settings.time.END = settings.time.START + settings.timeout; 
 | 
                    settings.time.TIMER = setTimeout(function () { 
 | 
                        clearTimeout(settings.time.TIMER); 
 | 
                        if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) { 
 | 
                            that.hide(settings, $toast, 'timeout'); 
 | 
                            if (typeof callback === 'function') { 
 | 
                                callback.apply(that); 
 | 
                            } 
 | 
                        } 
 | 
                    }, settings.timeout); 
 | 
                    that.setSetting(ref, 'time', settings.time); 
 | 
                } 
 | 
            }, 
 | 
            pause: function () { 
 | 
                if (typeof settings.time.START !== 'undefined' && !$toast.classList.contains(PLUGIN_NAME + '-paused') && !$toast.classList.contains(PLUGIN_NAME + '-reseted')) { 
 | 
                    $toast.classList.add(PLUGIN_NAME + '-paused'); 
 | 
                    settings.time.REMAINING = settings.time.END - new Date().getTime(); 
 | 
                    clearTimeout(settings.time.TIMER); 
 | 
                    that.setSetting(ref, 'time', settings.time); 
 | 
                    if ($elem !== null) { 
 | 
                        var computedStyle = window.getComputedStyle($elem), 
 | 
                            propertyWidth = computedStyle.getPropertyValue('width'); 
 | 
                        $elem.style.transition = 'none'; 
 | 
                        $elem.style.width = propertyWidth; 
 | 
                    } 
 | 
                    if (typeof callback === 'function') { 
 | 
                        setTimeout(function () { 
 | 
                            callback.apply(that); 
 | 
                        }, 10); 
 | 
                    } 
 | 
                } 
 | 
            }, 
 | 
            resume: function () { 
 | 
                if (typeof settings.time.REMAINING !== 'undefined') { 
 | 
                    $toast.classList.remove(PLUGIN_NAME + '-paused'); 
 | 
                    if ($elem !== null) { 
 | 
                        $elem.style.transition = 'width ' + settings.time.REMAINING + 'ms ' + settings.progressBarEasing; 
 | 
                        $elem.style.width = '0%'; 
 | 
                    } 
 | 
                    settings.time.END = new Date().getTime() + settings.time.REMAINING; 
 | 
                    settings.time.TIMER = setTimeout(function () { 
 | 
                        clearTimeout(settings.time.TIMER); 
 | 
                        if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) { 
 | 
                            that.hide(settings, $toast, 'timeout'); 
 | 
                            if (typeof callback === 'function') { 
 | 
                                callback.apply(that); 
 | 
                            } 
 | 
                        } 
 | 
                    }, settings.time.REMAINING); 
 | 
                    that.setSetting(ref, 'time', settings.time); 
 | 
                } else { 
 | 
                    this.start(); 
 | 
                } 
 | 
            }, 
 | 
            reset: function () { 
 | 
                clearTimeout(settings.time.TIMER); 
 | 
                delete settings.time.REMAINING; 
 | 
                that.setSetting(ref, 'time', settings.time); 
 | 
                $toast.classList.add(PLUGIN_NAME + '-reseted'); 
 | 
                $toast.classList.remove(PLUGIN_NAME + '-paused'); 
 | 
                if ($elem !== null) { 
 | 
                    $elem.style.transition = 'none'; 
 | 
                    $elem.style.width = '100%'; 
 | 
                } 
 | 
                if (typeof callback === 'function') { 
 | 
                    setTimeout(function () { 
 | 
                        callback.apply(that); 
 | 
                    }, 10); 
 | 
                } 
 | 
            } 
 | 
        }; 
 | 
    }; 
 | 
  
 | 
    // 判断是否是ie9以下版本 
 | 
    var isIE9_ = function () { 
 | 
        var userAgent = navigator.userAgent; 
 | 
        if (window.navigator.userAgent.indexOf("MSIE") >= 1) { 
 | 
            var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); 
 | 
            reIE.test(userAgent); 
 | 
            var fIEVersion = parseFloat(RegExp["$1"]); 
 | 
            if (fIEVersion != 10) { 
 | 
                return true; 
 | 
            } 
 | 
        } 
 | 
        return false; 
 | 
    }; 
 | 
  
 | 
    // 给Element添加remove方法 
 | 
    if (!('remove' in Element.prototype)) { 
 | 
        Element.prototype.remove = function () { 
 | 
            if (this.parentNode) { 
 | 
                this.parentNode.removeChild(this); 
 | 
            } 
 | 
        }; 
 | 
    } 
 | 
  
 | 
    // 自定义事件 
 | 
    if (typeof window.CustomEvent !== 'function') { 
 | 
        var CustomEventPolyfill = function (event, params) { 
 | 
            params = params || {bubbles: false, cancelable: false, detail: undefined}; 
 | 
            var evt = document.createEvent('CustomEvent'); 
 | 
            evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); 
 | 
            return evt; 
 | 
        }; 
 | 
        CustomEventPolyfill.prototype = window.Event.prototype; 
 | 
        window.CustomEvent = CustomEventPolyfill; 
 | 
    } 
 | 
  
 | 
    // 遍历数据 
 | 
    var forEach = function (collection, callback, scope) { 
 | 
        if (Object.prototype.toString.call(collection) === '[object Object]') { 
 | 
            for (var prop in collection) { 
 | 
                if (Object.prototype.hasOwnProperty.call(collection, prop)) { 
 | 
                    callback.call(scope, collection[prop], prop, collection); 
 | 
                } 
 | 
            } 
 | 
        } else { 
 | 
            if (collection) { 
 | 
                for (var i = 0, len = collection.length; i < len; i++) { 
 | 
                    callback.call(scope, collection[i], i, collection); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 合并自定义参数和默认参数 
 | 
    var extend = function (defaults, options) { 
 | 
        var extended = {}; 
 | 
        forEach(defaults, function (value, prop) { 
 | 
            extended[prop] = defaults[prop]; 
 | 
        }); 
 | 
        forEach(options, function (value, prop) { 
 | 
            extended[prop] = options[prop]; 
 | 
        }); 
 | 
        return extended; 
 | 
    }; 
 | 
  
 | 
    // 创建新的文档片段 
 | 
    var createFragElem = function (htmlStr) { 
 | 
        var frag = document.createDocumentFragment(), 
 | 
            temp = document.createElement('div'); 
 | 
        temp.innerHTML = htmlStr; 
 | 
        while (temp.firstChild) { 
 | 
            frag.appendChild(temp.firstChild); 
 | 
        } 
 | 
        return frag; 
 | 
    }; 
 | 
  
 | 
    // 生成ID 
 | 
    var generateId = function (params) { 
 | 
        var newId = btoa(encodeURIComponent(params)); 
 | 
        return newId.replace(/=/g, ""); 
 | 
    }; 
 | 
  
 | 
    // 判断是否是颜色字符串 
 | 
    var isColor = function (color) { 
 | 
        if (color.substring(0, 1) == '#' || color.substring(0, 3) == 'rgb' || color.substring(0, 3) == 'hsl') { 
 | 
            return true; 
 | 
        } else { 
 | 
            return false; 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 判断是否是base64字符串 
 | 
    var isBase64 = function (str) { 
 | 
        try { 
 | 
            return btoa(atob(str)) == str; 
 | 
        } catch (err) { 
 | 
            return false; 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 拖拽方法 
 | 
    var drag = function () { 
 | 
        return { 
 | 
            move: function (toast, instance, settings, xpos) { 
 | 
                var opacity, 
 | 
                    opacityRange = 0.3, 
 | 
                    distance = 180; 
 | 
                if (xpos !== 0) { 
 | 
                    toast.classList.add(PLUGIN_NAME + '-dragged'); 
 | 
                    toast.style.transform = 'translateX(' + xpos + 'px)'; 
 | 
                    if (xpos > 0) { 
 | 
                        opacity = (distance - xpos) / distance; 
 | 
                        if (opacity < opacityRange) { 
 | 
                            instance.hide(extend(settings, { 
 | 
                                transitionOut: 'fadeOutRight', 
 | 
                                transitionOutMobile: 'fadeOutRight' 
 | 
                            }), toast, 'drag'); 
 | 
                        } 
 | 
                    } else { 
 | 
                        opacity = (distance + xpos) / distance; 
 | 
                        if (opacity < opacityRange) { 
 | 
                            instance.hide(extend(settings, { 
 | 
                                transitionOut: 'fadeOutLeft', 
 | 
                                transitionOutMobile: 'fadeOutLeft' 
 | 
                            }), toast, 'drag'); 
 | 
                        } 
 | 
                    } 
 | 
                    toast.style.opacity = opacity; 
 | 
                    if (opacity < opacityRange) { 
 | 
                        if (ISCHROME || ISFIREFOX) 
 | 
                            toast.style.left = xpos + 'px'; 
 | 
                        toast.parentNode.style.opacity = opacityRange; 
 | 
                        this.stopMoving(toast, null); 
 | 
                    } 
 | 
                } 
 | 
            }, 
 | 
            startMoving: function (toast, instance, settings, e) { 
 | 
                e = e || window.event; 
 | 
                var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX), 
 | 
                    toastLeft = toast.style.transform.replace('px)', ''); 
 | 
                toastLeft = toastLeft.replace('translateX(', ''); 
 | 
                var offsetX = posX - toastLeft; 
 | 
                if (settings.transitionIn) { 
 | 
                    toast.classList.remove(settings.transitionIn); 
 | 
                } 
 | 
                if (settings.transitionInMobile) { 
 | 
                    toast.classList.remove(settings.transitionInMobile); 
 | 
                } 
 | 
                toast.style.transition = ''; 
 | 
                if (ACCEPTSTOUCH) { 
 | 
                    document.ontouchmove = function (e) { 
 | 
                        e.preventDefault(); 
 | 
                        e = e || window.event; 
 | 
                        var posX = e.touches[0].clientX, 
 | 
                            finalX = posX - offsetX; 
 | 
                        drag.move(toast, instance, settings, finalX); 
 | 
                    }; 
 | 
                } else { 
 | 
                    document.onmousemove = function (e) { 
 | 
                        e.preventDefault(); 
 | 
                        e = e || window.event; 
 | 
                        var posX = e.clientX, 
 | 
                            finalX = posX - offsetX; 
 | 
                        drag.move(toast, instance, settings, finalX); 
 | 
                    }; 
 | 
                } 
 | 
            }, 
 | 
            stopMoving: function (toast, e) { 
 | 
                if (ACCEPTSTOUCH) { 
 | 
                    document.ontouchmove = function () { 
 | 
                    }; 
 | 
                } else { 
 | 
                    document.onmousemove = function () { 
 | 
                    }; 
 | 
                } 
 | 
                toast.style.opacity = ''; 
 | 
                toast.style.transform = ''; 
 | 
                if (toast.classList.contains(PLUGIN_NAME + '-dragged')) { 
 | 
                    toast.classList.remove(PLUGIN_NAME + '-dragged'); 
 | 
                    toast.style.transition = 'transform 0.4s ease, opacity 0.4s ease'; 
 | 
                    setTimeout(function () { 
 | 
                        toast.style.transition = ''; 
 | 
                    }, 400); 
 | 
                } 
 | 
            } 
 | 
        }; 
 | 
    }(); 
 | 
  
 | 
    // 兼容IE 
 | 
    var Base64 = { 
 | 
        _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (e) { 
 | 
            var t = ""; 
 | 
            var n, r, i, s, o, u, a; 
 | 
            var f = 0; 
 | 
            e = Base64._utf8_encode(e); 
 | 
            while (f < e.length) { 
 | 
                n = e.charCodeAt(f++); 
 | 
                r = e.charCodeAt(f++); 
 | 
                i = e.charCodeAt(f++); 
 | 
                s = n >> 2; 
 | 
                o = (n & 3) << 4 | r >> 4; 
 | 
                u = (r & 15) << 2 | i >> 6; 
 | 
                a = i & 63; 
 | 
                if (isNaN(r)) { 
 | 
                    u = a = 64 
 | 
                } else if (isNaN(i)) { 
 | 
                    a = 64 
 | 
                } 
 | 
                t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a) 
 | 
            } 
 | 
            return t 
 | 
        }, decode: function (e) { 
 | 
            var t = ""; 
 | 
            var n, r, i; 
 | 
            var s, o, u, a; 
 | 
            var f = 0; 
 | 
            e = e.replace(/[^A-Za-z0-9+/=]/g, ""); 
 | 
            while (f < e.length) { 
 | 
                s = this._keyStr.indexOf(e.charAt(f++)); 
 | 
                o = this._keyStr.indexOf(e.charAt(f++)); 
 | 
                u = this._keyStr.indexOf(e.charAt(f++)); 
 | 
                a = this._keyStr.indexOf(e.charAt(f++)); 
 | 
                n = s << 2 | o >> 4; 
 | 
                r = (o & 15) << 4 | u >> 2; 
 | 
                i = (u & 3) << 6 | a; 
 | 
                t = t + String.fromCharCode(n); 
 | 
                if (u != 64) { 
 | 
                    t = t + String.fromCharCode(r) 
 | 
                } 
 | 
                if (a != 64) { 
 | 
                    t = t + String.fromCharCode(i) 
 | 
                } 
 | 
            } 
 | 
            t = Base64._utf8_decode(t); 
 | 
            return t 
 | 
        }, _utf8_encode: function (e) { 
 | 
            e = e.replace(/rn/g, "n"); 
 | 
            var t = ""; 
 | 
            for (var n = 0; n < e.length; n++) { 
 | 
                var r = e.charCodeAt(n); 
 | 
                if (r < 128) { 
 | 
                    t += String.fromCharCode(r) 
 | 
                } else if (r > 127 && r < 2048) { 
 | 
                    t += String.fromCharCode(r >> 6 | 192); 
 | 
                    t += String.fromCharCode(r & 63 | 128) 
 | 
                } else { 
 | 
                    t += String.fromCharCode(r >> 12 | 224); 
 | 
                    t += String.fromCharCode(r >> 6 & 63 | 128); 
 | 
                    t += String.fromCharCode(r & 63 | 128) 
 | 
                } 
 | 
            } 
 | 
            return t 
 | 
        }, _utf8_decode: function (e) { 
 | 
            var t = ""; 
 | 
            var n = 0; 
 | 
            var r = c1 = c2 = 0; 
 | 
            while (n < e.length) { 
 | 
                r = e.charCodeAt(n); 
 | 
                if (r < 128) { 
 | 
                    t += String.fromCharCode(r); 
 | 
                    n++ 
 | 
                } else if (r > 191 && r < 224) { 
 | 
                    c2 = e.charCodeAt(n + 1); 
 | 
                    t += String.fromCharCode((r & 31) << 6 | c2 & 63); 
 | 
                    n += 2 
 | 
                } else { 
 | 
                    c2 = e.charCodeAt(n + 1); 
 | 
                    c3 = e.charCodeAt(n + 2); 
 | 
                    t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); 
 | 
                    n += 3 
 | 
                } 
 | 
            } 
 | 
            return t 
 | 
        } 
 | 
    }; 
 | 
    if (isIE9_()) { 
 | 
        // 兼容btoa和atob方法 
 | 
        window.btoa = function (str) { 
 | 
            return Base64.encode(str); 
 | 
        }; 
 | 
        window.atob = function (str) { 
 | 
            return Base64.decode(str); 
 | 
        }; 
 | 
        // 兼容classList属性 
 | 
        if (!("classList" in document.documentElement)) { 
 | 
            Object.defineProperty(window.Element.prototype, 'classList', { 
 | 
                get: function () { 
 | 
                    var self = this; 
 | 
  
 | 
                    function update(fn) { 
 | 
                        return function () { 
 | 
                            var className = self.className.replace(/^\s+|\s+$/g, ''), 
 | 
                                valArr = arguments; 
 | 
                            return fn(className, valArr) 
 | 
                        } 
 | 
                    } 
 | 
  
 | 
                    function add_rmv(className, valArr, tag) { 
 | 
                        for (var i in valArr) { 
 | 
                            if (typeof valArr[i] !== 'string' || !!~valArr[i].search(/\s+/g)) throw TypeError('the type of value is error') 
 | 
                            var temp = valArr[i] 
 | 
                            var flag = !!~className.search(new RegExp('(\\s+)?' + temp + '(\\s+)?')) 
 | 
                            if (tag === 1) { 
 | 
                                !flag ? className += ' ' + temp : '' 
 | 
                            } else if (tag === 2) { 
 | 
                                flag ? className = className.replace(new RegExp('(\\s+)?' + temp), '') : '' 
 | 
                            } 
 | 
                        } 
 | 
                        self.className = className; 
 | 
                        return tag; 
 | 
                    } 
 | 
  
 | 
                    return { 
 | 
                        add: update(function (className, valArr) { 
 | 
                            add_rmv(className, valArr, 1) 
 | 
                        }), 
 | 
                        remove: update(function (className, valArr) { 
 | 
                            add_rmv(className, valArr, 2) 
 | 
                        }), 
 | 
                        toggle: function (value) { 
 | 
                            if (typeof value !== 'string' || arguments.length === 0) throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument(string) required, but only 0 present.") 
 | 
                            if (arguments.length === 1) { 
 | 
                                this.contains(value) ? this.remove(value) : this.add(value) 
 | 
                                return 
 | 
                            } 
 | 
                            !arguments[1] ? this.remove(value) : this.add(value) 
 | 
                        }, 
 | 
                        contains: update(function (className, valArr) { 
 | 
                            if (valArr.length === 0) throw TypeError("Failed to execute 'contains' on 'DOMTokenList': 1 argument required, but only 0 present.") 
 | 
                            if (typeof valArr[0] !== 'string' || !!~valArr[0].search(/\s+/g)) return false 
 | 
                            return !!~className.search(new RegExp(valArr[0])) 
 | 
                        }), 
 | 
                        item: function (index) { 
 | 
                            typeof index === 'string' ? index = parseInt(index) : '' 
 | 
                            if (arguments.length === 0 || typeof index !== 'number') throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument required, but only 0 present.") 
 | 
                            var claArr = self.className.replace(/^\s+|\s+$/, '').split(/\s+/) 
 | 
                            var len = claArr.length 
 | 
                            if (index < 0 || index >= len) return null 
 | 
                            return claArr[index] 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            }); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // 播放声音 
 | 
    $iziToast.playSound = function (src) { 
 | 
        if (!(src.indexOf('http') == 0)) { 
 | 
            src = layui.cache.base + 'notice/' + src + '.wav'; 
 | 
        } 
 | 
        if (!!window.ActiveXObject || "ActiveXObject" in window) {  // IE 
 | 
            var embed = document.noticePlay; 
 | 
            if (embed) { 
 | 
                embed.remove(); 
 | 
            } 
 | 
            embed = document.createElement('embed'); 
 | 
            embed.setAttribute('name', 'noticePlay'); 
 | 
            embed.setAttribute('src', src); 
 | 
            embed.setAttribute('autostart', true); 
 | 
            embed.setAttribute('loop', false); 
 | 
            embed.setAttribute('hidden', true); 
 | 
            document.body.appendChild(embed); 
 | 
            embed = document.noticePlay; 
 | 
            embed.volume = 100; 
 | 
        } else {   // 非IE 
 | 
            var audio = document.createElement('audio'); 
 | 
            audio.setAttribute('hidden', true); 
 | 
            audio.setAttribute('src', src); 
 | 
            document.body.appendChild(audio); 
 | 
            audio.addEventListener('ended', function () { 
 | 
                audio.parentNode.removeChild(audio); 
 | 
            }, false); 
 | 
            audio.play(); 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    // 不同主题的通知 
 | 
    forEach(THEMES, function (theme, name) { 
 | 
        $iziToast[name] = function (options) { 
 | 
            var settings = extend(CONFIG, options || {}); 
 | 
            settings = extend(theme, settings || {}); 
 | 
            this.show(settings); 
 | 
        }; 
 | 
    }); 
 | 
  
 | 
    layui.link(layui.cache.base + 'notice/notice.css');  // 加载css 
 | 
    exports('notice', $iziToast); 
 | 
}); 
 |