{"version":3,"sources":["sweet-alert.js"],"names":["window","document","undefined","setParameters","params","modal","getModal","$title","querySelector","$text","$cancelBtn","$confirmBtn","innerHTML","title","escapeHtml","split","join","text","show","customClass","addClass","setAttribute","getAttribute","removeClass","hide","querySelectorAll","type","isIE8","validType","i","alertTypes","length","logStr","$icon","imageUrl","$customIcon","style","backgroundImage","_imgWidth","_imgHeight","imageSize","dimensions","toString","imgWidth","imgHeight","showCancelButton","display","showConfirmButton","cancelButtonText","confirmButtonText","backgroundColor","confirmButtonColor","setFocusStyle","allowOutsideClick","hasDoneFunction","animation","timer","colorLuminance","hex","lum","String","replace","c","rgb","parseInt","substr","Math","round","min","max","extend","a","b","key","hasOwnProperty","hexToRgb","result","exec","$button","bgColor","rgbColor","boxShadow","openModal","fadeIn","getOverlay","previousActiveElement","activeElement","$okButton","focus","setTimeout","timeout","sweetAlert","close","fixVerticalPosition","marginTop","getTopMargin","attachEvent","addEventListener","string","console","log","previousDocumentClick","previousWindowKeyDown","lastFocusedButton","swal","modalClass","overlayClass","defaultParams","closeOnConfirm","closeOnCancel","html","allowEscapeKey","$modal","sweetAlertInitialize","hasClass","elem","className","RegExp","test","newClass","indexOf","str","div","createElement","appendChild","createTextNode","_show","opacity","elems","_hide","isDescendant","parent","child","node","parentNode","left","padding","height","clientHeight","getComputedStyle","getPropertyValue","currentStyle","interval","last","Date","tick","fadeOut","fireClick","MouseEvent","mevt","view","bubbles","cancelable","dispatchEvent","createEvent","evt","initEvent","createEventObject","fireEvent","onclick","stopEventPropagation","e","stopPropagation","preventDefault","event","cancelBubble","sweetHTML","sweetWrap","firstChild","body","argumentOrDefault","args","customizations","handleKeyDown","keyCode","which","$targetElement","target","srcElement","btnIndex","$modalButtons","$cancelButton","handleOnBlur","$focusElement","relatedTarget","modalIsVisible","arguments","availableCustoms","numCustoms","customIndex","customName","doneFunction","onButtonEvent","targetedConfirm","doneFunctionExists","$confirmButton","functionAsStr","functionHandlesCancel","substring","$buttons","onmouseover","onmouseout","onmousedown","onfocus","clickedOnModal","clickedOnModalChild","outsideClickIsAllowed","onkeydown","onblur","setDefaults","userParams","Error","$successIcon","$errorIcon","$warningIcon","clearTimeout","define","amd","module","exports"],"mappings":"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","file":"sweet-alert.js","sourcesContent":["// SweetAlert\r\n// 2014 (c) - Tristan Edwards\r\n// github.com/t4t5/sweetalert\r\n; (function (window, document, undefined) {\r\n\r\n var modalClass = '.sweet-alert',\r\n overlayClass = '.sweet-overlay',\r\n alertTypes = ['error', 'warning', 'info', 'success'],\r\n defaultParams = {\r\n title: '',\r\n text: '',\r\n type: null,\r\n allowOutsideClick: false,\r\n showConfirmButton: true,\r\n showCancelButton: false,\r\n closeOnConfirm: true,\r\n closeOnCancel: true,\r\n confirmButtonText: 'OK',\r\n confirmButtonColor: '#AEDEF4',\r\n cancelButtonText: 'Cancel',\r\n imageUrl: null,\r\n imageSize: null,\r\n timer: null,\r\n customClass: '',\r\n html: false,\r\n animation: true,\r\n allowEscapeKey: true\r\n };\r\n\r\n\r\n /*\r\n * Manipulate DOM\r\n */\r\n\r\n var getModal = function () {\r\n var $modal = document.querySelector(modalClass);\r\n\r\n if (!$modal) {\r\n sweetAlertInitialize();\r\n $modal = getModal();\r\n }\r\n\r\n return $modal;\r\n },\r\n getOverlay = function () {\r\n return document.querySelector(overlayClass);\r\n },\r\n hasClass = function (elem, className) {\r\n return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');\r\n },\r\n addClass = function (elem, className) {\r\n if (!hasClass(elem, className)) {\r\n elem.className += ' ' + className;\r\n }\r\n },\r\n removeClass = function (elem, className) {\r\n var newClass = ' ' + elem.className.replace(/[\\t\\r\\n]/g, ' ') + ' ';\r\n if (hasClass(elem, className)) {\r\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\r\n newClass = newClass.replace(' ' + className + ' ', ' ');\r\n }\r\n elem.className = newClass.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n },\r\n escapeHtml = function (str) {\r\n var div = document.createElement('div');\r\n div.appendChild(document.createTextNode(str));\r\n return div.innerHTML;\r\n },\r\n _show = function (elem) {\r\n elem.style.opacity = '';\r\n elem.style.display = 'block';\r\n },\r\n show = function (elems) {\r\n if (elems && !elems.length) {\r\n return _show(elems);\r\n }\r\n for (var i = 0; i < elems.length; ++i) {\r\n _show(elems[i]);\r\n }\r\n },\r\n _hide = function (elem) {\r\n elem.style.opacity = '';\r\n elem.style.display = 'none';\r\n },\r\n hide = function (elems) {\r\n if (elems && !elems.length) {\r\n return _hide(elems);\r\n }\r\n for (var i = 0; i < elems.length; ++i) {\r\n _hide(elems[i]);\r\n }\r\n },\r\n isDescendant = function (parent, child) {\r\n var node = child.parentNode;\r\n while (node !== null) {\r\n if (node === parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n },\r\n getTopMargin = function (elem) {\r\n elem.style.left = '-9999px';\r\n elem.style.display = 'block';\r\n\r\n var height = elem.clientHeight,\r\n padding;\r\n if (typeof getComputedStyle !== \"undefined\") { /* IE 8 */\r\n padding = parseInt(getComputedStyle(elem).getPropertyValue('padding'), 10);\r\n } else {\r\n padding = parseInt(elem.currentStyle.padding);\r\n }\r\n\r\n elem.style.left = '';\r\n elem.style.display = 'none';\r\n return ('-' + parseInt(height / 2 + padding) + 'px');\r\n },\r\n fadeIn = function (elem, interval) {\r\n if (+elem.style.opacity < 1) {\r\n interval = interval || 16;\r\n elem.style.opacity = 0;\r\n elem.style.display = 'block';\r\n var last = +new Date();\r\n var tick = function () {\r\n elem.style.opacity = +elem.style.opacity + (new Date() - last) / 100;\r\n last = +new Date();\r\n\r\n if (+elem.style.opacity < 1) {\r\n setTimeout(tick, interval);\r\n }\r\n };\r\n tick();\r\n }\r\n elem.style.display = 'block'; //fallback IE8\r\n },\r\n fadeOut = function (elem, interval) {\r\n interval = interval || 16;\r\n elem.style.opacity = 1;\r\n var last = +new Date();\r\n var tick = function () {\r\n elem.style.opacity = +elem.style.opacity - (new Date() - last) / 100;\r\n last = +new Date();\r\n\r\n if (+elem.style.opacity > 0) {\r\n setTimeout(tick, interval);\r\n } else {\r\n elem.style.display = 'none';\r\n }\r\n };\r\n tick();\r\n },\r\n fireClick = function (node) {\r\n // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/\r\n // Then fixed for today's Chrome browser.\r\n if (typeof MouseEvent === 'function') {\r\n // Up-to-date approach\r\n var mevt = new MouseEvent('click', {\r\n view: window,\r\n bubbles: false,\r\n cancelable: true\r\n });\r\n node.dispatchEvent(mevt);\r\n } else if (document.createEvent) {\r\n // Fallback\r\n var evt = document.createEvent('MouseEvents');\r\n evt.initEvent('click', false, false);\r\n node.dispatchEvent(evt);\r\n } else if (document.createEventObject) {\r\n node.fireEvent('onclick');\r\n } else if (typeof node.onclick === 'function') {\r\n node.onclick();\r\n }\r\n },\r\n stopEventPropagation = function (e) {\r\n // In particular, make sure the space bar doesn't scroll the main window.\r\n if (typeof e.stopPropagation === 'function') {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {\r\n window.event.cancelBubble = true;\r\n }\r\n };\r\n\r\n // Remember state in cases where opening and handling a modal will fiddle with it.\r\n var previousActiveElement,\r\n previousDocumentClick,\r\n previousWindowKeyDown,\r\n lastFocusedButton;\r\n\r\n\r\n /*\r\n * Add modal + overlay to DOM\r\n */\r\n\r\n var sweetAlertInitialize = function () {\r\n var sweetHTML = '

Title

Text

',\r\n sweetWrap = document.createElement('div');\r\n\r\n sweetWrap.innerHTML = sweetHTML;\r\n\r\n // Append elements to body\r\n while (sweetWrap.firstChild) {\r\n document.body.appendChild(sweetWrap.firstChild);\r\n }\r\n };\r\n\r\n\r\n /*\r\n * Global sweetAlert function\r\n */\r\n var sweetAlert, swal;\r\n\r\n sweetAlert = swal = function () {\r\n var customizations = arguments[0];\r\n\r\n /*\r\n * Use argument if defined or default value from params object otherwise.\r\n * Supports the case where a default value is boolean true and should be\r\n * overridden by a corresponding explicit argument which is boolean false.\r\n */\r\n function argumentOrDefault(key) {\r\n var args = customizations;\r\n\r\n if (typeof args[key] !== 'undefined') {\r\n return args[key];\r\n } else {\r\n return defaultParams[key];\r\n }\r\n }\r\n\r\n if (arguments[0] === undefined) {\r\n logStr('SweetAlert expects at least 1 attribute!');\r\n return false;\r\n }\r\n\r\n var params = extend({}, defaultParams);\r\n\r\n switch (typeof arguments[0]) {\r\n\r\n // Ex: swal(\"Hello\", \"Just testing\", \"info\");\r\n case 'string':\r\n params.title = arguments[0];\r\n params.text = arguments[1] || '';\r\n params.type = arguments[2] || '';\r\n\r\n break;\r\n\r\n // Ex: swal({title:\"Hello\", text: \"Just testing\", type: \"info\"});\r\n case 'object':\r\n if (arguments[0].title === undefined) {\r\n logStr('Missing \"title\" argument!');\r\n return false;\r\n }\r\n\r\n params.title = arguments[0].title;\r\n\r\n var availableCustoms = [\r\n 'text',\r\n 'type',\r\n 'customClass',\r\n 'allowOutsideClick',\r\n 'showConfirmButton',\r\n 'showCancelButton',\r\n 'closeOnConfirm',\r\n 'closeOnCancel',\r\n 'timer',\r\n 'confirmButtonColor',\r\n 'cancelButtonText',\r\n 'imageUrl',\r\n 'imageSize',\r\n 'html',\r\n 'animation',\r\n 'allowEscapeKey'];\r\n\r\n // It would be nice to just use .forEach here, but IE8... :(\r\n var numCustoms = availableCustoms.length;\r\n for (var customIndex = 0; customIndex < numCustoms; customIndex++) {\r\n var customName = availableCustoms[customIndex];\r\n params[customName] = argumentOrDefault(customName);\r\n }\r\n\r\n // Show \"Confirm\" instead of \"OK\" if cancel button is visible\r\n params.confirmButtonText = (params.showCancelButton) ? 'Confirm' : defaultParams.confirmButtonText;\r\n params.confirmButtonText = argumentOrDefault('confirmButtonText');\r\n\r\n // Function to call when clicking on cancel/OK\r\n params.doneFunction = arguments[1] || null;\r\n\r\n break;\r\n\r\n default:\r\n logStr('Unexpected type of argument! Expected \"string\" or \"object\", got ' + typeof arguments[0]);\r\n return false;\r\n\r\n }\r\n\r\n setParameters(params);\r\n fixVerticalPosition();\r\n openModal();\r\n\r\n\r\n // Modal interactions\r\n var modal = getModal();\r\n\r\n // Mouse interactions\r\n var onButtonEvent = function (event) {\r\n var e = event || window.event;\r\n var target = e.target || e.srcElement,\r\n targetedConfirm = (target.className.indexOf(\"confirm\") !== -1),\r\n modalIsVisible = hasClass(modal, 'visible'),\r\n doneFunctionExists = (params.doneFunction && modal.getAttribute('data-has-done-function') === 'true');\r\n\r\n switch (e.type) {\r\n case (\"mouseover\"):\r\n if (targetedConfirm) {\r\n target.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.04);\r\n }\r\n break;\r\n case (\"mouseout\"):\r\n if (targetedConfirm) {\r\n target.style.backgroundColor = params.confirmButtonColor;\r\n }\r\n break;\r\n case (\"mousedown\"):\r\n if (targetedConfirm) {\r\n target.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.14);\r\n }\r\n break;\r\n case (\"mouseup\"):\r\n if (targetedConfirm) {\r\n target.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.04);\r\n }\r\n break;\r\n case (\"focus\"):\r\n var $confirmButton = modal.querySelector('button.confirm'),\r\n $cancelButton = modal.querySelector('button.cancel');\r\n\r\n if (targetedConfirm) {\r\n $cancelButton.style.boxShadow = 'none';\r\n } else {\r\n $confirmButton.style.boxShadow = 'none';\r\n }\r\n break;\r\n case (\"click\"):\r\n if (targetedConfirm && doneFunctionExists && modalIsVisible) { // Clicked \"confirm\"\r\n\r\n params.doneFunction(true);\r\n\r\n if (params.closeOnConfirm) {\r\n sweetAlert.close();\r\n }\r\n } else if (doneFunctionExists && modalIsVisible) { // Clicked \"cancel\"\r\n\r\n // Check if callback function expects a parameter (to track cancel actions)\r\n var functionAsStr = String(params.doneFunction).replace(/\\s/g, '');\r\n var functionHandlesCancel = functionAsStr.substring(0, 9) === \"function(\" && functionAsStr.substring(9, 10) !== \")\";\r\n\r\n if (functionHandlesCancel) {\r\n params.doneFunction(false);\r\n }\r\n\r\n if (params.closeOnCancel) {\r\n sweetAlert.close();\r\n }\r\n } else {\r\n sweetAlert.close();\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n var $buttons = modal.querySelectorAll('button');\r\n for (var i = 0; i < $buttons.length; i++) {\r\n $buttons[i].onclick = onButtonEvent;\r\n $buttons[i].onmouseover = onButtonEvent;\r\n $buttons[i].onmouseout = onButtonEvent;\r\n $buttons[i].onmousedown = onButtonEvent;\r\n //$buttons[i].onmouseup = onButtonEvent;\r\n $buttons[i].onfocus = onButtonEvent;\r\n }\r\n\r\n // Remember the current document.onclick event.\r\n previousDocumentClick = document.onclick;\r\n document.onclick = function (event) {\r\n var e = event || window.event;\r\n var target = e.target || e.srcElement;\r\n\r\n var clickedOnModal = (modal === target),\r\n clickedOnModalChild = isDescendant(modal, target),\r\n modalIsVisible = hasClass(modal, 'visible'),\r\n outsideClickIsAllowed = modal.getAttribute('data-allow-ouside-click') === 'true';\r\n\r\n if (!clickedOnModal && !clickedOnModalChild && modalIsVisible && outsideClickIsAllowed) {\r\n sweetAlert.close();\r\n }\r\n };\r\n\r\n\r\n // Keyboard interactions\r\n var $okButton = modal.querySelector('button.confirm'),\r\n $cancelButton = modal.querySelector('button.cancel'),\r\n $modalButtons = modal.querySelectorAll('button[tabindex]');\r\n\r\n\r\n function handleKeyDown(event) {\r\n var e = event || window.event;\r\n var keyCode = e.keyCode || e.which;\r\n\r\n if ([9, 13, 32, 27].indexOf(keyCode) === -1) {\r\n // Don't do work on keys we don't care about.\r\n return;\r\n }\r\n\r\n var $targetElement = e.target || e.srcElement;\r\n\r\n var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\r\n for (var i = 0; i < $modalButtons.length; i++) {\r\n if ($targetElement === $modalButtons[i]) {\r\n btnIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (keyCode === 9) {\r\n // TAB\r\n if (btnIndex === -1) {\r\n // No button focused. Jump to the confirm button.\r\n $targetElement = $okButton;\r\n } else {\r\n // Cycle to the next button\r\n if (btnIndex === $modalButtons.length - 1) {\r\n $targetElement = $modalButtons[0];\r\n } else {\r\n $targetElement = $modalButtons[btnIndex + 1];\r\n }\r\n }\r\n\r\n stopEventPropagation(e);\r\n $targetElement.focus();\r\n setFocusStyle($targetElement, params.confirmButtonColor); // TODO\r\n\r\n } else {\r\n if (keyCode === 13 || keyCode === 32) {\r\n if (btnIndex === -1) {\r\n // ENTER/SPACE clicked outside of a button.\r\n $targetElement = $okButton;\r\n } else {\r\n // Do nothing - let the browser handle it.\r\n $targetElement = undefined;\r\n }\r\n } else if (keyCode === 27 && params.allowEscapeKey === true) {\r\n $targetElement = $cancelButton;\r\n } else {\r\n // Fallback - let the browser handle it.\r\n $targetElement = undefined;\r\n }\r\n\r\n if ($targetElement !== undefined) {\r\n fireClick($targetElement, e);\r\n }\r\n }\r\n }\r\n\r\n previousWindowKeyDown = window.onkeydown;\r\n\r\n window.onkeydown = handleKeyDown;\r\n\r\n function handleOnBlur(event) {\r\n var e = event || window.event;\r\n var $targetElement = e.target || e.srcElement,\r\n $focusElement = e.relatedTarget,\r\n modalIsVisible = hasClass(modal, 'visible');\r\n\r\n if (modalIsVisible) {\r\n var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\r\n\r\n if ($focusElement !== null) {\r\n // If we picked something in the DOM to focus to, let's see if it was a button.\r\n for (var i = 0; i < $modalButtons.length; i++) {\r\n if ($focusElement === $modalButtons[i]) {\r\n btnIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (btnIndex === -1) {\r\n // Something in the dom, but not a visible button. Focus back on the button.\r\n $targetElement.focus();\r\n }\r\n } else {\r\n // Exiting the DOM (e.g. clicked in the URL bar);\r\n lastFocusedButton = $targetElement;\r\n }\r\n }\r\n }\r\n\r\n $okButton.onblur = handleOnBlur;\r\n $cancelButton.onblur = handleOnBlur;\r\n\r\n window.onfocus = function () {\r\n // When the user has focused away and focused back from the whole window.\r\n window.setTimeout(function () {\r\n // Put in a timeout to jump out of the event sequence. Calling focus() in the event\r\n // sequence confuses things.\r\n if (lastFocusedButton !== undefined) {\r\n lastFocusedButton.focus();\r\n lastFocusedButton = undefined;\r\n }\r\n }, 0);\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Set default params for each popup\r\n * @param {Object} userParams\r\n */\r\n sweetAlert.setDefaults = swal.setDefaults = function (userParams) {\r\n if (!userParams) {\r\n throw new Error('userParams is required');\r\n }\r\n if (typeof userParams !== 'object') {\r\n throw new Error('userParams has to be a object');\r\n }\r\n\r\n extend(defaultParams, userParams);\r\n };\r\n\r\n\r\n /*\r\n * Set type, text and actions on modal\r\n */\r\n\r\n function setParameters(params) {\r\n var modal = getModal();\r\n\r\n var $title = modal.querySelector('h2'),\r\n $text = modal.querySelector('p'),\r\n $cancelBtn = modal.querySelector('button.cancel'),\r\n $confirmBtn = modal.querySelector('button.confirm');\r\n\r\n // Title\r\n $title.innerHTML = (params.html) ? params.title : escapeHtml(params.title).split(\"\\n\").join(\"
\");\r\n\r\n // Text\r\n $text.innerHTML = (params.html) ? params.text : escapeHtml(params.text || '').split(\"\\n\").join(\"
\");\r\n\r\n if (params.text) {\r\n show($text);\r\n }\r\n\r\n //Custom Class\r\n if (params.customClass) {\r\n addClass(modal, params.customClass);\r\n modal.setAttribute('data-custom-class', params.customClass);\r\n } else {\r\n // Find previously set classes and remove them\r\n var customClass = modal.getAttribute('data-custom-class');\r\n removeClass(modal, customClass);\r\n modal.setAttribute('data-custom-class', \"\");\r\n }\r\n\r\n // Icon\r\n hide(modal.querySelectorAll('.sa-icon'));\r\n if (params.type && !isIE8()) {\r\n var validType = false;\r\n for (var i = 0; i < alertTypes.length; i++) {\r\n if (params.type === alertTypes[i]) {\r\n validType = true;\r\n break;\r\n }\r\n }\r\n if (!validType) {\r\n logStr('Unknown alert type: ' + params.type);\r\n return false;\r\n }\r\n var $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);\r\n show($icon);\r\n\r\n // Animate icon\r\n switch (params.type) {\r\n case \"success\":\r\n addClass($icon, 'animate');\r\n addClass($icon.querySelector('.sa-tip'), 'animateSuccessTip');\r\n addClass($icon.querySelector('.sa-long'), 'animateSuccessLong');\r\n break;\r\n case \"error\":\r\n addClass($icon, 'animateErrorIcon');\r\n addClass($icon.querySelector('.sa-x-mark'), 'animateXMark');\r\n break;\r\n case \"warning\":\r\n addClass($icon, 'pulseWarning');\r\n addClass($icon.querySelector('.sa-body'), 'pulseWarningIns');\r\n addClass($icon.querySelector('.sa-dot'), 'pulseWarningIns');\r\n break;\r\n }\r\n }\r\n\r\n // Custom image\r\n if (params.imageUrl) {\r\n var $customIcon = modal.querySelector('.sa-icon.sa-custom');\r\n\r\n $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';\r\n show($customIcon);\r\n\r\n var _imgWidth = 80,\r\n _imgHeight = 80;\r\n\r\n if (params.imageSize) {\r\n var dimensions = params.imageSize.toString().split('x');\r\n var imgWidth = dimensions[0];\r\n var imgHeight = dimensions[1];\r\n\r\n if (!imgWidth || !imgHeight) {\r\n logStr(\"Parameter imageSize expects value with format WIDTHxHEIGHT, got \" + params.imageSize);\r\n } else {\r\n _imgWidth = imgWidth;\r\n _imgHeight = imgHeight;\r\n }\r\n }\r\n $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');\r\n }\r\n\r\n // Show cancel button?\r\n modal.setAttribute('data-has-cancel-button', params.showCancelButton);\r\n if (params.showCancelButton) {\r\n $cancelBtn.style.display = 'inline-block';\r\n } else {\r\n hide($cancelBtn);\r\n }\r\n\r\n // Show confirm button?\r\n modal.setAttribute('data-has-confirm-button', params.showConfirmButton);\r\n if (params.showConfirmButton) {\r\n $confirmBtn.style.display = 'inline-block';\r\n } else {\r\n hide($confirmBtn);\r\n }\r\n\r\n // Edit text on cancel and confirm buttons\r\n if (params.cancelButtonText) {\r\n $cancelBtn.innerHTML = escapeHtml(params.cancelButtonText);\r\n }\r\n if (params.confirmButtonText) {\r\n $confirmBtn.innerHTML = escapeHtml(params.confirmButtonText);\r\n }\r\n\r\n // Set confirm button to selected background color\r\n $confirmBtn.style.backgroundColor = params.confirmButtonColor;\r\n\r\n // Set box-shadow to default focused button\r\n setFocusStyle($confirmBtn, params.confirmButtonColor);\r\n\r\n // Allow outside click?\r\n modal.setAttribute('data-allow-ouside-click', params.allowOutsideClick);\r\n\r\n // Done-function\r\n var hasDoneFunction = (params.doneFunction) ? true : false;\r\n modal.setAttribute('data-has-done-function', hasDoneFunction);\r\n\r\n // Prevent modal from animating\r\n if (!params.animation) {\r\n modal.setAttribute('data-animation', 'none');\r\n } else {\r\n modal.setAttribute('data-animation', 'pop');\r\n }\r\n\r\n // Close timer\r\n modal.setAttribute('data-timer', params.timer);\r\n }\r\n\r\n\r\n /*\r\n * Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)\r\n */\r\n\r\n function colorLuminance(hex, lum) {\r\n // Validate hex string\r\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n if (hex.length < 6) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n lum = lum || 0;\r\n\r\n // Convert to decimal and change luminosity\r\n var rgb = \"#\", c, i;\r\n for (i = 0; i < 3; i++) {\r\n c = parseInt(hex.substr(i * 2, 2), 16);\r\n c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\r\n rgb += (\"00\" + c).substr(c.length);\r\n }\r\n\r\n return rgb;\r\n }\r\n\r\n function extend(a, b) {\r\n for (var key in b) {\r\n if (b.hasOwnProperty(key)) {\r\n a[key] = b[key];\r\n }\r\n }\r\n\r\n return a;\r\n }\r\n\r\n function hexToRgb(hex) {\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? parseInt(result[1], 16) + ', ' + parseInt(result[2], 16) + ', ' + parseInt(result[3], 16) : null;\r\n }\r\n\r\n // Add box-shadow style to button (depending on its chosen bg-color)\r\n function setFocusStyle($button, bgColor) {\r\n var rgbColor = hexToRgb(bgColor);\r\n $button.style.boxShadow = '0 0 2px rgba(' + rgbColor + ', 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.05)';\r\n }\r\n\r\n\r\n // Animation when opening modal\r\n function openModal() {\r\n var modal = getModal();\r\n fadeIn(getOverlay(), 10);\r\n show(modal);\r\n addClass(modal, 'showSweetAlert');\r\n removeClass(modal, 'hideSweetAlert');\r\n\r\n previousActiveElement = document.activeElement;\r\n var $okButton = modal.querySelector('button.confirm');\r\n $okButton.focus();\r\n\r\n setTimeout(function () {\r\n addClass(modal, 'visible');\r\n }, 500);\r\n\r\n var timer = modal.getAttribute('data-timer');\r\n\r\n if (timer !== \"null\" && timer !== \"\") {\r\n modal.timeout = setTimeout(function () {\r\n sweetAlert.close();\r\n }, timer);\r\n }\r\n }\r\n\r\n\r\n // Aninmation when closing modal\r\n sweetAlert.close = swal.close = function () {\r\n var modal = getModal();\r\n fadeOut(getOverlay(), 5);\r\n fadeOut(modal, 5);\r\n removeClass(modal, 'showSweetAlert');\r\n addClass(modal, 'hideSweetAlert');\r\n removeClass(modal, 'visible');\r\n\r\n\r\n // Reset icon animations\r\n\r\n var $successIcon = modal.querySelector('.sa-icon.sa-success');\r\n removeClass($successIcon, 'animate');\r\n removeClass($successIcon.querySelector('.sa-tip'), 'animateSuccessTip');\r\n removeClass($successIcon.querySelector('.sa-long'), 'animateSuccessLong');\r\n\r\n var $errorIcon = modal.querySelector('.sa-icon.sa-error');\r\n removeClass($errorIcon, 'animateErrorIcon');\r\n removeClass($errorIcon.querySelector('.sa-x-mark'), 'animateXMark');\r\n\r\n var $warningIcon = modal.querySelector('.sa-icon.sa-warning');\r\n removeClass($warningIcon, 'pulseWarning');\r\n removeClass($warningIcon.querySelector('.sa-body'), 'pulseWarningIns');\r\n removeClass($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns');\r\n\r\n\r\n // Reset the page to its previous state\r\n window.onkeydown = previousWindowKeyDown;\r\n document.onclick = previousDocumentClick;\r\n if (previousActiveElement) {\r\n previousActiveElement.focus();\r\n }\r\n lastFocusedButton = undefined;\r\n clearTimeout(modal.timeout);\r\n };\r\n\r\n\r\n /*\r\n * Set \"margin-top\"-property on modal based on its computed height\r\n */\r\n\r\n function fixVerticalPosition() {\r\n var modal = getModal();\r\n\r\n modal.style.marginTop = getTopMargin(getModal());\r\n }\r\n\r\n // If browser is Internet Explorer 8\r\n function isIE8() {\r\n if (window.attachEvent && !window.addEventListener) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Error messages for developers\r\n function logStr(string) {\r\n if (window.console) { // IE...\r\n window.console.log(\"SweetAlert: \" + string);\r\n }\r\n }\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () { return sweetAlert; });\r\n } else if (typeof module !== 'undefined' && module.exports) {\r\n module.exports = sweetAlert;\r\n } else if (typeof window !== 'undefined') {\r\n window.sweetAlert = window.swal = sweetAlert;\r\n }\r\n\r\n})(window, document);"]}