'use strict'; var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; Object.defineProperty(exports, '__esModule', { value: true }); // SweetAlert // 2014-2015 (c) - Tristan Edwards // github.com/t4t5/sweetalert /* * jQuery-like functions for manipulating the DOM */ var _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation = require('./modules/handle-dom'); /* * Handy utilities */ var _extend$hexToRgb$isIE8$logStr$colorLuminance = require('./modules/utils'); /* * Handle sweetAlert's DOM elements */ var _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition = require('./modules/handle-swal-dom'); // Handle button events and keyboard events var _handleButton$handleConfirm$handleCancel = require('./modules/handle-click'); var _handleKeyDown = require('./modules/handle-key'); var _handleKeyDown2 = _interopRequireWildcard(_handleKeyDown); // Default values var _defaultParams = require('./modules/default-params'); var _defaultParams2 = _interopRequireWildcard(_defaultParams); var _setParameters = require('./modules/set-params'); var _setParameters2 = _interopRequireWildcard(_setParameters); /* * Remember state in cases where opening and handling a modal will fiddle with it. * (We also use window.previousActiveElement as a global variable) */ var previousWindowKeyDown; var lastFocusedButton; /* * Global sweetAlert function * (this is what the user calls) */ var sweetAlert, swal; exports['default'] = sweetAlert = swal = function () { var customizations = arguments[0]; _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass(document.body, 'stop-scrolling'); _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.resetInput(); /* * Use argument if defined or default value from params object otherwise. * Supports the case where a default value is boolean true and should be * overridden by a corresponding explicit argument which is boolean false. */ function argumentOrDefault(key) { var args = customizations; return args[key] === undefined ? _defaultParams2['default'][key] : args[key]; } if (customizations === undefined) { _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('SweetAlert expects at least 1 attribute!'); return false; } var params = _extend$hexToRgb$isIE8$logStr$colorLuminance.extend({}, _defaultParams2['default']); switch (typeof customizations) { // Ex: swal("Hello", "Just testing", "info"); case 'string': params.title = customizations; params.text = arguments[1] || ''; params.type = arguments[2] || ''; break; // Ex: swal({ title:"Hello", text: "Just testing", type: "info" }); case 'object': if (customizations.title === undefined) { _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('Missing "title" argument!'); return false; } params.title = customizations.title; for (var customName in _defaultParams2['default']) { params[customName] = argumentOrDefault(customName); } // Show "Confirm" instead of "OK" if cancel button is visible params.confirmButtonText = params.showCancelButton ? 'Confirm' : _defaultParams2['default'].confirmButtonText; params.confirmButtonText = argumentOrDefault('confirmButtonText'); // Callback function when clicking on "OK"/"Cancel" params.doneFunction = arguments[1] || null; break; default: _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('Unexpected type of argument! Expected "string" or "object", got ' + typeof customizations); return false; } _setParameters2['default'](params); _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.fixVerticalPosition(); _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.openModal(arguments[1]); // Modal interactions var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); /* * Make sure all modal buttons respond to all events */ var $buttons = modal.querySelectorAll('button'); var buttonEvents = ['onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'onfocus']; var onButtonEvent = function onButtonEvent(e) { return _handleButton$handleConfirm$handleCancel.handleButton(e, params, modal); }; for (var btnIndex = 0; btnIndex < $buttons.length; btnIndex++) { for (var evtIndex = 0; evtIndex < buttonEvents.length; evtIndex++) { var btnEvt = buttonEvents[evtIndex]; $buttons[btnIndex][btnEvt] = onButtonEvent; } } // Clicking outside the modal dismisses it (if allowed by user) _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getOverlay().onclick = onButtonEvent; previousWindowKeyDown = window.onkeydown; var onKeyEvent = function onKeyEvent(e) { return _handleKeyDown2['default'](e, params, modal); }; window.onkeydown = onKeyEvent; window.onfocus = function () { // When the user has focused away and focused back from the whole window. setTimeout(function () { // Put in a timeout to jump out of the event sequence. // Calling focus() in the event sequence confuses things. if (lastFocusedButton !== undefined) { lastFocusedButton.focus(); lastFocusedButton = undefined; } }, 0); }; // Show alert with enabled buttons always swal.enableButtons(); }; /* * Set default params for each popup * @param {Object} userParams */ sweetAlert.setDefaults = swal.setDefaults = function (userParams) { if (!userParams) { throw new Error('userParams is required'); } if (typeof userParams !== 'object') { throw new Error('userParams has to be a object'); } _extend$hexToRgb$isIE8$logStr$colorLuminance.extend(_defaultParams2['default'], userParams); }; /* * Animation when closing modal */ sweetAlert.close = swal.close = function () { var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.fadeOut(_sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getOverlay(), 5); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.fadeOut(modal, 5); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, 'showSweetAlert'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass(modal, 'hideSweetAlert'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, 'visible'); /* * Reset icon animations */ var $successIcon = modal.querySelector('.sa-icon.sa-success'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon, 'animate'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon.querySelector('.sa-tip'), 'animateSuccessTip'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon.querySelector('.sa-long'), 'animateSuccessLong'); var $errorIcon = modal.querySelector('.sa-icon.sa-error'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon, 'animateErrorIcon'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon.querySelector('.sa-x-mark'), 'animateXMark'); var $warningIcon = modal.querySelector('.sa-icon.sa-warning'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon, 'pulseWarning'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon.querySelector('.sa-body'), 'pulseWarningIns'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns'); // Reset custom class (delay so that UI changes aren't visible) setTimeout(function () { var customClass = modal.getAttribute('data-custom-class'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, customClass); }, 300); // Make page scrollable again _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(document.body, 'stop-scrolling'); // Reset the page to its previous state window.onkeydown = previousWindowKeyDown; if (window.previousActiveElement) { window.previousActiveElement.focus(); } lastFocusedButton = undefined; clearTimeout(modal.timeout); return true; }; /* * Validation of the input field is done by user * If something is wrong => call showInputError with errorMessage */ sweetAlert.showInputError = swal.showInputError = function (errorMessage) { var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); var $errorIcon = modal.querySelector('.sa-input-error'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass($errorIcon, 'show'); var $errorContainer = modal.querySelector('.sa-error-container'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass($errorContainer, 'show'); $errorContainer.querySelector('p').innerHTML = errorMessage; setTimeout(function () { sweetAlert.enableButtons(); }, 1); modal.querySelector('input').focus(); }; /* * Reset input error DOM elements */ sweetAlert.resetInputError = swal.resetInputError = function (event) { // If press enter => ignore if (event && event.keyCode === 13) { return false; } var $modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); var $errorIcon = $modal.querySelector('.sa-input-error'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon, 'show'); var $errorContainer = $modal.querySelector('.sa-error-container'); _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorContainer, 'show'); }; /* * Disable confirm and cancel buttons */ sweetAlert.disableButtons = swal.disableButtons = function (event) { var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); var $confirmButton = modal.querySelector('button.confirm'); var $cancelButton = modal.querySelector('button.cancel'); $confirmButton.disabled = true; $cancelButton.disabled = true; }; /* * Enable confirm and cancel buttons */ sweetAlert.enableButtons = swal.enableButtons = function (event) { var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal(); var $confirmButton = modal.querySelector('button.confirm'); var $cancelButton = modal.querySelector('button.cancel'); $confirmButton.disabled = false; $cancelButton.disabled = false; }; if (typeof window !== 'undefined') { // The 'handle-click' module requires // that 'sweetAlert' was set as global. window.sweetAlert = window.swal = sweetAlert; } else { _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('SweetAlert is a frontend module!'); } module.exports = exports['default'];