{"version":3,"sources":["jsdelivr-header.js","/npm/node-snackbar@0.1.16/src/js/snackbar.js"],"names":[],"mappings":"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","file":"/npm/node-snackbar@0.1.16/src/js/snackbar.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/node-snackbar@0.1.16/src/js/snackbar.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\r\n * Snackbar v0.1.14\r\n * http://polonel.com/Snackbar\r\n *\r\n * Copyright 2018 Chris Brame and other contributors\r\n * Released under the MIT license\r\n * https://github.com/polonel/Snackbar/blob/master/LICENSE\r\n */\r\n\r\n(function(root, factory) {\r\n    'use strict';\r\n\r\n    if (typeof define === 'function' && define.amd) {\r\n        define([], function() {\r\n            return (root.Snackbar = factory());\r\n        });\r\n    } else if (typeof module === 'object' && module.exports) {\r\n        module.exports = root.Snackbar = factory();\r\n    } else {\r\n        root.Snackbar = factory();\r\n    }\r\n})(this, function() {\r\n    var Snackbar = {};\r\n\r\n    Snackbar.current = null;\r\n    var $defaults = {\r\n        text: 'Default Text',\r\n        textColor: '#FFFFFF',\r\n        width: 'auto',\r\n        showAction: true,\r\n        actionText: 'Dismiss',\r\n        actionTextAria: 'Dismiss, Description for Screen Readers',\r\n        alertScreenReader: false,\r\n        actionTextColor: '#4CAF50',\r\n        showSecondButton: false,\r\n        secondButtonText: '',\r\n        secondButtonAria: 'Description for Screen Readers',\r\n        secondButtonTextColor: '#4CAF50',\r\n        backgroundColor: '#323232',\r\n        pos: 'bottom-left',\r\n        duration: 5000,\r\n        customClass: '',\r\n        onActionClick: function(element) {\r\n            element.style.opacity = 0;\r\n        },\r\n        onSecondButtonClick: function(element) {},\r\n        onClose: function(element) {}\r\n    };\r\n\r\n    Snackbar.show = function($options) {\r\n        var options = Extend(true, $defaults, $options);\r\n\r\n        if (Snackbar.current) {\r\n            Snackbar.current.style.opacity = 0;\r\n            setTimeout(\r\n                function() {\r\n                    var $parent = this.parentElement;\r\n                    if ($parent)\r\n                    // possible null if too many/fast Snackbars\r\n                        $parent.removeChild(this);\r\n                }.bind(Snackbar.current),\r\n                500\r\n            );\r\n        }\r\n\r\n        Snackbar.snackbar = document.createElement('div');\r\n        Snackbar.snackbar.className = 'snackbar-container ' + options.customClass;\r\n        Snackbar.snackbar.style.width = options.width;\r\n        var $p = document.createElement('p');\r\n        $p.style.margin = 0;\r\n        $p.style.padding = 0;\r\n        $p.style.color = options.textColor;\r\n        $p.style.fontSize = '14px';\r\n        $p.style.fontWeight = 300;\r\n        $p.style.lineHeight = '1em';\r\n        $p.innerHTML = options.text;\r\n        Snackbar.snackbar.appendChild($p);\r\n        Snackbar.snackbar.style.background = options.backgroundColor;\r\n\r\n        if (options.showSecondButton) {\r\n            var secondButton = document.createElement('button');\r\n            secondButton.className = 'action';\r\n            secondButton.innerHTML = options.secondButtonText;\r\n            secondButton.setAttribute('aria-label', options.secondButtonAria);\r\n            secondButton.style.color = options.secondButtonTextColor;\r\n            secondButton.addEventListener('click', function() {\r\n                options.onSecondButtonClick(Snackbar.snackbar);\r\n            });\r\n            Snackbar.snackbar.appendChild(secondButton);\r\n        }\r\n\r\n        if (options.showAction) {\r\n            var actionButton = document.createElement('button');\r\n            actionButton.className = 'action';\r\n            actionButton.innerHTML = options.actionText;\r\n            actionButton.setAttribute('aria-label', options.actionTextAria);\r\n            actionButton.style.color = options.actionTextColor;\r\n            actionButton.addEventListener('click', function() {\r\n                options.onActionClick(Snackbar.snackbar);\r\n            });\r\n            Snackbar.snackbar.appendChild(actionButton);\r\n        }\r\n\r\n        if (options.duration) {\r\n            setTimeout(\r\n                function() {\r\n                    if (Snackbar.current === this) {\r\n                        Snackbar.current.style.opacity = 0;\r\n                        // When natural remove event occurs let's move the snackbar to its origins\r\n                        Snackbar.current.style.top = '-100px';\r\n                        Snackbar.current.style.bottom = '-100px';\r\n                    }\r\n                }.bind(Snackbar.snackbar),\r\n                options.duration\r\n            );\r\n        }\r\n\r\n        if (options.alertScreenReader) {\r\n           Snackbar.snackbar.setAttribute('role', 'alert');\r\n        }\r\n\r\n        Snackbar.snackbar.addEventListener(\r\n            'transitionend',\r\n            function(event, elapsed) {\r\n                if (event.propertyName === 'opacity' && this.style.opacity === '0') {\r\n                    if (typeof(options.onClose) === 'function')\r\n                        options.onClose(this);\r\n\r\n                    this.parentElement.removeChild(this);\r\n                    if (Snackbar.current === this) {\r\n                        Snackbar.current = null;\r\n                    }\r\n                }\r\n            }.bind(Snackbar.snackbar)\r\n        );\r\n\r\n        Snackbar.current = Snackbar.snackbar;\r\n\r\n        document.body.appendChild(Snackbar.snackbar);\r\n        var $bottom = getComputedStyle(Snackbar.snackbar).bottom;\r\n        var $top = getComputedStyle(Snackbar.snackbar).top;\r\n        Snackbar.snackbar.style.opacity = 1;\r\n        Snackbar.snackbar.className =\r\n            'snackbar-container ' + options.customClass + ' snackbar-pos ' + options.pos;\r\n    };\r\n\r\n    Snackbar.close = function() {\r\n        if (Snackbar.current) {\r\n            Snackbar.current.style.opacity = 0;\r\n        }\r\n    };\r\n\r\n    // Pure JS Extend\r\n    // http://gomakethings.com/vanilla-javascript-version-of-jquery-extend/\r\n    var Extend = function() {\r\n        var extended = {};\r\n        var deep = false;\r\n        var i = 0;\r\n        var length = arguments.length;\r\n\r\n        if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\r\n            deep = arguments[0];\r\n            i++;\r\n        }\r\n\r\n        var merge = function(obj) {\r\n            for (var prop in obj) {\r\n                if (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n                    if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\r\n                        extended[prop] = Extend(true, extended[prop], obj[prop]);\r\n                    } else {\r\n                        extended[prop] = obj[prop];\r\n                    }\r\n                }\r\n            }\r\n        };\r\n\r\n        for (; i < length; i++) {\r\n            var obj = arguments[i];\r\n            merge(obj);\r\n        }\r\n\r\n        return extended;\r\n    };\r\n\r\n    return Snackbar;\r\n});\r\n"]}