225 lines
7.3 KiB
JavaScript
225 lines
7.3 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', {
|
|
value: true
|
|
});
|
|
|
|
var _isIE8 = require('./utils');
|
|
|
|
var _getModal$getInput$setFocusStyle = require('./handle-swal-dom');
|
|
|
|
var _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide = require('./handle-dom');
|
|
|
|
var alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];
|
|
|
|
/*
|
|
* Set type, text and actions on modal
|
|
*/
|
|
var setParameters = function setParameters(params) {
|
|
var modal = _getModal$getInput$setFocusStyle.getModal();
|
|
|
|
var $title = modal.querySelector('h2');
|
|
var $text = modal.querySelector('p');
|
|
var $cancelBtn = modal.querySelector('button.cancel');
|
|
var $confirmBtn = modal.querySelector('button.confirm');
|
|
|
|
/*
|
|
* Title
|
|
*/
|
|
$title.innerHTML = params.html ? params.title : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.title).split('\n').join('<br>');
|
|
|
|
/*
|
|
* Text
|
|
*/
|
|
$text.innerHTML = params.html ? params.text : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.text || '').split('\n').join('<br>');
|
|
if (params.text) _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($text);
|
|
|
|
/*
|
|
* Custom class
|
|
*/
|
|
if (params.customClass) {
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, params.customClass);
|
|
modal.setAttribute('data-custom-class', params.customClass);
|
|
} else {
|
|
// Find previously set classes and remove them
|
|
var customClass = modal.getAttribute('data-custom-class');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.removeClass(modal, customClass);
|
|
modal.setAttribute('data-custom-class', '');
|
|
}
|
|
|
|
/*
|
|
* Icon
|
|
*/
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide(modal.querySelectorAll('.sa-icon'));
|
|
|
|
if (params.type && !_isIE8.isIE8()) {
|
|
var _ret = (function () {
|
|
|
|
var validType = false;
|
|
|
|
for (var i = 0; i < alertTypes.length; i++) {
|
|
if (params.type === alertTypes[i]) {
|
|
validType = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!validType) {
|
|
logStr('Unknown alert type: ' + params.type);
|
|
return {
|
|
v: false
|
|
};
|
|
}
|
|
|
|
var typesWithIcons = ['success', 'error', 'warning', 'info'];
|
|
var $icon = undefined;
|
|
|
|
if (typesWithIcons.indexOf(params.type) !== -1) {
|
|
$icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($icon);
|
|
}
|
|
|
|
var $input = _getModal$getInput$setFocusStyle.getInput();
|
|
|
|
// Animate icon
|
|
switch (params.type) {
|
|
|
|
case 'success':
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animate');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-tip'), 'animateSuccessTip');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-long'), 'animateSuccessLong');
|
|
break;
|
|
|
|
case 'error':
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animateErrorIcon');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-x-mark'), 'animateXMark');
|
|
break;
|
|
|
|
case 'warning':
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'pulseWarning');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-body'), 'pulseWarningIns');
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-dot'), 'pulseWarningIns');
|
|
break;
|
|
|
|
case 'input':
|
|
case 'prompt':
|
|
$input.setAttribute('type', params.inputType);
|
|
$input.value = params.inputValue;
|
|
$input.setAttribute('placeholder', params.inputPlaceholder);
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, 'show-input');
|
|
setTimeout(function () {
|
|
$input.focus();
|
|
$input.addEventListener('keyup', swal.resetInputError);
|
|
}, 400);
|
|
break;
|
|
}
|
|
})();
|
|
|
|
if (typeof _ret === 'object') {
|
|
return _ret.v;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Custom image
|
|
*/
|
|
if (params.imageUrl) {
|
|
var $customIcon = modal.querySelector('.sa-icon.sa-custom');
|
|
|
|
$customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($customIcon);
|
|
|
|
var _imgWidth = 80;
|
|
var _imgHeight = 80;
|
|
|
|
if (params.imageSize) {
|
|
var dimensions = params.imageSize.toString().split('x');
|
|
var imgWidth = dimensions[0];
|
|
var imgHeight = dimensions[1];
|
|
|
|
if (!imgWidth || !imgHeight) {
|
|
logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);
|
|
} else {
|
|
_imgWidth = imgWidth;
|
|
_imgHeight = imgHeight;
|
|
}
|
|
}
|
|
|
|
$customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');
|
|
}
|
|
|
|
/*
|
|
* Show cancel button?
|
|
*/
|
|
modal.setAttribute('data-has-cancel-button', params.showCancelButton);
|
|
if (params.showCancelButton) {
|
|
$cancelBtn.style.display = 'inline-block';
|
|
} else {
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($cancelBtn);
|
|
}
|
|
|
|
/*
|
|
* Show confirm button?
|
|
*/
|
|
modal.setAttribute('data-has-confirm-button', params.showConfirmButton);
|
|
if (params.showConfirmButton) {
|
|
$confirmBtn.style.display = 'inline-block';
|
|
} else {
|
|
_hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($confirmBtn);
|
|
}
|
|
|
|
/*
|
|
* Custom text on cancel/confirm buttons
|
|
*/
|
|
if (params.cancelButtonText) {
|
|
$cancelBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.cancelButtonText);
|
|
}
|
|
if (params.confirmButtonText) {
|
|
$confirmBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.confirmButtonText);
|
|
}
|
|
|
|
/*
|
|
* Custom color on confirm button
|
|
*/
|
|
if (params.confirmButtonColor) {
|
|
// Set confirm button to selected background color
|
|
$confirmBtn.style.backgroundColor = params.confirmButtonColor;
|
|
|
|
// Set the confirm button color to the loading ring
|
|
$confirmBtn.style.borderLeftColor = params.confirmLoadingButtonColor;
|
|
$confirmBtn.style.borderRightColor = params.confirmLoadingButtonColor;
|
|
|
|
// Set box-shadow to default focused button
|
|
_getModal$getInput$setFocusStyle.setFocusStyle($confirmBtn, params.confirmButtonColor);
|
|
}
|
|
|
|
/*
|
|
* Allow outside click
|
|
*/
|
|
modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);
|
|
|
|
/*
|
|
* Callback function
|
|
*/
|
|
var hasDoneFunction = params.doneFunction ? true : false;
|
|
modal.setAttribute('data-has-done-function', hasDoneFunction);
|
|
|
|
/*
|
|
* Animation
|
|
*/
|
|
if (!params.animation) {
|
|
modal.setAttribute('data-animation', 'none');
|
|
} else if (typeof params.animation === 'string') {
|
|
modal.setAttribute('data-animation', params.animation); // Custom animation
|
|
} else {
|
|
modal.setAttribute('data-animation', 'pop');
|
|
}
|
|
|
|
/*
|
|
* Timer
|
|
*/
|
|
modal.setAttribute('data-timer', params.timer);
|
|
};
|
|
|
|
exports['default'] = setParameters;
|
|
module.exports = exports['default']; |