You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1280 lines
119 KiB

4 years ago
  1. ;(function(window, document, undefined) {
  2. "use strict";
  3. (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
  4. 'use strict';
  5. var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
  6. // SweetAlert
  7. // 2014-2015 (c) - Tristan Edwards
  8. // github.com/t4t5/sweetalert
  9. /*
  10. * jQuery-like functions for manipulating the DOM
  11. */
  12. var _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation = require('./modules/handle-dom');
  13. /*
  14. * Handy utilities
  15. */
  16. var _extend$hexToRgb$isIE8$logStr$colorLuminance = require('./modules/utils');
  17. /*
  18. * Handle sweetAlert's DOM elements
  19. */
  20. var _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition = require('./modules/handle-swal-dom');
  21. // Handle button events and keyboard events
  22. var _handleButton$handleConfirm$handleCancel = require('./modules/handle-click');
  23. var _handleKeyDown = require('./modules/handle-key');
  24. var _handleKeyDown2 = _interopRequireWildcard(_handleKeyDown);
  25. // Default values
  26. var _defaultParams = require('./modules/default-params');
  27. var _defaultParams2 = _interopRequireWildcard(_defaultParams);
  28. var _setParameters = require('./modules/set-params');
  29. var _setParameters2 = _interopRequireWildcard(_setParameters);
  30. /*
  31. * Remember state in cases where opening and handling a modal will fiddle with it.
  32. * (We also use window.previousActiveElement as a global variable)
  33. */
  34. var previousWindowKeyDown;
  35. var lastFocusedButton;
  36. /*
  37. * Global sweetAlert function
  38. * (this is what the user calls)
  39. */
  40. var sweetAlert, swal;
  41. sweetAlert = swal = function () {
  42. var customizations = arguments[0];
  43. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass(document.body, 'stop-scrolling');
  44. _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.resetInput();
  45. /*
  46. * Use argument if defined or default value from params object otherwise.
  47. * Supports the case where a default value is boolean true and should be
  48. * overridden by a corresponding explicit argument which is boolean false.
  49. */
  50. function argumentOrDefault(key) {
  51. var args = customizations;
  52. return args[key] === undefined ? _defaultParams2['default'][key] : args[key];
  53. }
  54. if (customizations === undefined) {
  55. _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('SweetAlert expects at least 1 attribute!');
  56. return false;
  57. }
  58. var params = _extend$hexToRgb$isIE8$logStr$colorLuminance.extend({}, _defaultParams2['default']);
  59. switch (typeof customizations) {
  60. // Ex: swal("Hello", "Just testing", "info");
  61. case 'string':
  62. params.title = customizations;
  63. params.text = arguments[1] || '';
  64. params.type = arguments[2] || '';
  65. break;
  66. // Ex: swal({ title:"Hello", text: "Just testing", type: "info" });
  67. case 'object':
  68. if (customizations.title === undefined) {
  69. _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('Missing "title" argument!');
  70. return false;
  71. }
  72. params.title = customizations.title;
  73. for (var customName in _defaultParams2['default']) {
  74. params[customName] = argumentOrDefault(customName);
  75. }
  76. // Show "Confirm" instead of "OK" if cancel button is visible
  77. params.confirmButtonText = params.showCancelButton ? 'Confirm' : _defaultParams2['default'].confirmButtonText;
  78. params.confirmButtonText = argumentOrDefault('confirmButtonText');
  79. // Callback function when clicking on "OK"/"Cancel"
  80. params.doneFunction = arguments[1] || null;
  81. break;
  82. default:
  83. _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('Unexpected type of argument! Expected "string" or "object", got ' + typeof customizations);
  84. return false;
  85. }
  86. _setParameters2['default'](params);
  87. _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.fixVerticalPosition();
  88. _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.openModal(arguments[1]);
  89. // Modal interactions
  90. var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  91. /*
  92. * Make sure all modal buttons respond to all events
  93. */
  94. var $buttons = modal.querySelectorAll('button');
  95. var buttonEvents = ['onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'onfocus'];
  96. var onButtonEvent = function onButtonEvent(e) {
  97. return _handleButton$handleConfirm$handleCancel.handleButton(e, params, modal);
  98. };
  99. for (var btnIndex = 0; btnIndex < $buttons.length; btnIndex++) {
  100. for (var evtIndex = 0; evtIndex < buttonEvents.length; evtIndex++) {
  101. var btnEvt = buttonEvents[evtIndex];
  102. $buttons[btnIndex][btnEvt] = onButtonEvent;
  103. }
  104. }
  105. // Clicking outside the modal dismisses it (if allowed by user)
  106. _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getOverlay().onclick = onButtonEvent;
  107. previousWindowKeyDown = window.onkeydown;
  108. var onKeyEvent = function onKeyEvent(e) {
  109. return _handleKeyDown2['default'](e, params, modal);
  110. };
  111. window.onkeydown = onKeyEvent;
  112. window.onfocus = function () {
  113. // When the user has focused away and focused back from the whole window.
  114. setTimeout(function () {
  115. // Put in a timeout to jump out of the event sequence.
  116. // Calling focus() in the event sequence confuses things.
  117. if (lastFocusedButton !== undefined) {
  118. lastFocusedButton.focus();
  119. lastFocusedButton = undefined;
  120. }
  121. }, 0);
  122. };
  123. // Show alert with enabled buttons always
  124. swal.enableButtons();
  125. };
  126. /*
  127. * Set default params for each popup
  128. * @param {Object} userParams
  129. */
  130. sweetAlert.setDefaults = swal.setDefaults = function (userParams) {
  131. if (!userParams) {
  132. throw new Error('userParams is required');
  133. }
  134. if (typeof userParams !== 'object') {
  135. throw new Error('userParams has to be a object');
  136. }
  137. _extend$hexToRgb$isIE8$logStr$colorLuminance.extend(_defaultParams2['default'], userParams);
  138. };
  139. /*
  140. * Animation when closing modal
  141. */
  142. sweetAlert.close = swal.close = function () {
  143. var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  144. _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);
  145. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.fadeOut(modal, 5);
  146. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, 'showSweetAlert');
  147. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass(modal, 'hideSweetAlert');
  148. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, 'visible');
  149. /*
  150. * Reset icon animations
  151. */
  152. var $successIcon = modal.querySelector('.sa-icon.sa-success');
  153. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon, 'animate');
  154. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon.querySelector('.sa-tip'), 'animateSuccessTip');
  155. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($successIcon.querySelector('.sa-long'), 'animateSuccessLong');
  156. var $errorIcon = modal.querySelector('.sa-icon.sa-error');
  157. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon, 'animateErrorIcon');
  158. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon.querySelector('.sa-x-mark'), 'animateXMark');
  159. var $warningIcon = modal.querySelector('.sa-icon.sa-warning');
  160. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon, 'pulseWarning');
  161. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon.querySelector('.sa-body'), 'pulseWarningIns');
  162. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns');
  163. // Reset custom class (delay so that UI changes aren't visible)
  164. setTimeout(function () {
  165. var customClass = modal.getAttribute('data-custom-class');
  166. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(modal, customClass);
  167. }, 300);
  168. // Make page scrollable again
  169. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass(document.body, 'stop-scrolling');
  170. // Reset the page to its previous state
  171. window.onkeydown = previousWindowKeyDown;
  172. if (window.previousActiveElement) {
  173. window.previousActiveElement.focus();
  174. }
  175. lastFocusedButton = undefined;
  176. clearTimeout(modal.timeout);
  177. return true;
  178. };
  179. /*
  180. * Validation of the input field is done by user
  181. * If something is wrong => call showInputError with errorMessage
  182. */
  183. sweetAlert.showInputError = swal.showInputError = function (errorMessage) {
  184. var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  185. var $errorIcon = modal.querySelector('.sa-input-error');
  186. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass($errorIcon, 'show');
  187. var $errorContainer = modal.querySelector('.sa-error-container');
  188. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.addClass($errorContainer, 'show');
  189. $errorContainer.querySelector('p').innerHTML = errorMessage;
  190. setTimeout(function () {
  191. sweetAlert.enableButtons();
  192. }, 1);
  193. modal.querySelector('input').focus();
  194. };
  195. /*
  196. * Reset input error DOM elements
  197. */
  198. sweetAlert.resetInputError = swal.resetInputError = function (event) {
  199. // If press enter => ignore
  200. if (event && event.keyCode === 13) {
  201. return false;
  202. }
  203. var $modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  204. var $errorIcon = $modal.querySelector('.sa-input-error');
  205. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorIcon, 'show');
  206. var $errorContainer = $modal.querySelector('.sa-error-container');
  207. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide$isDescendant$getTopMargin$fadeIn$fadeOut$fireClick$stopEventPropagation.removeClass($errorContainer, 'show');
  208. };
  209. /*
  210. * Disable confirm and cancel buttons
  211. */
  212. sweetAlert.disableButtons = swal.disableButtons = function (event) {
  213. var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  214. var $confirmButton = modal.querySelector('button.confirm');
  215. var $cancelButton = modal.querySelector('button.cancel');
  216. $confirmButton.disabled = true;
  217. $cancelButton.disabled = true;
  218. };
  219. /*
  220. * Enable confirm and cancel buttons
  221. */
  222. sweetAlert.enableButtons = swal.enableButtons = function (event) {
  223. var modal = _sweetAlertInitialize$getModal$getOverlay$getInput$setFocusStyle$openModal$resetInput$fixVerticalPosition.getModal();
  224. var $confirmButton = modal.querySelector('button.confirm');
  225. var $cancelButton = modal.querySelector('button.cancel');
  226. $confirmButton.disabled = false;
  227. $cancelButton.disabled = false;
  228. };
  229. if (typeof window !== 'undefined') {
  230. // The 'handle-click' module requires
  231. // that 'sweetAlert' was set as global.
  232. window.sweetAlert = window.swal = sweetAlert;
  233. } else {
  234. _extend$hexToRgb$isIE8$logStr$colorLuminance.logStr('SweetAlert is a frontend module!');
  235. }
  236. },{"./modules/default-params":2,"./modules/handle-click":3,"./modules/handle-dom":4,"./modules/handle-key":5,"./modules/handle-swal-dom":6,"./modules/set-params":8,"./modules/utils":9}],2:[function(require,module,exports){
  237. 'use strict';
  238. Object.defineProperty(exports, '__esModule', {
  239. value: true
  240. });
  241. var defaultParams = {
  242. title: '',
  243. text: '',
  244. type: null,
  245. allowOutsideClick: false,
  246. showConfirmButton: true,
  247. showCancelButton: false,
  248. closeOnConfirm: true,
  249. closeOnCancel: true,
  250. confirmButtonText: 'OK',
  251. confirmButtonColor: '#8CD4F5',
  252. cancelButtonText: 'Cancel',
  253. imageUrl: null,
  254. imageSize: null,
  255. timer: null,
  256. customClass: '',
  257. html: false,
  258. animation: true,
  259. allowEscapeKey: true,
  260. inputType: 'text',
  261. inputPlaceholder: '',
  262. inputValue: '',
  263. showLoaderOnConfirm: false
  264. };
  265. exports['default'] = defaultParams;
  266. module.exports = exports['default'];
  267. },{}],3:[function(require,module,exports){
  268. 'use strict';
  269. Object.defineProperty(exports, '__esModule', {
  270. value: true
  271. });
  272. var _colorLuminance = require('./utils');
  273. var _getModal = require('./handle-swal-dom');
  274. var _hasClass$isDescendant = require('./handle-dom');
  275. /*
  276. * User clicked on "Confirm"/"OK" or "Cancel"
  277. */
  278. var handleButton = function handleButton(event, params, modal) {
  279. var e = event || window.event;
  280. var target = e.target || e.srcElement;
  281. var targetedConfirm = target.className.indexOf('confirm') !== -1;
  282. var targetedOverlay = target.className.indexOf('sweet-overlay') !== -1;
  283. var modalIsVisible = _hasClass$isDescendant.hasClass(modal, 'visible');
  284. var doneFunctionExists = params.doneFunction && modal.getAttribute('data-has-done-function') === 'true';
  285. // Since the user can change the background-color of the confirm button programmatically,
  286. // we must calculate what the color should be on hover/active
  287. var normalColor, hoverColor, activeColor;
  288. if (targetedConfirm && params.confirmButtonColor) {
  289. normalColor = params.confirmButtonColor;
  290. hoverColor = _colorLuminance.colorLuminance(normalColor, -0.04);
  291. activeColor = _colorLuminance.colorLuminance(normalColor, -0.14);
  292. }
  293. function shouldSetConfirmButtonColor(color) {
  294. if (targetedConfirm && params.confirmButtonColor) {
  295. target.style.backgroundColor = color;
  296. }
  297. }
  298. switch (e.type) {
  299. case 'mouseover':
  300. shouldSetConfirmButtonColor(hoverColor);
  301. break;
  302. case 'mouseout':
  303. shouldSetConfirmButtonColor(normalColor);
  304. break;
  305. case 'mousedown':
  306. shouldSetConfirmButtonColor(activeColor);
  307. break;
  308. case 'mouseup':
  309. shouldSetConfirmButtonColor(hoverColor);
  310. break;
  311. case 'focus':
  312. var $confirmButton = modal.querySelector('button.confirm');
  313. var $cancelButton = modal.querySelector('button.cancel');
  314. if (targetedConfirm) {
  315. $cancelButton.style.boxShadow = 'none';
  316. } else {
  317. $confirmButton.style.boxShadow = 'none';
  318. }
  319. break;
  320. case 'click':
  321. var clickedOnModal = modal === target;
  322. var clickedOnModalChild = _hasClass$isDescendant.isDescendant(modal, target);
  323. // Ignore click outside if allowOutsideClick is false
  324. if (!clickedOnModal && !clickedOnModalChild && modalIsVisible && !params.allowOutsideClick) {
  325. break;
  326. }
  327. if (targetedConfirm && doneFunctionExists && modalIsVisible) {
  328. handleConfirm(modal, params);
  329. } else if (doneFunctionExists && modalIsVisible || targetedOverlay) {
  330. handleCancel(modal, params);
  331. } else if (_hasClass$isDescendant.isDescendant(modal, target) && target.tagName === 'BUTTON') {
  332. sweetAlert.close();
  333. }
  334. break;
  335. }
  336. };
  337. /*
  338. * User clicked on "Confirm"/"OK"
  339. */
  340. var handleConfirm = function handleConfirm(modal, params) {
  341. var callbackValue = true;
  342. if (_hasClass$isDescendant.hasClass(modal, 'show-input')) {
  343. callbackValue = modal.querySelector('input').value;
  344. if (!callbackValue) {
  345. callbackValue = '';
  346. }
  347. }
  348. params.doneFunction(callbackValue);
  349. if (params.closeOnConfirm) {
  350. sweetAlert.close();
  351. }
  352. // Disable cancel and confirm button if the parameter is true
  353. if (params.showLoaderOnConfirm) {
  354. sweetAlert.disableButtons();
  355. }
  356. };
  357. /*
  358. * User clicked on "Cancel"
  359. */
  360. var handleCancel = function handleCancel(modal, params) {
  361. // Check if callback function expects a parameter (to track cancel actions)
  362. var functionAsStr = String(params.doneFunction).replace(/\s/g, '');
  363. var functionHandlesCancel = functionAsStr.substring(0, 9) === 'function(' && functionAsStr.substring(9, 10) !== ')';
  364. if (functionHandlesCancel) {
  365. params.doneFunction(false);
  366. }
  367. if (params.closeOnCancel) {
  368. sweetAlert.close();
  369. }
  370. };
  371. exports['default'] = {
  372. handleButton: handleButton,
  373. handleConfirm: handleConfirm,
  374. handleCancel: handleCancel
  375. };
  376. module.exports = exports['default'];
  377. },{"./handle-dom":4,"./handle-swal-dom":6,"./utils":9}],4:[function(require,module,exports){
  378. 'use strict';
  379. Object.defineProperty(exports, '__esModule', {
  380. value: true
  381. });
  382. var hasClass = function hasClass(elem, className) {
  383. return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');
  384. };
  385. var addClass = function addClass(elem, className) {
  386. if (!hasClass(elem, className)) {
  387. elem.className += ' ' + className;
  388. }
  389. };
  390. var removeClass = function removeClass(elem, className) {
  391. var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
  392. if (hasClass(elem, className)) {
  393. while (newClass.indexOf(' ' + className + ' ') >= 0) {
  394. newClass = newClass.replace(' ' + className + ' ', ' ');
  395. }
  396. elem.className = newClass.replace(/^\s+|\s+$/g, '');
  397. }
  398. };
  399. var escapeHtml = function escapeHtml(str) {
  400. var div = document.createElement('div');
  401. div.appendChild(document.createTextNode(str));
  402. return div.innerHTML;
  403. };
  404. var _show = function _show(elem) {
  405. elem.style.opacity = '';
  406. elem.style.display = 'block';
  407. };
  408. var show = function show(elems) {
  409. if (elems && !elems.length) {
  410. return _show(elems);
  411. }
  412. for (var i = 0; i < elems.length; ++i) {
  413. _show(elems[i]);
  414. }
  415. };
  416. var _hide = function _hide(elem) {
  417. elem.style.opacity = '';
  418. elem.style.display = 'none';
  419. };
  420. var hide = function hide(elems) {
  421. if (elems && !elems.length) {
  422. return _hide(elems);
  423. }
  424. for (var i = 0; i < elems.length; ++i) {
  425. _hide(elems[i]);
  426. }
  427. };
  428. var isDescendant = function isDescendant(parent, child) {
  429. var node = child.parentNode;
  430. while (node !== null) {
  431. if (node === parent) {
  432. return true;
  433. }
  434. node = node.parentNode;
  435. }
  436. return false;
  437. };
  438. var getTopMargin = function getTopMargin(elem) {
  439. elem.style.left = '-9999px';
  440. elem.style.display = 'block';
  441. var height = elem.clientHeight,
  442. padding;
  443. if (typeof getComputedStyle !== 'undefined') {
  444. // IE 8
  445. padding = parseInt(getComputedStyle(elem).getPropertyValue('padding-top'), 10);
  446. } else {
  447. padding = parseInt(elem.currentStyle.padding);
  448. }
  449. elem.style.left = '';
  450. elem.style.display = 'none';
  451. return '-' + parseInt((height + padding) / 2) + 'px';
  452. };
  453. var fadeIn = function fadeIn(elem, interval) {
  454. if (+elem.style.opacity < 1) {
  455. interval = interval || 16;
  456. elem.style.opacity = 0;
  457. elem.style.display = 'block';
  458. var last = +new Date();
  459. var tick = (function (_tick) {
  460. function tick() {
  461. return _tick.apply(this, arguments);
  462. }
  463. tick.toString = function () {
  464. return _tick.toString();
  465. };
  466. return tick;
  467. })(function () {
  468. elem.style.opacity = +elem.style.opacity + (new Date() - last) / 100;
  469. last = +new Date();
  470. if (+elem.style.opacity < 1) {
  471. setTimeout(tick, interval);
  472. }
  473. });
  474. tick();
  475. }
  476. elem.style.display = 'block'; //fallback IE8
  477. };
  478. var fadeOut = function fadeOut(elem, interval) {
  479. interval = interval || 16;
  480. elem.style.opacity = 1;
  481. var last = +new Date();
  482. var tick = (function (_tick2) {
  483. function tick() {
  484. return _tick2.apply(this, arguments);
  485. }
  486. tick.toString = function () {
  487. return _tick2.toString();
  488. };
  489. return tick;
  490. })(function () {
  491. elem.style.opacity = +elem.style.opacity - (new Date() - last) / 100;
  492. last = +new Date();
  493. if (+elem.style.opacity > 0) {
  494. setTimeout(tick, interval);
  495. } else {
  496. elem.style.display = 'none';
  497. }
  498. });
  499. tick();
  500. };
  501. var fireClick = function fireClick(node) {
  502. // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/
  503. // Then fixed for today's Chrome browser.
  504. if (typeof MouseEvent === 'function') {
  505. // Up-to-date approach
  506. var mevt = new MouseEvent('click', {
  507. view: window,
  508. bubbles: false,
  509. cancelable: true
  510. });
  511. node.dispatchEvent(mevt);
  512. } else if (document.createEvent) {
  513. // Fallback
  514. var evt = document.createEvent('MouseEvents');
  515. evt.initEvent('click', false, false);
  516. node.dispatchEvent(evt);
  517. } else if (document.createEventObject) {
  518. node.fireEvent('onclick');
  519. } else if (typeof node.onclick === 'function') {
  520. node.onclick();
  521. }
  522. };
  523. var stopEventPropagation = function stopEventPropagation(e) {
  524. // In particular, make sure the space bar doesn't scroll the main window.
  525. if (typeof e.stopPropagation === 'function') {
  526. e.stopPropagation();
  527. e.preventDefault();
  528. } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {
  529. window.event.cancelBubble = true;
  530. }
  531. };
  532. exports.hasClass = hasClass;
  533. exports.addClass = addClass;
  534. exports.removeClass = removeClass;
  535. exports.escapeHtml = escapeHtml;
  536. exports._show = _show;
  537. exports.show = show;
  538. exports._hide = _hide;
  539. exports.hide = hide;
  540. exports.isDescendant = isDescendant;
  541. exports.getTopMargin = getTopMargin;
  542. exports.fadeIn = fadeIn;
  543. exports.fadeOut = fadeOut;
  544. exports.fireClick = fireClick;
  545. exports.stopEventPropagation = stopEventPropagation;
  546. },{}],5:[function(require,module,exports){
  547. 'use strict';
  548. Object.defineProperty(exports, '__esModule', {
  549. value: true
  550. });
  551. var _stopEventPropagation$fireClick = require('./handle-dom');
  552. var _setFocusStyle = require('./handle-swal-dom');
  553. var handleKeyDown = function handleKeyDown(event, params, modal) {
  554. var e = event || window.event;
  555. var keyCode = e.keyCode || e.which;
  556. var $okButton = modal.querySelector('button.confirm');
  557. var $cancelButton = modal.querySelector('button.cancel');
  558. var $modalButtons = modal.querySelectorAll('button[tabindex]');
  559. if ([9, 13, 32, 27].indexOf(keyCode) === -1) {
  560. // Don't do work on keys we don't care about.
  561. return;
  562. }
  563. var $targetElement = e.target || e.srcElement;
  564. var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.
  565. for (var i = 0; i < $modalButtons.length; i++) {
  566. if ($targetElement === $modalButtons[i]) {
  567. btnIndex = i;
  568. break;
  569. }
  570. }
  571. if (keyCode === 9) {
  572. // TAB
  573. if (btnIndex === -1) {
  574. // No button focused. Jump to the confirm button.
  575. $targetElement = $okButton;
  576. } else {
  577. // Cycle to the next button
  578. if (btnIndex === $modalButtons.length - 1) {
  579. $targetElement = $modalButtons[0];
  580. } else {
  581. $targetElement = $modalButtons[btnIndex + 1];
  582. }
  583. }
  584. _stopEventPropagation$fireClick.stopEventPropagation(e);
  585. $targetElement.focus();
  586. if (params.confirmButtonColor) {
  587. _setFocusStyle.setFocusStyle($targetElement, params.confirmButtonColor);
  588. }
  589. } else {
  590. if (keyCode === 13) {
  591. if ($targetElement.tagName === 'INPUT') {
  592. $targetElement = $okButton;
  593. $okButton.focus();
  594. }
  595. if (btnIndex === -1) {
  596. // ENTER/SPACE clicked outside of a button.
  597. $targetElement = $okButton;
  598. } else {
  599. // Do nothing - let the browser handle it.
  600. $targetElement = undefined;
  601. }
  602. } else if (keyCode === 27 && params.allowEscapeKey === true) {
  603. $targetElement = $cancelButton;
  604. _stopEventPropagation$fireClick.fireClick($targetElement, e);
  605. } else {
  606. // Fallback - let the browser handle it.
  607. $targetElement = undefined;
  608. }
  609. }
  610. };
  611. exports['default'] = handleKeyDown;
  612. module.exports = exports['default'];
  613. },{"./handle-dom":4,"./handle-swal-dom":6}],6:[function(require,module,exports){
  614. 'use strict';
  615. var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
  616. Object.defineProperty(exports, '__esModule', {
  617. value: true
  618. });
  619. var _hexToRgb = require('./utils');
  620. var _removeClass$getTopMargin$fadeIn$show$addClass = require('./handle-dom');
  621. var _defaultParams = require('./default-params');
  622. var _defaultParams2 = _interopRequireWildcard(_defaultParams);
  623. /*
  624. * Add modal + overlay to DOM
  625. */
  626. var _injectedHTML = require('./injected-html');
  627. var _injectedHTML2 = _interopRequireWildcard(_injectedHTML);
  628. var modalClass = '.sweet-alert';
  629. var overlayClass = '.sweet-overlay';
  630. var sweetAlertInitialize = function sweetAlertInitialize() {
  631. var sweetWrap = document.createElement('div');
  632. sweetWrap.innerHTML = _injectedHTML2['default'];
  633. // Append elements to body
  634. while (sweetWrap.firstChild) {
  635. document.body.appendChild(sweetWrap.firstChild);
  636. }
  637. };
  638. /*
  639. * Get DOM element of modal
  640. */
  641. var getModal = (function (_getModal) {
  642. function getModal() {
  643. return _getModal.apply(this, arguments);
  644. }
  645. getModal.toString = function () {
  646. return _getModal.toString();
  647. };
  648. return getModal;
  649. })(function () {
  650. var $modal = document.querySelector(modalClass);
  651. if (!$modal) {
  652. sweetAlertInitialize();
  653. $modal = getModal();
  654. }
  655. return $modal;
  656. });
  657. /*
  658. * Get DOM element of input (in modal)
  659. */
  660. var getInput = function getInput() {
  661. var $modal = getModal();
  662. if ($modal) {
  663. return $modal.querySelector('input');
  664. }
  665. };
  666. /*
  667. * Get DOM element of overlay
  668. */
  669. var getOverlay = function getOverlay() {
  670. return document.querySelector(overlayClass);
  671. };
  672. /*
  673. * Add box-shadow style to button (depending on its chosen bg-color)
  674. */
  675. var setFocusStyle = function setFocusStyle($button, bgColor) {
  676. var rgbColor = _hexToRgb.hexToRgb(bgColor);
  677. $button.style.boxShadow = '0 0 2px rgba(' + rgbColor + ', 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.05)';
  678. };
  679. /*
  680. * Animation when opening modal
  681. */
  682. var openModal = function openModal(callback) {
  683. var $modal = getModal();
  684. _removeClass$getTopMargin$fadeIn$show$addClass.fadeIn(getOverlay(), 10);
  685. _removeClass$getTopMargin$fadeIn$show$addClass.show($modal);
  686. _removeClass$getTopMargin$fadeIn$show$addClass.addClass($modal, 'showSweetAlert');
  687. _removeClass$getTopMargin$fadeIn$show$addClass.removeClass($modal, 'hideSweetAlert');
  688. window.previousActiveElement = document.activeElement;
  689. var $okButton = $modal.querySelector('button.confirm');
  690. $okButton.focus();
  691. setTimeout(function () {
  692. _removeClass$getTopMargin$fadeIn$show$addClass.addClass($modal, 'visible');
  693. }, 500);
  694. var timer = $modal.getAttribute('data-timer');
  695. if (timer !== 'null' && timer !== '') {
  696. var timerCallback = callback;
  697. $modal.timeout = setTimeout(function () {
  698. var doneFunctionExists = (timerCallback || null) && $modal.getAttribute('data-has-done-function') === 'true';
  699. if (doneFunctionExists) {
  700. timerCallback(null);
  701. } else {
  702. sweetAlert.close();
  703. }
  704. }, timer);
  705. }
  706. };
  707. /*
  708. * Reset the styling of the input
  709. * (for example if errors have been shown)
  710. */
  711. var resetInput = function resetInput() {
  712. var $modal = getModal();
  713. var $input = getInput();
  714. _removeClass$getTopMargin$fadeIn$show$addClass.removeClass($modal, 'show-input');
  715. $input.value = _defaultParams2['default'].inputValue;
  716. $input.setAttribute('type', _defaultParams2['default'].inputType);
  717. $input.setAttribute('placeholder', _defaultParams2['default'].inputPlaceholder);
  718. resetInputError();
  719. };
  720. var resetInputError = function resetInputError(event) {
  721. // If press enter => ignore
  722. if (event && event.keyCode === 13) {
  723. return false;
  724. }
  725. var $modal = getModal();
  726. var $errorIcon = $modal.querySelector('.sa-input-error');
  727. _removeClass$getTopMargin$fadeIn$show$addClass.removeClass($errorIcon, 'show');
  728. var $errorContainer = $modal.querySelector('.sa-error-container');
  729. _removeClass$getTopMargin$fadeIn$show$addClass.removeClass($errorContainer, 'show');
  730. };
  731. /*
  732. * Set "margin-top"-property on modal based on its computed height
  733. */
  734. var fixVerticalPosition = function fixVerticalPosition() {
  735. var $modal = getModal();
  736. $modal.style.marginTop = _removeClass$getTopMargin$fadeIn$show$addClass.getTopMargin(getModal());
  737. };
  738. exports.sweetAlertInitialize = sweetAlertInitialize;
  739. exports.getModal = getModal;
  740. exports.getOverlay = getOverlay;
  741. exports.getInput = getInput;
  742. exports.setFocusStyle = setFocusStyle;
  743. exports.openModal = openModal;
  744. exports.resetInput = resetInput;
  745. exports.resetInputError = resetInputError;
  746. exports.fixVerticalPosition = fixVerticalPosition;
  747. },{"./default-params":2,"./handle-dom":4,"./injected-html":7,"./utils":9}],7:[function(require,module,exports){
  748. "use strict";
  749. Object.defineProperty(exports, "__esModule", {
  750. value: true
  751. });
  752. var injectedHTML =
  753. // Dark overlay
  754. "<div class=\"sweet-overlay\" tabIndex=\"-1\"></div>" +
  755. // Modal
  756. "<div class=\"sweet-alert\">" +
  757. // Error icon
  758. "<div class=\"sa-icon sa-error\">\n <span class=\"sa-x-mark\">\n <span class=\"sa-line sa-left\"></span>\n <span class=\"sa-line sa-right\"></span>\n </span>\n </div>" +
  759. // Warning icon
  760. "<div class=\"sa-icon sa-warning\">\n <span class=\"sa-body\"></span>\n <span class=\"sa-dot\"></span>\n </div>" +
  761. // Info icon
  762. "<div class=\"sa-icon sa-info\"></div>" +
  763. // Success icon
  764. "<div class=\"sa-icon sa-success\">\n <span class=\"sa-line sa-tip\"></span>\n <span class=\"sa-line sa-long\"></span>\n\n <div class=\"sa-placeholder\"></div>\n <div class=\"sa-fix\"></div>\n </div>" + "<div class=\"sa-icon sa-custom\"></div>" +
  765. // Title, text and input
  766. "<h2>Title</h2>\n <p>Text</p>\n <fieldset>\n <input type=\"text\" tabIndex=\"3\" />\n <div class=\"sa-input-error\"></div>\n </fieldset>" +
  767. // Input errors
  768. "<div class=\"sa-error-container\">\n <div class=\"icon\">!</div>\n <p>Not valid!</p>\n </div>" +
  769. // Cancel and confirm buttons
  770. "<div class=\"sa-button-container\">\n <button class=\"cancel\" tabIndex=\"2\">Cancel</button>\n <div class=\"sa-confirm-button-container\">\n <button class=\"confirm\" tabIndex=\"1\">OK</button>" +
  771. // Loading animation
  772. "<div class=\"la-ball-fall\">\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n </div>" +
  773. // End of modal
  774. "</div>";
  775. exports["default"] = injectedHTML;
  776. module.exports = exports["default"];
  777. },{}],8:[function(require,module,exports){
  778. 'use strict';
  779. Object.defineProperty(exports, '__esModule', {
  780. value: true
  781. });
  782. var _isIE8 = require('./utils');
  783. var _getModal$getInput$setFocusStyle = require('./handle-swal-dom');
  784. var _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide = require('./handle-dom');
  785. var alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];
  786. /*
  787. * Set type, text and actions on modal
  788. */
  789. var setParameters = function setParameters(params) {
  790. var modal = _getModal$getInput$setFocusStyle.getModal();
  791. var $title = modal.querySelector('h2');
  792. var $text = modal.querySelector('p');
  793. var $cancelBtn = modal.querySelector('button.cancel');
  794. var $confirmBtn = modal.querySelector('button.confirm');
  795. /*
  796. * Title
  797. */
  798. $title.innerHTML = params.html ? params.title : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.title).split('\n').join('<br>');
  799. /*
  800. * Text
  801. */
  802. $text.innerHTML = params.html ? params.text : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.text || '').split('\n').join('<br>');
  803. if (params.text) _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($text);
  804. /*
  805. * Custom class
  806. */
  807. if (params.customClass) {
  808. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, params.customClass);
  809. modal.setAttribute('data-custom-class', params.customClass);
  810. } else {
  811. // Find previously set classes and remove them
  812. var customClass = modal.getAttribute('data-custom-class');
  813. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.removeClass(modal, customClass);
  814. modal.setAttribute('data-custom-class', '');
  815. }
  816. /*
  817. * Icon
  818. */
  819. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide(modal.querySelectorAll('.sa-icon'));
  820. if (params.type && !_isIE8.isIE8()) {
  821. var _ret = (function () {
  822. var validType = false;
  823. for (var i = 0; i < alertTypes.length; i++) {
  824. if (params.type === alertTypes[i]) {
  825. validType = true;
  826. break;
  827. }
  828. }
  829. if (!validType) {
  830. logStr('Unknown alert type: ' + params.type);
  831. return {
  832. v: false
  833. };
  834. }
  835. var typesWithIcons = ['success', 'error', 'warning', 'info'];
  836. var $icon = undefined;
  837. if (typesWithIcons.indexOf(params.type) !== -1) {
  838. $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);
  839. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($icon);
  840. }
  841. var $input = _getModal$getInput$setFocusStyle.getInput();
  842. // Animate icon
  843. switch (params.type) {
  844. case 'success':
  845. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animate');
  846. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-tip'), 'animateSuccessTip');
  847. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-long'), 'animateSuccessLong');
  848. break;
  849. case 'error':
  850. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animateErrorIcon');
  851. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-x-mark'), 'animateXMark');
  852. break;
  853. case 'warning':
  854. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'pulseWarning');
  855. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-body'), 'pulseWarningIns');
  856. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-dot'), 'pulseWarningIns');
  857. break;
  858. case 'input':
  859. case 'prompt':
  860. $input.setAttribute('type', params.inputType);
  861. $input.value = params.inputValue;
  862. $input.setAttribute('placeholder', params.inputPlaceholder);
  863. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, 'show-input');
  864. setTimeout(function () {
  865. $input.focus();
  866. $input.addEventListener('keyup', swal.resetInputError);
  867. }, 400);
  868. break;
  869. }
  870. })();
  871. if (typeof _ret === 'object') {
  872. return _ret.v;
  873. }
  874. }
  875. /*
  876. * Custom image
  877. */
  878. if (params.imageUrl) {
  879. var $customIcon = modal.querySelector('.sa-icon.sa-custom');
  880. $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';
  881. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($customIcon);
  882. var _imgWidth = 80;
  883. var _imgHeight = 80;
  884. if (params.imageSize) {
  885. var dimensions = params.imageSize.toString().split('x');
  886. var imgWidth = dimensions[0];
  887. var imgHeight = dimensions[1];
  888. if (!imgWidth || !imgHeight) {
  889. logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);
  890. } else {
  891. _imgWidth = imgWidth;
  892. _imgHeight = imgHeight;
  893. }
  894. }
  895. $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');
  896. }
  897. /*
  898. * Show cancel button?
  899. */
  900. modal.setAttribute('data-has-cancel-button', params.showCancelButton);
  901. if (params.showCancelButton) {
  902. $cancelBtn.style.display = 'inline-block';
  903. } else {
  904. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($cancelBtn);
  905. }
  906. /*
  907. * Show confirm button?
  908. */
  909. modal.setAttribute('data-has-confirm-button', params.showConfirmButton);
  910. if (params.showConfirmButton) {
  911. $confirmBtn.style.display = 'inline-block';
  912. } else {
  913. _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($confirmBtn);
  914. }
  915. /*
  916. * Custom text on cancel/confirm buttons
  917. */
  918. if (params.cancelButtonText) {
  919. $cancelBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.cancelButtonText);
  920. }
  921. if (params.confirmButtonText) {
  922. $confirmBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.confirmButtonText);
  923. }
  924. /*
  925. * Custom color on confirm button
  926. */
  927. if (params.confirmButtonColor) {
  928. // Set confirm button to selected background color
  929. $confirmBtn.style.backgroundColor = params.confirmButtonColor;
  930. // Set the confirm button color to the loading ring
  931. $confirmBtn.style.borderLeftColor = params.confirmLoadingButtonColor;
  932. $confirmBtn.style.borderRightColor = params.confirmLoadingButtonColor;
  933. // Set box-shadow to default focused button
  934. _getModal$getInput$setFocusStyle.setFocusStyle($confirmBtn, params.confirmButtonColor);
  935. }
  936. /*
  937. * Allow outside click
  938. */
  939. modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);
  940. /*
  941. * Callback function
  942. */
  943. var hasDoneFunction = params.doneFunction ? true : false;
  944. modal.setAttribute('data-has-done-function', hasDoneFunction);
  945. /*
  946. * Animation
  947. */
  948. if (!params.animation) {
  949. modal.setAttribute('data-animation', 'none');
  950. } else if (typeof params.animation === 'string') {
  951. modal.setAttribute('data-animation', params.animation); // Custom animation
  952. } else {
  953. modal.setAttribute('data-animation', 'pop');
  954. }
  955. /*
  956. * Timer
  957. */
  958. modal.setAttribute('data-timer', params.timer);
  959. };
  960. exports['default'] = setParameters;
  961. module.exports = exports['default'];
  962. },{"./handle-dom":4,"./handle-swal-dom":6,"./utils":9}],9:[function(require,module,exports){
  963. 'use strict';
  964. Object.defineProperty(exports, '__esModule', {
  965. value: true
  966. });
  967. /*
  968. * Allow user to pass their own params
  969. */
  970. var extend = function extend(a, b) {
  971. for (var key in b) {
  972. if (b.hasOwnProperty(key)) {
  973. a[key] = b[key];
  974. }
  975. }
  976. return a;
  977. };
  978. /*
  979. * Convert HEX codes to RGB values (#000000 -> rgb(0,0,0))
  980. */
  981. var hexToRgb = function hexToRgb(hex) {
  982. var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  983. return result ? parseInt(result[1], 16) + ', ' + parseInt(result[2], 16) + ', ' + parseInt(result[3], 16) : null;
  984. };
  985. /*
  986. * Check if the user is using Internet Explorer 8 (for fallbacks)
  987. */
  988. var isIE8 = function isIE8() {
  989. return window.attachEvent && !window.addEventListener;
  990. };
  991. /*
  992. * IE compatible logging for developers
  993. */
  994. var logStr = function logStr(string) {
  995. if (window.console) {
  996. // IE...
  997. window.console.log('SweetAlert: ' + string);
  998. }
  999. };
  1000. /*
  1001. * Set hover, active and focus-states for buttons
  1002. * (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
  1003. */
  1004. var colorLuminance = function colorLuminance(hex, lum) {
  1005. // Validate hex string
  1006. hex = String(hex).replace(/[^0-9a-f]/gi, '');
  1007. if (hex.length < 6) {
  1008. hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
  1009. }
  1010. lum = lum || 0;
  1011. // Convert to decimal and change luminosity
  1012. var rgb = '#';
  1013. var c;
  1014. var i;
  1015. for (i = 0; i < 3; i++) {
  1016. c = parseInt(hex.substr(i * 2, 2), 16);
  1017. c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);
  1018. rgb += ('00' + c).substr(c.length);
  1019. }
  1020. return rgb;
  1021. };
  1022. exports.extend = extend;
  1023. exports.hexToRgb = hexToRgb;
  1024. exports.isIE8 = isIE8;
  1025. exports.logStr = logStr;
  1026. exports.colorLuminance = colorLuminance;
  1027. },{}]},{},[1])
  1028. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvVHJpc3Rhbi9kZXYvU3dlZXRBbGVydC9kZXYvc3dlZXRhbGVydC5lczYuanMiLCIvVXNlcnMvVHJpc3Rhbi9kZXYvU3dlZXRBbGVydC9kZXYvbW9kdWxlcy9kZWZhdWx0LXBhcmFtcy5qcyIsIi9Vc2Vycy9UcmlzdGFuL2Rldi9Td2VldEFsZXJ0L2Rldi9tb2R1bGVzL2hhbmRsZS1jbGljay5qcyIsIi9Vc2Vycy9UcmlzdGFuL2Rldi9Td2VldEFsZXJ0L2Rldi9tb2R1bGVzL2hhbmRsZS1kb20uanMiLCIvVXNlcnMvVHJpc3Rhbi9kZXYvU3dlZXRBbGVydC9kZXYvbW9kdWxlcy9oYW5kbGUta2V5LmpzIiwiL1VzZXJzL1RyaXN0YW4vZGV2L1N3ZWV0QWxlcnQvZGV2L21vZHVsZXMvaGFuZGxlLXN3YWwtZG9tLmpzIiwiL1VzZXJzL1RyaXN0YW4vZGV2L1N3ZWV0QWxlcnQvZGV2L21vZHVsZXMvaW5qZWN0ZWQtaHRtbC5qcyIsIi9Vc2Vycy9UcmlzdGFuL2Rldi9Td2VldEFsZXJ0L2Rldi9tb2R1bGVzL3NldC1wYXJhbXMuanMiLCIvVXNlcnMvVHJpc3Rhbi9kZXYvU3dlZXRBbGVydC9kZXYvbW9kdWxlcy91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztzSkNnQk8sc0JBQXNCOzs7Ozs7MkRBV3RCLGlCQUFpQjs7Ozs7O3dIQWNqQiwyQkFBMkI7Ozs7dURBSXdCLHdCQUF3Qjs7NkJBQ3hELHNCQUFzQjs7Ozs7OzZCQUl0QiwwQkFBMEI7Ozs7NkJBQzFCLHNCQUFzQjs7Ozs7Ozs7QUFNaEQsSUFBSSxxQkFBcUIsQ0FBQztBQUMxQixJQUFJLGlCQUFpQixDQUFDOzs7Ozs7QUFPdEIsSUFBSSxVQUFVLEVBQUUsSUFBSSxDQUFDOztBQUVyQixVQUFVLEdBQUcsSUFBSSxHQUFHLFlBQVc7QUFD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
  1029. /*
  1030. * Use SweetAlert with RequireJS
  1031. */
  1032. if (typeof define === 'function' && define.amd) {
  1033. define(function () {
  1034. return sweetAlert;
  1035. });
  1036. } else if (typeof module !== 'undefined' && module.exports) {
  1037. module.exports = sweetAlert;
  1038. }
  1039. })(window, document);