1/*! 2* sweetalert2 v7.17.0 3* Released under the MIT License. 4*/ 5(function (global, factory) { 6 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 7 typeof define === 'function' && define.amd ? define(factory) : 8 (global.Sweetalert2 = factory()); 9}(this, (function () { 'use strict'; 10 11var consolePrefix = 'SweetAlert2:'; 12 13/** 14 * Filter the unique values into a new array 15 * @param arr 16 */ 17var uniqueArray = function uniqueArray(arr) { 18 var result = []; 19 for (var i = 0; i < arr.length; i++) { 20 if (result.indexOf(arr[i]) === -1) { 21 result.push(arr[i]); 22 } 23 } 24 return result; 25}; 26 27/** 28 * Converts `inputOptions` into an array of `[value, label]`s 29 * @param inputOptions 30 */ 31var formatInputOptions = function formatInputOptions(inputOptions) { 32 var result = []; 33 if (inputOptions instanceof Map) { 34 inputOptions.forEach(function (value, key) { 35 result.push([key, value]); 36 }); 37 } else { 38 Object.keys(inputOptions).forEach(function (key) { 39 result.push([key, inputOptions[key]]); 40 }); 41 } 42 return result; 43}; 44 45/** 46 * Standardise console warnings 47 * @param message 48 */ 49var warn = function warn(message) { 50 console.warn(consolePrefix + ' ' + message); 51}; 52 53/** 54 * Standardise console errors 55 * @param message 56 */ 57var error = function error(message) { 58 console.error(consolePrefix + ' ' + message); 59}; 60 61/** 62 * Private global state for `warnOnce` 63 * @type {Array} 64 * @private 65 */ 66var previousWarnOnceMessages = []; 67 68/** 69 * Show a console warning, but only if it hasn't already been shown 70 * @param message 71 */ 72var warnOnce = function warnOnce(message) { 73 if (!(previousWarnOnceMessages.indexOf(message) !== -1)) { 74 previousWarnOnceMessages.push(message); 75 warn(message); 76 } 77}; 78 79/** 80 * If `arg` is a function, call it (with no arguments or context) and return the result. 81 * Otherwise, just pass the value through 82 * @param arg 83 */ 84var callIfFunction = function callIfFunction(arg) { 85 return typeof arg === 'function' ? arg() : arg; 86}; 87 88var defaultParams = { 89 title: '', 90 titleText: '', 91 text: '', 92 html: '', 93 footer: '', 94 type: null, 95 toast: false, 96 customClass: '', 97 target: 'body', 98 backdrop: true, 99 animation: true, 100 allowOutsideClick: true, 101 allowEscapeKey: true, 102 allowEnterKey: true, 103 showConfirmButton: true,
104 showCancelButton: false, 105 preConfirm: null, 106 confirmButtonText: 'OK', 107 confirmButtonAriaLabel: '', 108 confirmButtonColor: null, 109 confirmButtonClass: null, 110 cancelButtonText: 'Cancel', 111 cancelButtonAriaLabel: '', 112 cancelButtonColor: null, 113 cancelButtonClass: null, 114 buttonsStyling: true, 115 reverseButtons: false, 116 focusConfirm: true, 117 focusCancel: false, 118 showCloseButton: false, 119 closeButtonAriaLabel: 'Close this dialog', 120 showLoaderOnConfirm: false, 121 imageUrl: null, 122 imageWidth: null, 123 imageHeight: null, 124 imageAlt: '', 125 imageClass: null, 126 timer: null, 127 width: null, 128 padding: null, 129 background: null, 130 input: null, 131 inputPlaceholder: '', 132 inputValue: '', 133 inputOptions: {}, 134 inputAutoTrim: true, 135 inputClass: null, 136 inputAttributes: {}, 137 inputValidator: null, 138 grow: false, 139 position: 'center', 140 progressSteps: [], 141 currentProgressStep: null, 142 progressStepsDistance: null, 143 onBeforeOpen: null, 144 onAfterClose: null, 145 onOpen: null, 146 onClose: null, 147 useRejections: false, 148 expectRejections: false 149}; 150 151var deprecatedParams = ['useRejections', 'expectRejections']; 152 153/** 154 * Is valid parameter 155 * @param {String} paramName 156 */ 157var isValidParameter = function isValidParameter(paramName) { 158 return defaultParams.hasOwnProperty(paramName) || paramName === 'extraParams'; 159}; 160 161/** 162 * Is deprecated parameter 163 * @param {String} paramName 164 */ 165var isDeprecatedParameter = function isDeprecatedParameter(paramName) { 166 return deprecatedParams.indexOf(paramName) !== -1; 167}; 168 169/** 170 * Show relevant warnings for given params 171 * 172 * @param params 173 */ 174var showWarningsForParams = function showWarningsForParams(params) { 175 for (var param in params) { 176 if (!isValidParameter(param)) { 177 warn('Unknown parameter "' + param + '"'); 178 } 179 if (isDeprecatedParameter(param)) { 180 warnOnce('The parameter "' + param + '" is deprecated and will be removed in the next major release.'); 181 } 182 } 183}; 184 185var swalPrefix = 'swal2-'; 186 187var prefix = function prefix(items) { 188 var result = {}; 189 for (var i in items) { 190 result[items[i]] = swalPrefix + items[i]; 191 } 192 return result; 193}; 194 195var swalClasses = prefix(['container', 'shown', 'iosfix', 'popup', 'modal', 'no-backdrop', 'toast', 'toast-shown', 'fade', 'show', 'hide', 'noanimation', 'close', 'title', 'header', 'content', 'actions', 'confirm', 'cancel', 'footer', 'icon', 'icon-text', 'image', 'input', 'has-input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea', 'inputerror', 'validationerror', 'progresssteps', 'activeprogressstep', 'progresscircle', 'progressline', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen']); 196 197var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); 198 199// Remember state in cases where opening and handling a modal will fiddle with it. 200var states = { 201 previousActiveElement: null, 202 previousBodyPadding: null 203}; 204 205var hasClass = function hasClass(elem, className) { 206 if (elem.classList) { 207 return elem.classList.contains(className); 208 } 209 return false; 210}; 211 212var focusInput = function focusInput(input) { 213 input.focus(); 214 215 // place cursor at end of text in text input 216 if (input.type !== 'file') { 217 // http://stackoverflow.com/a/2345915/1331425 218 var val = input.value; 219 input.value = ''; 220 input.value = val; 221 } 222}; 223 224var addOrRemoveClass = function addOrRemoveClass(target, classList, add) { 225 if (!target || !classList) { 226 return; 227 } 228 if (typeof classList === 'string') { 229 classList = classList.split(/\s+/).filter(Boolean); 230 } 231 classList.forEach(function (className) { 232 if (target.forEach) { 233 target.forEach(function (elem) { 234 add ? elem.classList.add(className) : elem.classList.remove(className); 235 }); 236 } else { 237 add ? target.classList.add(className) : target.classList.remove(className); 238 } 239 }); 240}; 241 242var addClass = function addClass(target, classList) { 243 addOrRemoveClass(target, classList, true); 244}; 245 246var removeClass = function removeClass(target, classList) { 247 addOrRemoveClass(target, classList, false); 248};
249 250var getChildByClass = function getChildByClass(elem, className) { 251 for (var i = 0; i < elem.childNodes.length; i++) { 252 if (hasClass(elem.childNodes[i], className)) { 253 return elem.childNodes[i]; 254 } 255 } 256}; 257 258var show = function show(elem) { 259 elem.style.opacity = ''; 260 elem.style.display = elem.id === swalClasses.content ? 'block' : 'flex'; 261}; 262 263var hide = function hide(elem) { 264 elem.style.opacity = ''; 265 elem.style.display = 'none'; 266}; 267 268var empty = function empty(elem) { 269 while (elem.firstChild) { 270 elem.removeChild(elem.firstChild); 271 } 272}; 273 274// borrowed from jquery $(elem).is(':visible') implementation 275var isVisible = function isVisible(elem) { 276 return elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 277}; 278 279var removeStyleProperty = function removeStyleProperty(elem, property) { 280 if (elem.style.removeProperty) { 281 elem.style.removeProperty(property); 282 } else { 283 elem.style.removeAttribute(property); 284 } 285}; 286 287// Reset previous window keydown handler and focued element 288var resetPrevState = function resetPrevState() { 289 if (states.previousActiveElement && states.previousActiveElement.focus) { 290 var x = window.scrollX; 291 var y = window.scrollY; 292 states.previousActiveElement.focus(); 293 if (typeof x !== 'undefined' && typeof y !== 'undefined') { 294 // IE doesn't have scrollX/scrollY support 295 window.scrollTo(x, y); 296 } 297 } 298}; 299 300var getContainer = function getContainer() { 301 return document.body.querySelector('.' + swalClasses.container); 302}; 303 304var elementByClass = function elementByClass(className) { 305 var container = getContainer(); 306 return container ? container.querySelector('.' + className) : null; 307}; 308 309var getPopup = function getPopup() { 310 return elementByClass(swalClasses.popup); 311}; 312 313var getIcons = function getIcons() { 314 var popup = getPopup(); 315 return popup.querySelectorAll('.' + swalClasses.icon); 316}; 317 318var getTitle = function getTitle() { 319 return elementByClass(swalClasses.title); 320}; 321 322var getContent = function getContent() { 323 return elementByClass(swalClasses.content); 324}; 325 326var getImage = function getImage() { 327 return elementByClass(swalClasses.image); 328}; 329 330var getProgressSteps = function getProgressSteps() { 331 return elementByClass(swalClasses.progresssteps); 332}; 333 334var getValidationError = function getValidationError() { 335 return elementByClass(swalClasses.validationerror); 336}; 337 338var getConfirmButton = function getConfirmButton() { 339 return elementByClass(swalClasses.confirm); 340}; 341 342var getCancelButton = function getCancelButton() { 343 return elementByClass(swalClasses.cancel); 344}; 345 346var getButtonsWrapper = function getButtonsWrapper() { 347 warnOnce('swal.getButtonsWrapper() is deprecated and will be removed in the next major release, use swal.getActions() instead'); 348 return elementByClass(swalClasses.actions); 349}; 350 351var getActions = function getActions() { 352 return elementByClass(swalClasses.actions); 353}; 354 355var getFooter = function getFooter() { 356 return elementByClass(swalClasses.footer); 357}; 358 359var getCloseButton = function getCloseButton() { 360 return elementByClass(swalClasses.close); 361}; 362 363var getFocusableElements = function getFocusableElements() { 364 var focusableElementsWithTabindex = Array.prototype.slice.call(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) 365 // sort according to tabindex 366 .sort(function (a, b) { 367 a = parseInt(a.getAttribute('tabindex')); 368 b = parseInt(b.getAttribute('tabindex')); 369 if (a > b) { 370 return 1; 371 } else if (a < b) { 372 return -1; 373 } 374 return 0; 375 }); 376 377 // https://github.com/jkup/focusable/blob/master/index.js 378 var otherFocusableElements = Array.prototype.slice.call(getPopup().querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable], audio[controls], video[controls]')); 379 380 return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)); 381}; 382 383var isModal = function isModal() { 384 return !document.body.classList.contains(swalClasses['toast-shown']); 385}; 386 387var isToast = function isToast() { 388 return document.body.classList.contains(swalClasses['toast-shown']); 389}; 390 391var isLoading = function isLoading() { 392 return getPopup().hasAttribute('data-loading'); 393};
394 395// Detect Node env 396var isNodeEnv = function isNodeEnv() { 397 return typeof window === 'undefined' || typeof document === 'undefined'; 398}; 399 400var sweetHTML = ('\n <div aria-labelledby="' + swalClasses.title + '" aria-describedby="' + swalClasses.content + '" class="' + swalClasses.popup + '" tabindex="-1">\n <div class="' + swalClasses.header + '">\n <ul class="' + swalClasses.progresssteps + '"></ul>\n <div class="' + swalClasses.icon + ' ' + iconTypes.error + '">\n <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.question + '">\n <span class="' + swalClasses['icon-text'] + '">?</span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.warning + '">\n <span class="' + swalClasses['icon-text'] + '">!</span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.info + '">\n <span class="' + swalClasses['icon-text'] + '">i</span>\n </div>\n <div class="' + swalClasses.icon + ' ' + iconTypes.success + '">\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n </div>\n <img class="' + swalClasses.image + '" />\n <h2 class="' + swalClasses.title + '" id="' + swalClasses.title + '"></h2>\n <button type="button" class="' + swalClasses.close + '">\xD7</button>\n </div>\n <div class="' + swalClasses.content + '">\n <div id="' + swalClasses.content + '"></div>\n <input class="' + swalClasses.input + '" />\n <input type="file" class="' + swalClasses.file + '" />\n <div class="' + swalClasses.range + '">\n <input type="range" />\n <output></output>\n </div>\n <select class="' + swalClasses.select + '"></select>\n <div class="' + swalClasses.radio + '"></div>\n <label for="' + swalClasses.checkbox + '" class="' + swalClasses.checkbox + '">\n <input type="checkbox" />\n </label>\n <textarea class="' + swalClasses.textarea + '"></textarea>\n <div class="' + swalClasses.validationerror + '" id="' + swalClasses.validationerror + '"></div>\n </div>\n <div class="' + swalClasses.actions + '">\n <button type="button" class="' + swalClasses.confirm + '">OK</button>\n <button type="button" class="' + swalClasses.cancel + '">Cancel</button>\n </div>\n <div class="' + swalClasses.footer + '">\n </div>\n </div>\n').replace(/(^|\n)\s*/g, ''); 401 402/* 403 * Add modal + backdrop to DOM 404 */ 405var init = function init(params) { 406 // Clean up the old popup if it exists 407 var c = getContainer(); 408 if (c) { 409 c.parentNode.removeChild(c); 410 removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['has-input'], swalClasses['toast-shown']]); 411 } 412 413 if (isNodeEnv()) { 414 error('SweetAlert2 requires document to initialize'); 415 return; 416 } 417 418 var container = document.createElement('div'); 419 container.className = swalClasses.container; 420 container.innerHTML = sweetHTML; 421 422 var targetElement = typeof params.target === 'string' ? document.querySelector(params.target) : params.target; 423 targetElement.appendChild(container); 424 425 var popup = getPopup(); 426 var content = getContent(); 427 var input = getChildByClass(content, swalClasses.input); 428 var file = getChildByClass(content, swalClasses.file); 429 var range = content.querySelector('.' + swalClasses.range + ' input'); 430 var rangeOutput = content.querySelector('.' + swalClasses.range + ' output'); 431 var select = getChildByClass(content, swalClasses.select); 432 var checkbox = content.querySelector('.' + swalClasses.checkbox + ' input'); 433 var textarea = getChildByClass(content, swalClasses.textarea); 434 435 // a11y 436 popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); 437 popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); 438 if (!params.toast) { 439 popup.setAttribute('aria-modal', 'true'); 440 } 441 442 var resetValidationError = function resetValidationError() { 443 sweetAlert.isVisible() && sweetAlert.resetValidationError(); 444 }; 445 446 input.oninput = resetValidationError; 447 file.onchange = resetValidationError; 448 select.onchange = resetValidationError; 449 checkbox.onchange = resetValidationError; 450 textarea.oninput = resetValidationError; 451 452 range.oninput = function () { 453 resetValidationError(); 454 rangeOutput.value = range.value; 455 }; 456 457 range.onchange = function () { 458 resetValidationError(); 459 range.nextSibling.value = range.value; 460 }; 461 462 return popup; 463}; 464 465var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 466 467var parseHtmlToContainer = function parseHtmlToContainer(param, target) { 468 if (!param) { 469 return hide(target); 470 } 471 472 if ((typeof param === 'undefined' ? 'undefined' : _typeof(param)) === 'object') { 473 target.innerHTML = ''; 474 if (0 in param) { 475 for (var i = 0; i in param; i++) { 476 target.appendChild(param[i].cloneNode(true)); 477 } 478 } else { 479 target.appendChild(param.cloneNode(true)); 480 } 481 } else if (param) { 482 target.innerHTML = param; 483 } else {} 484 show(target); 485};
486 487var animationEndEvent = function () { 488 // Prevent run in Node env 489 if (isNodeEnv()) { 490 return false; 491 } 492 493 var testEl = document.createElement('div'); 494 var transEndEventNames = { 495 'WebkitAnimation': 'webkitAnimationEnd', 496 'OAnimation': 'oAnimationEnd oanimationend', 497 'animation': 'animationend' 498 }; 499 for (var i in transEndEventNames) { 500 if (transEndEventNames.hasOwnProperty(i) && typeof testEl.style[i] !== 'undefined') { 501 return transEndEventNames[i]; 502 } 503 } 504 505 return false; 506}(); 507 508// Measure width of scrollbar 509// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286 510var measureScrollbar = function measureScrollbar() { 511 var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints; 512 if (supportsTouch) { 513 return 0; 514 } 515 var scrollDiv = document.createElement('div'); 516 scrollDiv.style.width = '50px'; 517 scrollDiv.style.height = '50px'; 518 scrollDiv.style.overflow = 'scroll'; 519 document.body.appendChild(scrollDiv); 520 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; 521 document.body.removeChild(scrollDiv); 522 return scrollbarWidth; 523}; 524 525var defaultInputValidators = { 526 email: function email(string) { 527 return (/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.reject('Invalid email address') 528 ); 529 }, 530 url: function url(string) { 531 // taken from https://stackoverflow.com/a/3809435/1331425 532 return (/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/.test(string) ? Promise.resolve() : Promise.reject('Invalid URL') 533 ); 534 } 535}; 536 537/** 538 * Set type, text and actions on popup 539 * 540 * @param params 541 * @returns {boolean} 542 */ 543function setParameters(params) { 544 // Use default `inputValidator` for supported input types if not provided 545 if (!params.inputValidator) { 546 Object.keys(defaultInputValidators).forEach(function (key) { 547 if (params.input === key) { 548 params.inputValidator = params.expectRejections ? defaultInputValidators[key] : sweetAlert.adaptInputValidator(defaultInputValidators[key]); 549 } 550 }); 551 } 552 553 // Determine if the custom target element is valid 554 if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { 555 warn('Target parameter is not valid, defaulting to "body"'); 556 params.target = 'body'; 557 } 558 559 var popup = void 0; 560 var oldPopup = getPopup(); 561 var targetElement = typeof params.target === 'string' ? document.querySelector(params.target) : params.target; 562 // If the model target has changed, refresh the popup 563 if (oldPopup && targetElement && oldPopup.parentNode !== targetElement.parentNode) { 564 popup = init(params); 565 } else { 566 popup = oldPopup || init(params); 567 } 568 569 // Set popup width 570 if (params.width) { 571 popup.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width; 572 } 573 574 // Set popup padding 575 if (params.padding) { 576 popup.style.padding = typeof params.padding === 'number' ? params.padding + 'px' : params.padding; 577 } 578 579 // Set popup background 580 if (params.background) { 581 popup.style.background = params.background; 582 } 583 var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); 584 var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); 585 for (var i = 0; i < successIconParts.length; i++) { 586 successIconParts[i].style.backgroundColor = popupBackgroundColor; 587 } 588 589 var container = getContainer(); 590 var title = getTitle(); 591 var content = getContent().querySelector('#' + swalClasses.content); 592 var actions = getActions(); 593 var confirmButton = getConfirmButton(); 594 var cancelButton = getCancelButton(); 595 var closeButton = getCloseButton(); 596 var footer = getFooter(); 597 598 // Title 599 if (params.titleText) { 600 title.innerText = params.titleText; 601 } else if (params.title) { 602 title.innerHTML = params.title.split('\n').join('<br />'); 603 } 604 605 if (typeof params.backdrop === 'string') { 606 getContainer().style.background = params.backdrop; 607 } else if (!params.backdrop) { 608 addClass([document.documentElement, document.body], swalClasses['no-backdrop']); 609 } 610 611 // Content as HTML 612 if (params.html) { 613 parseHtmlToContainer(params.html, content); 614 615 // Content as plain text 616 } else if (params.text) { 617 content.textContent = params.text; 618 show(content); 619 } else { 620 hide(content); 621 } 622 623 // Position 624 if (params.position in swalClasses) { 625 addClass(container, swalClasses[params.position]); 626 } else {
627 warn('The "position" parameter is not valid, defaulting to "center"'); 628 addClass(container, swalClasses.center); 629 } 630 631 // Grow 632 if (params.grow && typeof params.grow === 'string') { 633 var growClass = 'grow-' + params.grow; 634 if (growClass in swalClasses) { 635 addClass(container, swalClasses[growClass]); 636 } 637 } 638 639 // Animation 640 if (typeof params.animation === 'function') { 641 params.animation = params.animation.call(); 642 } 643 644 // Close button 645 if (params.showCloseButton) { 646 closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); 647 show(closeButton); 648 } else { 649 hide(closeButton); 650 } 651 652 // Default Class 653 popup.className = swalClasses.popup; 654 if (params.toast) { 655 addClass([document.documentElement, document.body], swalClasses['toast-shown']); 656 addClass(popup, swalClasses.toast); 657 } else { 658 addClass(popup, swalClasses.modal); 659 } 660 661 // Custom Class 662 if (params.customClass) { 663 addClass(popup, params.customClass); 664 } 665 666 // Progress steps 667 var progressStepsContainer = getProgressSteps(); 668 var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10); 669 if (params.progressSteps && params.progressSteps.length) { 670 show(progressStepsContainer); 671 empty(progressStepsContainer); 672 if (currentProgressStep >= params.progressSteps.length) { 673 warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); 674 } 675 params.progressSteps.forEach(function (step, index) { 676 var circle = document.createElement('li'); 677 addClass(circle, swalClasses.progresscircle); 678 circle.innerHTML = step; 679 if (index === currentProgressStep) { 680 addClass(circle, swalClasses.activeprogressstep); 681 } 682 progressStepsContainer.appendChild(circle); 683 if (index !== params.progressSteps.length - 1) { 684 var line = document.createElement('li'); 685 addClass(line, swalClasses.progressline); 686 if (params.progressStepsDistance) { 687 line.style.width = params.progressStepsDistance; 688 } 689 progressStepsContainer.appendChild(line); 690 } 691 }); 692 } else { 693 hide(progressStepsContainer); 694 } 695 696 // Icon 697 var icons = getIcons(); 698 for (var _i = 0; _i < icons.length; _i++) { 699 hide(icons[_i]); 700 } 701 if (params.type) { 702 var validType = false; 703 for (var iconType in iconTypes) { 704 if (params.type === iconType) { 705 validType = true; 706 break; 707 } 708 } 709 if (!validType) { 710 error('Unknown alert type: ' + params.type); 711 return false; 712 } 713 var icon = popup.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]); 714 show(icon); 715 716 // Animate icon 717 if (params.animation) { 718 addClass(icon, 'swal2-animate-' + params.type + '-icon'); 719 } 720 } 721 722 // Custom image 723 var image = getImage(); 724 if (params.imageUrl) { 725 image.setAttribute('src', params.imageUrl); 726 image.setAttribute('alt', params.imageAlt); 727 show(image); 728 729 if (params.imageWidth) { 730 image.setAttribute('width', params.imageWidth); 731 } else { 732 image.removeAttribute('width'); 733 } 734 735 if (params.imageHeight) { 736 image.setAttribute('height', params.imageHeight); 737 } else { 738 image.removeAttribute('height'); 739 } 740 741 image.className = swalClasses.image; 742 if (params.imageClass) { 743 addClass(image, params.imageClass); 744 } 745 } else { 746 hide(image); 747 } 748 749 // Cancel button 750 if (params.showCancelButton) { 751 cancelButton.style.display = 'inline-block'; 752 } else { 753 hide(cancelButton); 754 } 755 756 // Confirm button 757 if (params.showConfirmButton) { 758 removeStyleProperty(confirmButton, 'display'); 759 } else { 760 hide(confirmButton); 761 } 762 763 // Actions (buttons) wrapper 764 if (!params.showConfirmButton && !params.showCancelButton) { 765 hide(actions); 766 } else { 767 show(actions); 768 } 769 770 // Edit text on confirm and cancel buttons 771 confirmButton.innerHTML = params.confirmButtonText; 772 cancelButton.innerHTML = params.cancelButtonText; 773 774 // ARIA labels for confirm and cancel buttons 775 confirmButton.setAttribute('aria-label', params.confirmButtonAriaLabel); 776 cancelButton.setAttribute('aria-label', params.cancelButtonAriaLabel); 777 778 // Add buttons custom classes 779 confirmButton.className = swalClasses.confirm; 780 addClass(confirmButton, params.confirmButtonClass); 781 cancelButton.className = swalClasses.cancel; 782 addClass(cancelButton, params.cancelButtonClass); 783 784 // Buttons styling 785 if (params.buttonsStyling) { 786 addClass([confirmButton, cancelButton], swalClasses.styled); 787 788 // Buttons background colors 789 if (params.confirmButtonColor) { 790 confirmButton.style.backgroundColor = params.confirmButtonColor; 791 } 792 if (params.cancelButtonColor) { 793 cancelButton.style.backgroundColor = params.cancelButtonColor; 794 } 795 796 // Loading state
797 var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color'); 798 confirmButton.style.borderLeftColor = confirmButtonBackgroundColor; 799 confirmButton.style.borderRightColor = confirmButtonBackgroundColor; 800 } else { 801 removeClass([confirmButton, cancelButton], swalClasses.styled); 802 803 confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = ''; 804 cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = ''; 805 } 806 807 // Footer 808 parseHtmlToContainer(params.footer, footer); 809 810 // CSS animation 811 if (params.animation === true) { 812 removeClass(popup, swalClasses.noanimation); 813 } else { 814 addClass(popup, swalClasses.noanimation); 815 } 816 817 // showLoaderOnConfirm && preConfirm 818 if (params.showLoaderOnConfirm && !params.preConfirm) { 819 warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); 820 } 821} 822 823var DismissReason = Object.freeze({ 824 cancel: 'cancel', 825 backdrop: 'overlay', 826 close: 'close', 827 esc: 'esc', 828 timer: 'timer' 829}); 830 831var fixScrollbar = function fixScrollbar() { 832 // for queues, do not do this more than once 833 if (states.previousBodyPadding !== null) { 834 return; 835 } 836 // if the body has overflow 837 if (document.body.scrollHeight > window.innerHeight) { 838 // add padding so the content doesn't shift after removal of scrollbar 839 states.previousBodyPadding = document.body.style.paddingRight; 840 document.body.style.paddingRight = measureScrollbar() + 'px'; 841 } 842}; 843 844var undoScrollbar = function undoScrollbar() { 845 if (states.previousBodyPadding !== null) { 846 document.body.style.paddingRight = states.previousBodyPadding; 847 states.previousBodyPadding = null; 848 } 849}; 850 851// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425 852var iOSfix = function iOSfix() { 853 var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 854 if (iOS && !hasClass(document.body, swalClasses.iosfix)) { 855 var offset = document.body.scrollTop; 856 document.body.style.top = offset * -1 + 'px'; 857 addClass(document.body, swalClasses.iosfix); 858 } 859}; 860 861var undoIOSfix = function undoIOSfix() { 862 if (hasClass(document.body, swalClasses.iosfix)) { 863 var offset = parseInt(document.body.style.top, 10); 864 removeClass(document.body, swalClasses.iosfix); 865 document.body.style.top = ''; 866 document.body.scrollTop = offset * -1; 867 } 868}; 869 870var version = "7.17.0"; 871 872var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 873 874var _typeof$1 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 875 876var argsToParams = function argsToParams(args) { 877 var params = {}; 878 switch (_typeof$1(args[0])) { 879 case 'string': 880 ['title', 'html', 'type'].forEach(function (name, index) { 881 if (args[index] !== undefined) { 882 params[name] = args[index]; 883 } 884 }); 885 break; 886 887 case 'object': 888 _extends(params, args[0]); 889 break; 890 891 default: 892 error('Unexpected type of argument! Expected "string" or "object", got ' + _typeof$1(args[0])); 893 return false; 894 } 895 return params; 896}; 897 898/** 899 * Adapt a legacy inputValidator for use with expectRejections=false 900 */ 901var adaptInputValidator = function adaptInputValidator(legacyValidator) { 902 return function adaptedInputValidator(inputValue, extraParams) { 903 return legacyValidator.call(this, inputValue, extraParams).then(function () { 904 return undefined; 905 }, function (validationError) { 906 return validationError; 907 });
908 }; 909}; 910 911var _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 912 913var globalState = { 914 popupParams: _extends$1({}, defaultParams) 915}; 916 917/* 918 * Global function to close sweetAlert 919 */ 920var close = function close(onClose, onAfterClose) { 921 var container = getContainer(); 922 var popup = getPopup(); 923 if (!popup) { 924 return; 925 } 926 927 if (onClose !== null && typeof onClose === 'function') { 928 onClose(popup); 929 } 930 931 removeClass(popup, swalClasses.show); 932 addClass(popup, swalClasses.hide); 933 clearTimeout(popup.timeout); 934 935 if (!isToast()) { 936 resetPrevState(); 937 window.onkeydown = globalState.previousWindowKeyDown; 938 globalState.windowOnkeydownOverridden = false; 939 } 940 941 var removePopupAndResetState = function removePopupAndResetState() { 942 if (container.parentNode) { 943 container.parentNode.removeChild(container); 944 } 945 removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['no-backdrop'], swalClasses['has-input'], swalClasses['toast-shown']]); 946 947 if (isModal()) { 948 undoScrollbar(); 949 undoIOSfix(); 950 } 951 952 if (onAfterClose !== null && typeof onAfterClose === 'function') { 953 setTimeout(function () { 954 onAfterClose(); 955 }); 956 } 957 }; 958 959 // If animation is supported, animate 960 if (animationEndEvent && !hasClass(popup, swalClasses.noanimation)) { 961 popup.addEventListener(animationEndEvent, function swalCloseEventFinished() { 962 popup.removeEventListener(animationEndEvent, swalCloseEventFinished); 963 if (hasClass(popup, swalClasses.hide)) { 964 removePopupAndResetState(); 965 } 966 }); 967 } else { 968 // Otherwise, remove immediately 969 removePopupAndResetState(); 970 } 971}; 972 973/* 974 * Global function to determine if swal2 popup is shown 975 */ 976var isVisible$1 = function isVisible() { 977 return !!getPopup(); 978}; 979 980/* 981 * Global function to click 'Confirm' button 982 */ 983var clickConfirm = function clickConfirm() { 984 return getConfirmButton().click(); 985}; 986 987/* 988 * Global function to click 'Cancel' button 989 */ 990var clickCancel = function clickCancel() { 991 return getCancelButton().click(); 992}; 993 994var _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 995 996/** 997 * Returns a wrapped instance of `swal` containing `params` as defaults. 998 * Useful for reusing swal configuration. 999 * 1000 * For example: 1001 * 1002 * Before: 1003 * const textPromptOptions = { input: 'text', showCancelButton: true } 1004 * const {value: firstName} = await swal({ ...textPromptOptions, title: 'What is your first name?' }) 1005 * const {value: lastName} = await swal({ ...textPromptOptions, title: 'What is your last name?' }) 1006 * 1007 * After: 1008 * const myTextPrompt = swal.mixin({ input: 'text', showCancelButton: true }) 1009 * const {value: firstName} = await myTextPrompt('What is your first name?') 1010 * const {value: lastName} = await myTextPrompt('What is your last name?') 1011 * 1012 * @param params 1013 */ 1014var mixin = function mixin(params) { 1015 var parentSwal = this; 1016 var childSwal = function childSwal() { 1017 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { 1018 args[_key] = arguments[_key]; 1019 } 1020 1021 return parentSwal(_extends$2({}, params, parentSwal.argsToParams(args))); 1022 }; 1023 return _extends$2(childSwal, parentSwal); 1024}; 1025 1026// private global state for the queue feature 1027var currentSteps = []; 1028 1029/* 1030 * Global function for chaining sweetAlert popups 1031 */ 1032var queue = function queue(steps) { 1033 var swal = this; 1034 currentSteps = steps; 1035 var resetQueue = function resetQueue() { 1036 currentSteps = []; 1037 document.body.removeAttribute('data-swal2-queue-step'); 1038 }; 1039 var queueResult = []; 1040 return new Promise(function (resolve, reject) { 1041 (function step(i, callback) { 1042 if (i < currentSteps.length) { 1043 document.body.setAttribute('data-swal2-queue-step', i); 1044 1045 swal(currentSteps[i]).then(function (result) { 1046 if (typeof result.value !== 'undefined') { 1047 queueResult.push(result.value); 1048 step(i + 1, callback); 1049 } else { 1050 resetQueue(); 1051 resolve({ dismiss: result.dismiss }); 1052 } 1053 }); 1054 } else { 1055 resetQueue(); 1056 resolve({ value: queueResult }); 1057 } 1058 })(0); 1059 }); 1060}; 1061 1062/* 1063 * Global function for getting the index of current popup in queue 1064 */ 1065var getQueueStep = function getQueueStep() { 1066 return document.body.getAttribute('data-swal2-queue-step'); 1067}; 1068 1069/* 1070 * Global function for inserting a popup to the queue 1071 */ 1072var insertQueueStep = function insertQueueStep(step, index) { 1073 if (index && index < currentSteps.length) { 1074 return currentSteps.splice(index, 0, step); 1075 } 1076 return currentSteps.push(step); 1077}; 1078 1079/* 1080 * Global function for deleting a popup from the queue 1081 */ 1082var deleteQueueStep = function deleteQueueStep(index) { 1083 if (typeof currentSteps[index] !== 'undefined') { 1084 currentSteps.splice(index, 1); 1085 } 1086}; 1087 1088var _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 1089 1090var _typeof$2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 1091 1092/** 1093 * Set default params for each popup 1094 * @param {Object} userParams 1095 */ 1096var setDefaults = function setDefaults(userParams) { 1097 if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof$2(userParams)) !== 'object') { 1098 return error('the argument for setDefaults() is required and has to be a object'); 1099 } 1100 1101 showWarningsForParams(userParams); 1102 1103 // assign valid params from userParams to popupParams 1104 for (var param in userParams) { 1105 if (isValidParameter(param)) { 1106 globalState.popupParams[param] = userParams[param]; 1107 } 1108 } 1109}; 1110 1111/** 1112 * Reset default params for each popup 1113 */ 1114var resetDefaults = function resetDefaults() { 1115 globalState.popupParams = _extends$3({}, defaultParams); 1116}; 1117 1118/** 1119 * Show spinner instead of Confirm button and disable Cancel button 1120 */ 1121var showLoading = function showLoading() { 1122 var popup = getPopup(); 1123 if (!popup) { 1124 sweetAlert(''); 1125 } 1126 popup = getPopup(); 1127 var actions = getActions(); 1128 var confirmButton = getConfirmButton(); 1129 var cancelButton = getCancelButton(); 1130 1131 show(actions); 1132 show(confirmButton); 1133 addClass([popup, actions], swalClasses.loading); 1134 confirmButton.disabled = true; 1135 cancelButton.disabled = true; 1136 1137 popup.setAttribute('data-loading', true); 1138 popup.setAttribute('aria-busy', true); 1139 popup.focus(); 1140}; 1141 1142 1143 1144var staticMethods = Object.freeze({ 1145 isValidParameter: isValidParameter, 1146 isDeprecatedParameter: isDeprecatedParameter, 1147 argsToParams: argsToParams, 1148 adaptInputValidator: adaptInputValidator, 1149 close: close, 1150 closePopup: close, 1151 closeModal: close, 1152 closeToast: close, 1153 isVisible: isVisible$1, 1154 clickConfirm: clickConfirm, 1155 clickCancel: clickCancel, 1156 getTitle: getTitle, 1157 getContent: getContent, 1158 getImage: getImage, 1159 getButtonsWrapper: getButtonsWrapper, 1160 getActions: getActions, 1161 getConfirmButton: getConfirmButton, 1162 getCancelButton: getCancelButton, 1163 getFooter: getFooter, 1164 isLoading: isLoading, 1165 mixin: mixin, 1166 queue: queue, 1167 getQueueStep: getQueueStep, 1168 insertQueueStep: insertQueueStep, 1169 deleteQueueStep: deleteQueueStep, 1170 setDefaults: setDefaults, 1171 resetDefaults: resetDefaults, 1172 showLoading: showLoading, 1173 enableLoading: showLoading 1174}); 1175 1176var _typeof$3 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 1177 1178var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); }
1178 else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 1179 1180var _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 1181 1182var currentContext = void 0; 1183 1184/** 1185 * Animations 1186 * 1187 * @param animation 1188 * @param onBeforeOpen 1189 * @param onComplete 1190 */ 1191var openPopup = function openPopup(animation, onBeforeOpen, onOpen) { 1192 var container = getContainer(); 1193 var popup = getPopup(); 1194 1195 if (onBeforeOpen !== null && typeof onBeforeOpen === 'function') { 1196 onBeforeOpen(popup); 1197 } 1198 1199 if (animation) { 1200 addClass(popup, swalClasses.show); 1201 addClass(container, swalClasses.fade); 1202 removeClass(popup, swalClasses.hide); 1203 } else { 1204 removeClass(popup, swalClasses.fade); 1205 } 1206 show(popup); 1207 1208 // scrolling is 'hidden' until animation is done, after that 'auto' 1209 container.style.overflowY = 'hidden'; 1210 if (animationEndEvent && !hasClass(popup, swalClasses.noanimation)) { 1211 popup.addEventListener(animationEndEvent, function swalCloseEventFinished() { 1212 popup.removeEventListener(animationEndEvent, swalCloseEventFinished); 1213 container.style.overflowY = 'auto'; 1214 }); 1215 } else { 1216 container.style.overflowY = 'auto'; 1217 } 1218 1219 addClass([document.documentElement, document.body, container], swalClasses.shown); 1220 if (isModal()) { 1221 fixScrollbar(); 1222 iOSfix(); 1223 } 1224 states.previousActiveElement = document.activeElement; 1225 if (onOpen !== null && typeof onOpen === 'function') { 1226 setTimeout(function () { 1227 onOpen(popup); 1228 }); 1229 } 1230}; 1231 1232// SweetAlert entry point 1233var sweetAlert = function sweetAlert() { 1234 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { 1235 args[_key] = arguments[_key]; 1236 } 1237 1238 // Prevent run in Node env 1239 if (typeof window === 'undefined') { 1240 return; 1241 } 1242 1243 // Check for the existence of Promise 1244 if (typeof Promise === 'undefined') { 1245 error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)'); 1246 } 1247 1248 if (typeof args[0] === 'undefined') { 1249 error('SweetAlert2 expects at least 1 attribute!'); 1250 return false; 1251 } 1252 1253 var context = currentContext = {}; 1254 1255 var userParams = sweetAlert.argsToParams(args); 1256 showWarningsForParams(userParams); 1257 var params = context.params = _extends$4({}, globalState.popupParams, userParams); 1258 setParameters(params); 1259 1260 var domCache = context.domCache = { 1261 popup: getPopup(), 1262 container: getContainer(), 1263 content: getContent(), 1264 actions: getActions(), 1265 confirmButton: getConfirmButton(), 1266 cancelButton: getCancelButton(), 1267 closeButton: getCloseButton(), 1268 validationError: getValidationError(), 1269 progressSteps: getProgressSteps() 1270 }; 1271 1272 return new Promise(function (resolve, reject) { 1273 // functions to handle all resolving/rejecting/settling 1274 var succeedWith = function succeedWith(value) { 1275 sweetAlert.closePopup(params.onClose, params.onAfterClose); 1276 if (params.useRejections) { 1277 resolve(value); 1278 } else { 1279 resolve({ value: value }); 1280 } 1281 }; 1282 var dismissWith = function dismissWith(dismiss) { 1283 sweetAlert.closePopup(params.onClose, params.onAfterClose); 1284 if (params.useRejections) { 1285 reject(dismiss); 1286 } else { 1287 resolve({ dismiss: dismiss }); 1288 } 1289 }; 1290 var errorWith = function errorWith(error$$1) { 1291 sweetAlert.closePopup(params.onClose, params.onAfterClose); 1292 reject(error$$1); 1293 }; 1294 1295 // Close on timer 1296 if (params.timer) { 1297 domCache.popup.timeout = setTimeout(function () { 1298 return dismissWith('timer'); 1299 }, params.timer); 1300 } 1301 1302 // Get the value of the popup input 1303 var getInputValue = function getInputValue() { 1304 var input = sweetAlert.getInput(); 1305 if (!input) { 1306 return null; 1307 } 1308 switch (params.input) { 1309 case 'checkbox': 1310 return input.checked ? 1 : 0; 1311 case 'radio': 1312 return input.checked ? input.value : null; 1313 case 'file': 1314 return input.files.length ? input.files[0] : null; 1315 default: 1316 return params.inputAutoTrim ? input.value.trim() : input.value; 1317 } 1318 }; 1319 1320 // input autofocus 1321 if (params.input) { 1322 setTimeout(function () { 1323 var input = sweetAlert.getInput(); 1324 if (input) { 1325 focusInput(input); 1326 } 1327 }, 0); 1328 } 1329 1330 var confirm = function confirm(value) { 1331 if (params.showLoaderOnConfirm) { 1332 sweetAlert.showLoading(); 1333 } 1334 1335 if (params.preConfirm) { 1336 sweetAlert.resetValidationError(); 1337 var preConfirmPromise = Promise.resolve().then(function () { 1338 return params.preConfirm(value, params.extraParams); 1339 }); 1340 if (params.expectRejections) { 1341 preConfirmPromise.then(function (preConfirmValue) { 1342 return succeedWith(preConfirmValue || value); 1343 }, function (validationError) { 1344 sweetAlert.hideLoading(); 1345 if (validationError) { 1346 sweetAlert.showValidationError(validationError); 1347 } 1348 }); 1349 } else { 1350 preConfirmPromise.then(function (preConfirmValue) { 1351 if (isVisible(domCache.validationError) || preConfirmValue === false) { 1352 sweetAlert.hideLoading(); 1353 } else { 1354 succeedWith(preConfirmValue || value); 1355 } 1356 }, function (error$$1) { 1357 return errorWith(error$$1); 1358 }); 1359 } 1360 } else { 1361 succeedWith(value); 1362 } 1363 }; 1364 1365 // Mouse interactions 1366 var onButtonEvent = function onButtonEvent(event) { 1367 var e = event || window.event; 1368 var target = e.target || e.srcElement; 1369 var confirmButton = domCache.confirmButton, 1370 cancelButton = domCache.cancelButton; 1371 1372 var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target)); 1373 var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target)); 1374 1375 switch (e.type) { 1376 case 'click': 1377 // Clicked 'confirm' 1378 if (targetedConfirm && sweetAlert.isVisible()) { 1379 sweetAlert.disableButtons(); 1380 if (params.input) { 1381 var inputValue = getInputValue(); 1382 1383 if (params.inputValidator) { 1384 sweetAlert.disableInput();
1385 var validationPromise = Promise.resolve().then(function () { 1386 return params.inputValidator(inputValue, params.extraParams); 1387 }); 1388 if (params.expectRejections) { 1389 validationPromise.then(function () { 1390 sweetAlert.enableButtons(); 1391 sweetAlert.enableInput(); 1392 confirm(inputValue); 1393 }, function (validationError) { 1394 sweetAlert.enableButtons(); 1395 sweetAlert.enableInput(); 1396 if (validationError) { 1397 sweetAlert.showValidationError(validationError); 1398 } 1399 }); 1400 } else { 1401 validationPromise.then(function (validationError) { 1402 sweetAlert.enableButtons(); 1403 sweetAlert.enableInput(); 1404 if (validationError) { 1405 sweetAlert.showValidationError(validationError); 1406 } else { 1407 confirm(inputValue); 1408 } 1409 }, function (error$$1) { 1410 return errorWith(error$$1); 1411 }); 1412 } 1413 } else { 1414 confirm(inputValue); 1415 } 1416 } else { 1417 confirm(true); 1418 } 1419 1420 // Clicked 'cancel' 1421 } else if (targetedCancel && sweetAlert.isVisible()) { 1422 sweetAlert.disableButtons(); 1423 dismissWith(sweetAlert.DismissReason.cancel); 1424 } 1425 break; 1426 default: 1427 } 1428 }; 1429 1430 var buttons = domCache.popup.querySelectorAll('button'); 1431 for (var i = 0; i < buttons.length; i++) { 1432 buttons[i].onclick = onButtonEvent; 1433 buttons[i].onmouseover = onButtonEvent; 1434 buttons[i].onmouseout = onButtonEvent; 1435 buttons[i].onmousedown = onButtonEvent; 1436 } 1437 1438 // Closing popup by close button 1439 domCache.closeButton.onclick = function () { 1440 dismissWith(sweetAlert.DismissReason.close); 1441 }; 1442 1443 if (params.toast) { 1444 // Closing popup by internal click 1445 domCache.popup.onclick = function (e) { 1446 if (params.showConfirmButton || params.showCancelButton || params.showCloseButton || params.input) { 1447 return; 1448 } 1449 sweetAlert.closePopup(params.onClose, params.onAfterClose); 1450 dismissWith(sweetAlert.DismissReason.close); 1451 }; 1452 } else { 1453 var ignoreOutsideClick = false; 1454 1455 // Ignore click events that had mousedown on the popup but mouseup on the container 1456 // This can happen when the user drags a slider 1457 domCache.popup.onmousedown = function () { 1458 domCache.container.onmouseup = function (e) { 1459 domCache.container.onmouseup = undefined; 1460 // We only check if the mouseup target is the container because usually it doesn't 1461 // have any other direct children aside of the popup 1462 if (e.target === domCache.container) { 1463 ignoreOutsideClick = true; 1464 } 1465 }; 1466 }; 1467 1468 // Ignore click events that had mousedown on the container but mouseup on the popup 1469 domCache.container.onmousedown = function () { 1470 domCache.popup.onmouseup = function (e) { 1471 domCache.popup.onmouseup = undefined; 1472 // We also need to check if the mouseup target is a child of the popup 1473 if (e.target === domCache.popup || domCache.popup.contains(e.target)) { 1474 ignoreOutsideClick = true; 1475 } 1476 }; 1477 }; 1478 1479 domCache.container.onclick = function (e) { 1480 if (ignoreOutsideClick) { 1481 ignoreOutsideClick = false; 1482 return; 1483 } 1484 if (e.target !== domCache.container) { 1485 return; 1486 } 1487 if (callIfFunction(params.allowOutsideClick)) { 1488 dismissWith(sweetAlert.DismissReason.backdrop); 1489 } 1490 }; 1491 } 1492 1493 // Reverse buttons (Confirm on the right side) 1494 if (params.reverseButtons) { 1495 domCache.confirmButton.parentNode.insertBefore(domCache.cancelButton, domCache.confirmButton); 1496 } else { 1497 domCache.confirmButton.parentNode.insertBefore(domCache.confirmButton, domCache.cancelButton); 1498 } 1499 1500 // Focus handling 1501 var setFocus = function setFocus(index, increment) { 1502 var focusableElements = getFocusableElements(params.focusCancel); 1503 // search for visible elements and select the next possible match 1504 for (var _i = 0; _i < focusableElements.length; _i++) { 1505 index = index + increment; 1506 1507 // rollover to first item 1508 if (index === focusableElements.length) { 1509 index = 0; 1510 1511 // go to last item 1512 } else if (index === -1) { 1513 index = focusableElements.length - 1; 1514 } 1515 1516 // determine if element is visible 1517 var el = focusableElements[index]; 1518 if (isVisible(el)) { 1519 return el.focus(); 1520 } 1521 } 1522 }; 1523 1524 var handleKeyDown = function handleKeyDown(event) { 1525 var e = event || window.event; 1526 1527 var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11 1528 ]; 1529 1530 if (e.key === 'Enter' && !e.isComposing) { 1531 if (e.target === sweetAlert.getInput()) { 1532 if (['textarea', 'file'].indexOf(params.input) !== -1) { 1533 return; // do not submit 1534 } 1535 1536 sweetAlert.clickConfirm(); 1537 e.preventDefault(); 1538 } 1539 1540 // TAB 1541 } else if (e.key === 'Tab') { 1542 var targetElement = e.target || e.srcElement; 1543 1544 var focusableElements = getFocusableElements(params.focusCancel); 1545 var btnIndex = -1; // Find the button - note, this is a nodelist, not an array. 1546 for (var _i2 = 0;
1546 _i2 < focusableElements.length; _i2++) { 1547 if (targetElement === focusableElements[_i2]) { 1548 btnIndex = _i2; 1549 break; 1550 } 1551 } 1552 1553 if (!e.shiftKey) { 1554 // Cycle to the next button 1555 setFocus(btnIndex, 1); 1556 } else { 1557 // Cycle to the prev button 1558 setFocus(btnIndex, -1); 1559 } 1560 e.stopPropagation(); 1561 e.preventDefault(); 1562 1563 // ARROWS - switch focus between buttons 1564 } else if (arrowKeys.indexOf(e.key) !== -1) { 1565 // focus Cancel button if Confirm button is currently focused 1566 if (document.activeElement === domCache.confirmButton && isVisible(domCache.cancelButton)) { 1567 domCache.cancelButton.focus(); 1568 // and vice versa 1569 } else if (document.activeElement === domCache.cancelButton && isVisible(domCache.confirmButton)) { 1570 domCache.confirmButton.focus(); 1571 } 1572 1573 // ESC 1574 } else if ((e.key === 'Escape' || e.key === 'Esc') && callIfFunction(params.allowEscapeKey) === true) { 1575 dismissWith(sweetAlert.DismissReason.esc); 1576 } 1577 }; 1578
1579 if (params.toast && globalState.windowOnkeydownOverridden) { 1580 window.onkeydown = globalState.previousWindowKeyDown; 1581 globalState.windowOnkeydownOverridden = false; 1582 } 1583 1584 if (!params.toast && !globalState.windowOnkeydownOverridden) { 1585 globalState.previousWindowKeyDown = window.onkeydown; 1586 globalState.windowOnkeydownOverridden = true; 1587 window.onkeydown = handleKeyDown; 1588 } 1589 1590 sweetAlert.enableButtons(); 1591 sweetAlert.hideLoading(); 1592 sweetAlert.resetValidationError(); 1593 1594 if (params.input) { 1595 addClass(document.body, swalClasses['has-input']); 1596 } 1597 1598 // inputs 1599 var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; 1600 var input = void 0; 1601 for (var _i3 = 0; _i3 < inputTypes.length; _i3++) { 1602 var inputClass = swalClasses[inputTypes[_i3]]; 1603 var inputContainer = getChildByClass(domCache.content, inputClass); 1604 input = sweetAlert.getInput(inputTypes[_i3]); 1605 1606 // set attributes 1607 if (input) { 1608 for (var j in input.attributes) { 1609 if (input.attributes.hasOwnProperty(j)) { 1610 var attrName = input.attributes[j].name; 1611 if (attrName !== 'type' && attrName !== 'value') { 1612 input.removeAttribute(attrName); 1613 } 1614 } 1615 } 1616 for (var attr in params.inputAttributes) { 1617 input.setAttribute(attr, params.inputAttributes[attr]); 1618 } 1619 } 1620 1621 // set class 1622 inputContainer.className = inputClass; 1623 if (params.inputClass) { 1624 addClass(inputContainer, params.inputClass); 1625 } 1626 1627 hide(inputContainer); 1628 } 1629 1630 var populateInputOptions = void 0; 1631 switch (params.input) { 1632 case 'text': 1633 case 'email': 1634 case 'password': 1635 case 'number': 1636 case 'tel': 1637 case 'url': 1638 input = getChildByClass(domCache.content, swalClasses.input); 1639 input.value = params.inputValue; 1640 input.placeholder = params.inputPlaceholder; 1641 input.type = params.input; 1642 show(input); 1643 break; 1644 case 'file': 1645 input = getChildByClass(domCache.content, swalClasses.file); 1646 input.placeholder = params.inputPlaceholder; 1647 input.type = params.input; 1648 show(input); 1649 break; 1650 case 'range': 1651 var range = getChildByClass(domCache.content, swalClasses.range); 1652 var rangeInput = range.querySelector('input'); 1653 var rangeOutput = range.querySelector('output'); 1654 rangeInput.value = params.inputValue; 1655 rangeInput.type = params.input; 1656 rangeOutput.value = params.inputValue; 1657 show(range); 1658 break; 1659 case 'select': 1660 var select = getChildByClass(domCache.content, swalClasses.select); 1661 select.innerHTML = ''; 1662 if (params.inputPlaceholder) { 1663 var placeholder = document.createElement('option'); 1664 placeholder.innerHTML = params.inputPlaceholder; 1665 placeholder.value = ''; 1666 placeholder.disabled = true; 1667 placeholder.selected = true; 1668 select.appendChild(placeholder); 1669 } 1670 populateInputOptions = function populateInputOptions(inputOptions) { 1671 inputOptions.forEach(function (_ref) { 1672 var _ref2 = _slicedToArray(_ref, 2), 1673 optionValue = _ref2[0], 1674 optionLabel = _ref2[1]; 1675 1676 var option = document.createElement('option'); 1677 option.value = optionValue; 1678 option.innerHTML = optionLabel; 1679 if (params.inputValue.toString() === optionValue.toString()) { 1680 option.selected = true; 1681 } 1682 select.appendChild(option); 1683 }); 1684 show(select); 1685 select.focus(); 1686 }; 1687 break; 1688 case 'radio': 1689 var radio = getChildByClass(domCache.content, swalClasses.radio); 1690 radio.innerHTML = ''; 1691 populateInputOptions = function populateInputOptions(inputOptions) { 1692 inputOptions.forEach(function (_ref3) { 1693 var _ref4 = _slicedToArray(_ref3, 2), 1694 radioValue = _ref4[0], 1695 radioLabel = _ref4[1]; 1696 1697 var radioInput = document.createElement('input'); 1698 var radioLabelElement = document.createElement('label'); 1699 radioInput.type = 'radio'; 1700 radioInput.name = swalClasses.radio; 1701 radioInput.value = radioValue; 1702 if (params.inputValue.toString() === radioValue.toString()) { 1703 radioInput.checked = true; 1704 } 1705 radioLabelElement.innerHTML = radioLabel; 1706 radioLabelElement.insertBefore(radioInput, radioLabelElement.firstChild); 1707 radio.appendChild(radioLabelElement); 1708 }); 1709 show(radio); 1710 var radios = radio.querySelectorAll('input'); 1711 if (radios.length) { 1712 radios[0].focus(); 1713 } 1714 }; 1715 break; 1716 case 'checkbox': 1717 var checkbox = getChildByClass(domCache.content, swalClasses.checkbox); 1718 var checkboxInput = sweetAlert.getInput('checkbox'); 1719 checkboxInput.type = 'checkbox'; 1720 checkboxInput.value = 1; 1721 checkboxInput.id = swalClasses.checkbox; 1722 checkboxInput.checked = Boolean(params.inputValue); 1723 var label = checkbox.getElementsByTagName('span'); 1724 if (label.length) { 1725 checkbox.removeChild(label[0]); 1726 } 1727 label = document.createElement('span'); 1728 label.innerHTML = params.inputPlaceholder; 1729 checkbox.appendChild(label); 1730 show(checkbox); 1731 break; 1732 case 'textarea': 1733 var textarea = getChildByClass(domCache.content, swalClasses.textarea); 1734 textarea.value = params.inputValue; 1735 textarea.placeholder = params.inputPlaceholder; 1736 show(textarea); 1737 break; 1738 case null: 1739 break; 1740 default: 1741 error('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"'); 1742 break; 1743 } 1744 1745 if (params.input === 'select' || params.input === 'radio') { 1746 var processInputOptions = function processInputOptions(inputOptions) { 1747 return populateInputOptions(formatInputOptions(inputOptions)); 1748 }; 1749 if (params.inputOptions instanceof Promise) { 1750 sweetAlert.showLoading(); 1751 params.inputOptions.then(function (inputOptions) { 1752 sweetAlert.hideLoading(); 1753 processInputOptions(inputOptions); 1754 }); 1755 } else if (_typeof$3(params.inputOptions) === 'object') { 1756 processInputOptions(params.inputOptions); 1757 } else { 1758 error('Unexpected type of inputOptions! Expected object, Map or Promise, got ' + _typeof$3(params.inputOptions)); 1759 } 1760 } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && params.inputValue instanceof Promise) { 1761 sweetAlert.showLoading(); 1762 hide(input); 1763 params.inputValue.then(function (inputValue) { 1764 input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : inputValue + ''; 1765 show(input); 1766 sweetAlert.hideLoading(); 1767 }).catch(function (err) { 1768 error('Error in inputValue promise: ' + err); 1769 input.value = ''; 1770 show(input); 1771 sweetAlert.hideLoading(); 1772 }); 1773 } 1774 1775 openPopup(params.animation, params.onBeforeOpen, params.onOpen); 1776 1777 if (!params.toast) { 1778 if (!callIfFunction(params.allowEnterKey)) { 1779 if (document.activeElement) { 1780 document.activeElement.blur(); 1781 } 1782 } else if (params.focusCancel && isVisible(domCache.cancelButton)) { 1783 domCache.cancelButton.focus(); 1784 } else if (params.focusConfirm && isVisible(domCache.confirmButton)) { 1785 domCache.confirmButton.focus(); 1786 } else { 1787 setFocus(-1, 1); 1788 } 1789 } 1790 1791 // fix scroll 1792 domCache.container.scrollTop = 0; 1793 }); 1794}; 1795 1796// Assign static methods from src/staticMethods/*.js 1797_extends$4(sweetAlert, staticMethods); 1798 1799/** 1800 * Show spinner instead of Confirm button and disable Cancel button 1801 */ 1802sweetAlert.hideLoading = sweetAlert.disableLoading = function () { 1803 if (currentContext) { 1804 var _currentContext = currentContext, 1805 params = _currentContext.params, 1806 domCache = _currentContext.domCache; 1807 1808 if (!params.showConfirmButton) { 1809 hide(domCache.confirmButton); 1810 if (!params.showCancelButton) { 1811 hide(domCache.actions); 1812 } 1813 } 1814 removeClass([domCache.popup, domCache.actions], swalClasses.loading); 1815 domCache.popup.removeAttribute('aria-busy'); 1816 domCache.popup.removeAttribute('data-loading'); 1817 domCache.confirmButton.disabled = false; 1818 domCache.cancelButton.disabled = false; 1819 } 1820}; 1821 1822// Get input element by specified type or, if type isn't specified, by params.input 1823sweetAlert.getInput = function (inputType) { 1824 if (currentContext) { 1825 var _currentContext2 = currentContext, 1826 params = _currentContext2.params, 1827 domCache = _currentContext2.domCache; 1828 1829 inputType = inputType || params.input; 1830 if (!inputType) { 1831 return null; 1832 } 1833 switch (inputType) { 1834 case 'select': 1835 case 'textarea': 1836 case 'file': 1837 return getChildByClass(domCache.content, swalClasses[inputType]); 1838 case 'checkbox': 1839 return domCache.popup.querySelector('.' + swalClasses.checkbox + ' input'); 1840 case 'radio': 1841 return domCache.popup.querySelector('.' + swalClasses.radio + ' input:checked') || domCache.popup.querySelector('.' + swalClasses.radio + ' input:first-child'); 1842 case 'range': 1843 return domCache.popup.querySelector('.' + swalClasses.range + ' input'); 1844 default: 1845 return getChildByClass(domCache.content, swalClasses.input); 1846 } 1847 } 1848}; 1849 1850sweetAlert.enableButtons = function () { 1851 if (currentContext) { 1852 var _currentContext3 = currentContext, 1853 domCache = _currentContext3.domCache; 1854 1855 domCache.confirmButton.disabled = false; 1856 domCache.cancelButton.disabled = false; 1857 } 1858}; 1859 1860sweetAlert.disableButtons = function () { 1861 if (currentContext) { 1862 var _currentContext4 = currentContext, 1863 domCache = _currentContext4.domCache; 1864 1865 domCache.confirmButton.disabled = true; 1866 domCache.cancelButton.disabled = true; 1867 } 1868}; 1869 1870sweetAlert.enableConfirmButton = function () { 1871 if (currentContext) { 1872 var _currentContext5 = currentContext, 1873 domCache = _currentContext5.domCache; 1874 1875 domCache.confirmButton.disabled = false; 1876 } 1877}; 1878 1879sweetAlert.disableConfirmButton = function () { 1880 if (currentContext) { 1881 var _currentContext6 = currentContext, 1882 domCache = _currentContext6.domCache; 1883 1884 domCache.confirmButton.disabled = true; 1885 } 1886}; 1887 1888sweetAlert.enableInput = function () { 1889 if (currentContext) { 1890 var input = sweetAlert.getInput(); 1891 if (!input) { 1892 return false; 1893 } 1894 if (input.type === 'radio') { 1895 var radiosContainer = input.parentNode.parentNode; 1896 var radios = radiosContainer.querySelectorAll('input'); 1897 for (var i = 0; i < radios.length; i++) { 1898 radios[i].disabled = false; 1899 } 1900 } else { 1901 input.disabled = false; 1902 } 1903 } 1904}; 1905 1906sweetAlert.disableInput = function () { 1907 if (currentContext) { 1908 var input = sweetAlert.getInput(); 1909 if (!input) { 1910 return false; 1911 } 1912 if (input && input.type === 'radio') { 1913 var radiosContainer = input.parentNode.parentNode; 1914 var radios = radiosContainer.querySelectorAll('input'); 1915 for (var i = 0; i < radios.length; i++) { 1916 radios[i].disabled = true; 1917 } 1918 } else { 1919 input.disabled = true; 1920 } 1921 } 1922}; 1923 1924// Show block with validation error 1925sweetAlert.showValidationError = function (error$$1) { 1926 if (currentContext) { 1927 var _currentContext7 = currentContext, 1928 domCache = _currentContext7.domCache; 1929 1930 domCache.validationError.innerHTML = error$$1; 1931 var popupComputedStyle = window.getComputedStyle(domCache.popup);
1932 domCache.validationError.style.marginLeft = '-' + popupComputedStyle.getPropertyValue('padding-left'); 1933 domCache.validationError.style.marginRight = '-' + popupComputedStyle.getPropertyValue('padding-right'); 1934 show(domCache.validationError); 1935 1936 var input = sweetAlert.getInput(); 1937 if (input) { 1938 input.setAttribute('aria-invalid', true); 1939 input.setAttribute('aria-describedBy', swalClasses.validationerror); 1940 focusInput(input); 1941 addClass(input, swalClasses.inputerror); 1942 } 1943 } 1944}; 1945 1946// Hide block with validation error 1947sweetAlert.resetValidationError = function () { 1948 if (currentContext) { 1949 var _currentContext8 = currentContext, 1950 domCache = _currentContext8.domCache; 1951 1952 if (domCache.validationError) { 1953 hide(domCache.validationError); 1954 } 1955 1956 var input = sweetAlert.getInput(); 1957 if (input) { 1958 input.removeAttribute('aria-invalid'); 1959 input.removeAttribute('aria-describedBy'); 1960 removeClass(input, swalClasses.inputerror); 1961 } 1962 } 1963}; 1964 1965sweetAlert.getProgressSteps = function () { 1966 if (currentContext) { 1967 var _currentContext9 = currentContext, 1968 params = _currentContext9.params; 1969 1970 return params.progressSteps; 1971 } 1972}; 1973 1974sweetAlert.setProgressSteps = function (progressSteps) { 1975 if (currentContext) { 1976 var _currentContext10 = currentContext, 1977 params = _currentContext10.params; 1978 1979 params.progressSteps = progressSteps; 1980 setParameters(params); 1981 } 1982}; 1983 1984sweetAlert.showProgressSteps = function () { 1985 if (currentContext) { 1986 var _currentContext11 = currentContext, 1987 domCache = _currentContext11.domCache; 1988 1989 show(domCache.progressSteps); 1990 } 1991}; 1992 1993sweetAlert.hideProgressSteps = function () { 1994 if (currentContext) { 1995 var _currentContext12 = currentContext, 1996 domCache = _currentContext12.domCache; 1997 1998 hide(domCache.progressSteps); 1999 } 2000}; 2001 2002sweetAlert.DismissReason = DismissReason; 2003 2004sweetAlert.noop = function () {}; 2005 2006sweetAlert.version = version; 2007 2008sweetAlert.default = sweetAlert; 2009 2010/** 2011 * Set default params if `window._swalDefaults` is an object 2012 */ 2013if (typeof window !== 'undefined' && _typeof$3(window._swalDefaults) === 'object') { 2014 sweetAlert.setDefaults(window._swalDefaults); 2015} 2016 2017return sweetAlert; 2018 2019}))); 2020if (typeof window !== 'undefined' && window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2; 2021 2022"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,"@-webkit-keyframes swal2-show {\n" + 2023" 0% {\n" + 2024" -webkit-transform: scale(0.7);\n" + 2025" transform: scale(0.7); }\n" + 2026" 45% {\n" + 2027" -webkit-transform: scale(1.05);\n" + 2028" transform: scale(1.05); }\n" + 2029" 80% {\n" + 2030" -webkit-transform: scale(0.95);\n" + 2031" transform: scale(0.95); }\n" + 2032" 100% {\n" + 2033" -webkit-transform: scale(1);\n" + 2034" transform: scale(1); } }\n" + 2035"\n" + 2036"@keyframes swal2-show {\n" + 2037" 0% {\n" + 2038" -webkit-transform: scale(0.7);\n" + 2039" transform: scale(0.7); }\n" + 2040" 45% {\n" + 2041" -webkit-transform: scale(1.05);\n" + 2042" transform: scale(1.05); }\n" + 2043" 80% {\n" + 2044" -webkit-transform: scale(0.95);\n" + 2045" transform: scale(0.95); }\n" + 2046" 100% {\n" + 2047" -webkit-transform: scale(1);\n" + 2048" transform: scale(1); } }\n" + 2049"\n" + 2050"@-webkit-keyframes swal2-hide {\n" + 2051" 0% {\n" + 2052" -webkit-transform: scale(1);\n" + 2053" transform: scale(1);\n" + 2054" opacity: 1; }\n" + 2055" 100% {\n" + 2056" -webkit-transform: scale(0.5);\n" + 2057" transform: scale(0.5);\n" + 2058" opacity: 0; } }\n" + 2059"\n" + 2060"@keyframes swal2-hide {\n" + 2061" 0% {\n" + 2062" -webkit-transform: scale(1);\n" + 2063" transform: scale(1);\n" + 2064" opacity: 1; }\n" + 2065" 100% {\n" + 2066" -webkit-transform: scale(0.5);\n" + 2067" transform: scale(0.5);\n" + 2068" opacity: 0; } }\n" + 2069"\n" +
2070"@-webkit-keyframes swal2-animate-success-line-tip {\n" + 2071" 0% {\n" + 2072" top: 1.1875em;\n" + 2073" left: .0625em;\n" + 2074" width: 0; }\n" + 2075" 54% {\n" + 2076" top: 1.0625em;\n" + 2077" left: .125em;\n" + 2078" width: 0; }\n" + 2079" 70% {\n" + 2080" top: 2.1875em;\n" + 2081" left: -.375em;\n" + 2082" width: 3.125em; }\n" + 2083" 84% {\n" + 2084" top: 3em;\n" + 2085" left: 1.3125em;\n" + 2086" width: 1.0625em; }\n" + 2087" 100% {\n" + 2088" top: 2.8125em;\n" + 2089" left: .875em;\n" + 2090" width: 1.5625em; } }\n" + 2091"\n" + 2092"@keyframes swal2-animate-success-line-tip {\n" + 2093" 0% {\n" + 2094" top: 1.1875em;\n" + 2095" left: .0625em;\n" + 2096" width: 0; }\n" + 2097" 54% {\n" + 2098" top: 1.0625em;\n" + 2099" left: .125em;\n" + 2100" width: 0; }\n" + 2101" 70% {\n" + 2102" top: 2.1875em;\n" + 2103" left: -.375em;\n" + 2104" width: 3.125em; }\n" + 2105" 84% {\n" + 2106" top: 3em;\n" + 2107" left: 1.3125em;\n" + 2108" width: 1.0625em; }\n" + 2109" 100% {\n" + 2110" top: 2.8125em;\n" + 2111" left: .875em;\n" + 2112" width: 1.5625em; } }\n" + 2113"\n" + 2114"@-webkit-keyframes swal2-animate-success-line-long {\n" + 2115" 0% {\n" + 2116" top: 3.375em;\n" + 2117" right: 2.875em;\n" + 2118" width: 0; }\n" + 2119" 65% {\n" + 2120" top: 3.375em;\n" + 2121" right: 2.875em;\n" + 2122" width: 0; }\n" + 2123" 84% {\n" + 2124" top: 2.1875em;\n" + 2125" right: 0;\n" + 2126" width: 3.4375em; }\n" + 2127" 100% {\n" + 2128" top: 2.375em;\n" + 2129" right: .5em;\n" + 2130" width: 2.9375em; } }\n" + 2131"\n" + 2132"@keyframes swal2-animate-success-line-long {\n" + 2133" 0% {\n" + 2134" top: 3.375em;\n" + 2135" right: 2.875em;\n" + 2136" width: 0; }\n" + 2137" 65% {\n" + 2138" top: 3.375em;\n" + 2139" right: 2.875em;\n" + 2140" width: 0; }\n" + 2141" 84% {\n" + 2142" top: 2.1875em;\n" + 2143" right: 0;\n" + 2144" width: 3.4375em; }\n" + 2145" 100% {\n" + 2146" top: 2.375em;\n" + 2147" right: .5em;\n" + 2148" width: 2.9375em; } }\n" + 2149"\n" + 2150"@-webkit-keyframes swal2-rotate-success-circular-line {\n" + 2151" 0% {\n" + 2152" -webkit-transform: rotate(-45deg);\n" + 2153" transform: rotate(-45deg); }\n" + 2154" 5% {\n" + 2155" -webkit-transform: rotate(-45deg);\n" + 2156" transform: rotate(-45deg); }\n" + 2157" 12% {\n" + 2158" -webkit-transform: rotate(-405deg);\n" + 2159" transform: rotate(-405deg); }\n" + 2160" 100% {\n" + 2161" -webkit-transform: rotate(-405deg);\n" + 2162" transform: rotate(-405deg); } }\n" + 2163"\n" + 2164"@keyframes swal2-rotate-success-circular-line {\n" + 2165" 0% {\n" + 2166" -webkit-transform: rotate(-45deg);\n" + 2167" transform: rotate(-45deg); }\n" + 2168" 5% {\n" + 2169" -webkit-transform: rotate(-45deg);\n" + 2170" transform: rotate(-45deg); }\n" + 2171" 12% {\n" + 2172" -webkit-transform: rotate(-405deg);\n" + 2173" transform: rotate(-405deg); }\n" + 2174" 100% {\n" + 2175" -webkit-transform: rotate(-405deg);\n" + 2176" transform: rotate(-405deg); } }\n" + 2177"\n" + 2178"@-webkit-keyframes swal2-animate-error-x-mark {\n" + 2179" 0% {\n" + 2180" margin-top: 1.625em;\n" + 2181" -webkit-transform: scale(0.4);\n" + 2182" transform: scale(0.4);\n" + 2183" opacity: 0; }\n" + 2184" 50% {\n" + 2185" margin-top: 1.625em;\n" + 2186" -webkit-transform: scale(0.4);\n" + 2187" transform: scale(0.4);\n" + 2188" opacity: 0; }\n" + 2189" 80% {\n" + 2190" margin-top: -.375em;\n" + 2191" -webkit-transform: scale(1.15);\n" + 2192" transform: scale(1.15); }\n" + 2193" 100% {\n" + 2194" margin-top: 0;\n" + 2195" -webkit-transform: scale(1);\n" + 2196" transform: scale(1);\n" + 2197" opacity: 1; } }\n" + 2198"\n" + 2199"@keyframes swal2-animate-error-x-mark {\n" + 2200" 0% {\n" + 2201" margin-top: 1.625em;\n" + 2202" -webkit-transform: scale(0.4);\n" + 2203" transform: scale(0.4);\n" + 2204" opacity: 0; }\n" + 2205" 50% {\n" + 2206" margin-top: 1.625em;\n" + 2207" -webkit-transform: scale(0.4);\n" + 2208" transform: scale(0.4);\n" + 2209" opacity: 0; }\n" + 2210" 80% {\n" + 2211" margin-top: -.375em;\n" + 2212" -webkit-transform: scale(1.15);\n" + 2213" transform: scale(1.15); }\n" + 2214" 100% {\n" + 2215" margin-top: 0;\n" + 2216" -webkit-transform: scale(1);\n" + 2217" transform: scale(1);\n" + 2218" opacity: 1; } }\n" + 2219"\n" +
2220"@-webkit-keyframes swal2-animate-error-icon {\n" + 2221" 0% {\n" + 2222" -webkit-transform: rotateX(100deg);\n" + 2223" transform: rotateX(100deg);\n" + 2224" opacity: 0; }\n" + 2225" 100% {\n" + 2226" -webkit-transform: rotateX(0deg);\n" + 2227" transform: rotateX(0deg);\n" + 2228" opacity: 1; } }\n" + 2229"\n" + 2230"@keyframes swal2-animate-error-icon {\n" + 2231" 0% {\n" + 2232" -webkit-transform: rotateX(100deg);\n" + 2233" transform: rotateX(100deg);\n" + 2234" opacity: 0; }\n" + 2235" 100% {\n" + 2236" -webkit-transform: rotateX(0deg);\n" + 2237" transform: rotateX(0deg);\n" + 2238" opacity: 1; } }\n" + 2239"\n" + 2240"body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast {\n" + 2241" flex-direction: column;\n" + 2242" align-items: stretch; }\n" + 2243" body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-actions {\n" + 2244" flex: 1;\n" + 2245" align-self: stretch;\n" + 2246" justify-content: flex-end;\n" + 2247" height: 2.2em; }\n" + 2248" body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-loading {\n" + 2249" justify-content: center; }\n" + 2250" body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-input {\n" + 2251" height: 2em;\n" + 2252" margin: .3125em auto;\n" + 2253" font-size: 1em; }\n" + 2254" body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-validationerror {\n" + 2255" font-size: 1em; }\n" + 2256"\n" + 2257"body.swal2-toast-shown > .swal2-container {\n" + 2258" position: fixed;\n" + 2259" background-color: transparent; }\n" + 2260" body.swal2-toast-shown > .swal2-container.swal2-shown {\n" + 2261" background-color: transparent; }\n" + 2262" body.swal2-toast-shown > .swal2-container.swal2-top {\n" + 2263" top: 0;\n" + 2264" right: auto;\n" + 2265" bottom: auto;\n" + 2266" left: 50%;\n" + 2267" -webkit-transform: translateX(-50%);\n" + 2268" transform: translateX(-50%); }\n" + 2269" body.swal2-toast-shown > .swal2-container.swal2-top-end, body.swal2-toast-shown > .swal2-container.swal2-top-right {\n" + 2270" top: 0;\n" + 2271" right: 0;\n" + 2272" bottom: auto;\n" + 2273" left: auto; }\n" + 2274" body.swal2-toast-shown > .swal2-container.swal2-top-start, body.swal2-toast-shown > .swal2-container.swal2-top-left {\n" + 2275" top: 0;\n" + 2276" right: auto;\n" + 2277" bottom: auto;\n" + 2278" left: 0; }\n" + 2279" body.swal2-toast-shown > .swal2-container.swal2-center-start, body.swal2-toast-shown > .swal2-container.swal2-center-left {\n" + 2280" top: 50%;\n" + 2281" right: auto;\n" + 2282" bottom: auto;\n" + 2283" left: 0;\n" + 2284" -webkit-transform: translateY(-50%);\n" + 2285" transform: translateY(-50%); }\n" + 2286" body.swal2-toast-shown > .swal2-container.swal2-center {\n" + 2287" top: 50%;\n" + 2288" right: auto;\n" + 2289" bottom: auto;\n" + 2290" left: 50%;\n" + 2291" -webkit-transform: translate(-50%, -50%);\n" + 2292" transform: translate(-50%, -50%); }\n" + 2293" body.swal2-toast-shown > .swal2-container.swal2-center-end, body.swal2-toast-shown > .swal2-container.swal2-center-right {\n" + 2294" top: 50%;\n" + 2295" right: 0;\n" + 2296" bottom: auto;\n" + 2297" left: auto;\n" + 2298" -webkit-transform: translateY(-50%);\n" + 2299" transform: translateY(-50%); }\n" + 2300" body.swal2-toast-shown > .swal2-container.swal2-bottom-start, body.swal2-toast-shown > .swal2-container.swal2-bottom-left {\n" + 2301" top: auto;\n" + 2302" right: auto;\n" + 2303" bottom: 0;\n" + 2304" left: 0; }\n" + 2305" body.swal2-toast-shown > .swal2-container.swal2-bottom {\n" + 2306" top: auto;\n" + 2307" right: auto;\n" + 2308" bottom: 0;\n" + 2309" left: 50%;\n" + 2310" -webkit-transform: translateX(-50%);\n" + 2311" transform: translateX(-50%); }\n" + 2312" body.swal2-toast-shown > .swal2-container.swal2-bottom-end, body.swal2-toast-shown > .swal2-container.swal2-bottom-right {\n" + 2313" top: auto;\n" + 2314" right: 0;\n" + 2315" bottom: 0;\n" + 2316" left: auto; }\n" + 2317"\n" + 2318".swal2-popup.swal2-toast {\n" + 2319" flex-direction: row;\n" + 2320" align-items: center;\n" + 2321" width: auto;\n" + 2322" padding: 0.625em;\n" + 2323" box-shadow: 0 0 0.625em #d9d9d9;\n" + 2324" overflow-y: hidden; }\n" + 2325" .swal2-popup.swal2-toast .swal2-header {\n" + 2326" flex-direction: row; }\n" + 2327" .swal2-popup.swal2-toast .swal2-title {\n" + 2328" justify-content: flex-start;\n" + 2329" margin: 0 .6em;\n" + 2330" font-size: 1em; }\n" + 2331" .swal2-popup.swal2-toast .swal2-close {\n" + 2332" position: initial; }\n" + 2333" .swal2-popup.swal2-toast .swal2-content {\n" + 2334" justify-content: flex-start;\n" + 2335" font-size: 1em; }\n" + 2336" .swal2-popup.swal2-toast .swal2-icon {\n" + 2337" width: 2em;\n" + 2338" min-width: 2em;\n" + 2339" height: 2em;\n" + 2340" margin: 0; }\n" + 2341" .swal2-popup.swal2-toast .swal2-icon-text {\n" + 2342" font-size: 2em;\n" + 2343" font-weight: bold;\n" + 2344" line-height: 1em; }\n" + 2345" .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n" + 2346" width: 2em;\n" + 2347" height: 2em; }\n" + 2348" .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n" + 2349" top: .875em;\n" + 2350" width: 1.375em; }\n" + 2351" .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n" + 2352" left: .3125em; }\n" + 2353" .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n" + 2354" right: .3125em; }\n" + 2355" .swal2-popup.swal2-toast .swal2-actions {\n" + 2356" height: auto;\n" + 2357" margin: 0 .3125em; }\n" + 2358" .swal2-popup.swal2-toast .swal2-styled {\n" + 2359" margin: 0 .3125em;\n" + 2360" padding: .3125em .625em;\n" + 2361" font-size: 1em; }\n" + 2362" .swal2-popup.swal2-toast .swal2-styled:focus {\n" + 2363" box-shadow: 0 0 0 0.0625em #fff, 0 0 0 0.125em rgba(50, 100, 150, 0.4); }\n" + 2364" .swal2-popup.swal2-toast .swal2-success {\n" + 2365" border-color: #a5dc86; }\n" + 2366" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n" + 2367" position: absolute;\n" + 2368" width: 2em;\n" + 2369" height: 2.8125em;\n" + 2370" -webkit-transform: rotate(45deg);\n" + 2371" transform: rotate(45deg);\n" + 2372" border-radius: 50%; }\n" + 2373" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n" + 2374" top: -.25em;\n" + 2375" left: -.9375em;\n" + 2376" -webkit-transform: rotate(-45deg);\n" + 2377" transform: rotate(-45deg);\n" + 2378" -webkit-transform-origin: 2em 2em;\n" + 2379" transform-origin: 2em 2em;\n" + 2380" border-radius: 4em 0 0 4em; }\n" + 2381" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n" + 2382" top: -.25em;\n" + 2383" left: .9375em;\n" + 2384" -webkit-transform-origin: 0 2em;\n" + 2385" transform-origin: 0 2em;\n" + 2386" border-radius: 0 4em 4em 0; }\n" + 2387" .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n" + 2388" width: 2em;\n" + 2389" height: 2em; }\n" + 2390" .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n" + 2391" top: 0;\n" + 2392" left: .4375em;\n" + 2393" width: .4375em;\n" + 2394" height: 2.6875em; }\n" + 2395" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n" + 2396" height: .3125em; }\n" + 2397" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n" + 2398" top: 1.125em;\n" + 2399" left: .1875em;\n" + 2400" width: .75em; }\n" + 2401" .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n" + 2402" top: .9375em;\n" + 2403" right: .1875em;\n" + 2404" width: 1.375em; }\n" + 2405" .swal2-popup.swal2-toast.swal2-show {\n" + 2406" -webkit-animation: showSweetToast .5s;\n" + 2407" animation: showSweetToast .5s; }\n" + 2408" .swal2-popup.swal2-toast.swal2-hide {\n" + 2409" -webkit-animation: hideSweetToast .2s forwards;\n" + 2410" animation: hideSweetToast .2s forwards; }\n" + 2411" .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip {\n" + 2412" -webkit-animation: animate-toast-success-tip .75s;\n" + 2413" animation: animate-toast-success-tip .75s; }\n" + 2414" .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long {\n" + 2415" -webkit-animation: animate-toast-success-long .75s;\n" + 2416" animation: animate-toast-success-long .75s; }\n" + 2417"\n" +
2418"@-webkit-keyframes showSweetToast {\n" + 2419" 0% {\n" + 2420" -webkit-transform: translateY(-0.625em) rotateZ(2deg);\n" + 2421" transform: translateY(-0.625em) rotateZ(2deg);\n" + 2422" opacity: 0; }\n" + 2423" 33% {\n" + 2424" -webkit-transform: translateY(0) rotateZ(-2deg);\n" + 2425" transform: translateY(0) rotateZ(-2deg);\n" + 2426" opacity: .5; }\n" + 2427" 66% {\n" + 2428" -webkit-transform: translateY(0.3125em) rotateZ(2deg);\n" + 2429" transform: translateY(0.3125em) rotateZ(2deg);\n" + 2430" opacity: .7; }\n" + 2431" 100% {\n" + 2432" -webkit-transform: translateY(0) rotateZ(0);\n" + 2433" transform: translateY(0) rotateZ(0);\n" + 2434" opacity: 1; } }\n" + 2435"\n" + 2436"@keyframes showSweetToast {\n" + 2437" 0% {\n" + 2438" -webkit-transform: translateY(-0.625em) rotateZ(2deg);\n" + 2439" transform: translateY(-0.625em) rotateZ(2deg);\n" + 2440" opacity: 0; }\n" + 2441" 33% {\n" + 2442" -webkit-transform: translateY(0) rotateZ(-2deg);\n" + 2443" transform: translateY(0) rotateZ(-2deg);\n" + 2444" opacity: .5; }\n" + 2445" 66% {\n" + 2446" -webkit-transform: translateY(0.3125em) rotateZ(2deg);\n" + 2447" transform: translateY(0.3125em) rotateZ(2deg);\n" + 2448" opacity: .7; }\n" + 2449" 100% {\n" + 2450" -webkit-transform: translateY(0) rotateZ(0);\n" + 2451" transform: translateY(0) rotateZ(0);\n" + 2452" opacity: 1; } }\n" + 2453"\n" + 2454"@-webkit-keyframes hideSweetToast {\n" + 2455" 0% {\n" + 2456" opacity: 1; }\n" + 2457" 33% {\n" + 2458" opacity: .5; }\n" + 2459" 100% {\n" + 2460" -webkit-transform: rotateZ(1deg);\n" + 2461" transform: rotateZ(1deg);\n" + 2462" opacity: 0; } }\n" + 2463"\n" + 2464"@keyframes hideSweetToast {\n" + 2465" 0% {\n" + 2466" opacity: 1; }\n" + 2467" 33% {\n" + 2468" opacity: .5; }\n" + 2469" 100% {\n" + 2470" -webkit-transform: rotateZ(1deg);\n" + 2471" transform: rotateZ(1deg);\n" + 2472" opacity: 0; } }\n" + 2473"\n" + 2474"@-webkit-keyframes animate-toast-success-tip {\n" + 2475" 0% {\n" + 2476" top: .5625em;\n" + 2477" left: .0625em;\n" + 2478" width: 0; }\n" + 2479" 54% {\n" + 2480" top: .125em;\n" + 2481" left: .125em;\n" + 2482" width: 0; }\n" + 2483" 70% {\n" + 2484" top: .625em;\n" + 2485" left: -.25em;\n" + 2486" width: 1.625em; }\n" + 2487" 84% {\n" + 2488" top: 1.0625em;\n" + 2489" left: .75em;\n" + 2490" width: .5em; }\n" + 2491" 100% {\n" + 2492" top: 1.125em;\n" + 2493" left: .1875em;\n" + 2494" width: .75em; } }\n" + 2495"\n" + 2496"@keyframes animate-toast-success-tip {\n" + 2497" 0% {\n" + 2498" top: .5625em;\n" + 2499" left: .0625em;\n" + 2500" width: 0; }\n" + 2501" 54% {\n" + 2502" top: .125em;\n" + 2503" left: .125em;\n" + 2504" width: 0; }\n" + 2505" 70% {\n" + 2506" top: .625em;\n" + 2507" left: -.25em;\n" + 2508" width: 1.625em; }\n" + 2509" 84% {\n" + 2510" top: 1.0625em;\n" + 2511" left: .75em;\n" + 2512" width: .5em; }\n" + 2513" 100% {\n" + 2514" top: 1.125em;\n" + 2515" left: .1875em;\n" + 2516" width: .75em; } }\n" + 2517"\n" + 2518"@-webkit-keyframes animate-toast-success-long {\n" + 2519" 0% {\n" + 2520" top: 1.625em;\n" + 2521" right: 1.375em;\n" + 2522" width: 0; }\n" + 2523" 65% {\n" + 2524" top: 1.25em;\n" + 2525" right: .9375em;\n" + 2526" width: 0; }\n" + 2527" 84% {\n" + 2528" top: .9375em;\n" + 2529" right: 0;\n" + 2530" width: 1.125em; }\n" + 2531" 100% {\n" + 2532" top: .9375em;\n" + 2533" right: .1875em;\n" + 2534" width: 1.375em; } }\n" + 2535"\n" + 2536"@keyframes animate-toast-success-long {\n" + 2537" 0% {\n" + 2538" top: 1.625em;\n" + 2539" right: 1.375em;\n" + 2540" width: 0; }\n" + 2541" 65% {\n" + 2542" top: 1.25em;\n" + 2543" right: .9375em;\n" + 2544" width: 0; }\n" + 2545" 84% {\n" + 2546" top: .9375em;\n" + 2547" right: 0;\n" + 2548" width: 1.125em; }\n" + 2549" 100% {\n" + 2550" top: .9375em;\n" + 2551" right: .1875em;\n" + 2552" width: 1.375em; } }\n" + 2553"\n" + 2554"html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown),\n" + 2555"body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n" + 2556" height: auto;\n" + 2557" overflow-y: hidden; }\n" + 2558"\n" + 2559"body.swal2-no-backdrop .swal2-shown {\n" + 2560" top: auto;\n" + 2561" right: auto;\n" + 2562" bottom: auto;\n" + 2563" left: auto;\n" + 2564" background-color: transparent; }\n" + 2565" body.swal2-no-backdrop .swal2-shown > .swal2-modal {\n" + 2566" box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n" + 2567" body.swal2-no-backdrop .swal2-shown.swal2-top {\n" + 2568" top: 0;\n" + 2569" left: 50%;\n" + 2570" -webkit-transform: translateX(-50%);\n" + 2571" transform: translateX(-50%); }\n" + 2572" body.swal2-no-backdrop .swal2-shown.swal2-top-start, body.swal2-no-backdrop .swal2-shown.swal2-top-left {\n" + 2573" top: 0;\n" + 2574" left: 0; }\n" + 2575" body.swal2-no-backdrop .swal2-shown.swal2-top-end, body.swal2-no-backdrop .swal2-shown.swal2-top-right {\n" + 2576" top: 0;\n" + 2577" right: 0; }\n" + 2578" body.swal2-no-backdrop .swal2-shown.swal2-center {\n" + 2579" top: 50%;\n" + 2580" left: 50%;\n" + 2581" -webkit-transform: translate(-50%, -50%);\n" + 2582" transform: translate(-50%, -50%); }\n" + 2583" body.swal2-no-backdrop .swal2-shown.swal2-center-start, body.swal2-no-backdrop .swal2-shown.swal2-center-left {\n" + 2584" top: 50%;\n" + 2585" left: 0;\n" + 2586" -webkit-transform: translateY(-50%);\n" + 2587" transform: translateY(-50%); }\n" + 2588" body.swal2-no-backdrop .swal2-shown.swal2-center-end, body.swal2-no-backdrop .swal2-shown.swal2-center-right {\n" + 2589" top: 50%;\n" + 2590" right: 0;\n" + 2591" -webkit-transform: translateY(-50%);\n" + 2592" transform: translateY(-50%); }\n" + 2593" body.swal2-no-backdrop .swal2-shown.swal2-bottom {\n" + 2594" bottom: 0;\n" + 2595" left: 50%;\n" + 2596" -webkit-transform: translateX(-50%);\n" + 2597" transform: translateX(-50%); }\n" + 2598" body.swal2-no-backdrop .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop .swal2-shown.swal2-bottom-left {\n" + 2599" bottom: 0;\n" + 2600" left: 0; }\n" + 2601" body.swal2-no-backdrop .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop .swal2-shown.swal2-bottom-right {\n" + 2602" right: 0;\n" + 2603" bottom: 0; }\n" + 2604"\n" + 2605".swal2-container {\n" + 2606" display: flex;\n" + 2607" position: fixed;\n" + 2608" top: 0;\n" + 2609" right: 0;\n" + 2610" bottom: 0;\n" + 2611" left: 0;\n" + 2612" flex-direction: row;\n" +
2613" align-items: center;\n" + 2614" justify-content: center;\n" + 2615" padding: 10px;\n" + 2616" background-color: transparent;\n" + 2617" z-index: 1060;\n" + 2618" overflow-x: hidden;\n" + 2619" -webkit-overflow-scrolling: touch; }\n" + 2620" .swal2-container.swal2-top {\n" + 2621" align-items: flex-start; }\n" + 2622" .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n" + 2623" align-items: flex-start;\n" + 2624" justify-content: flex-start; }\n" + 2625" .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n" + 2626" align-items: flex-start;\n" + 2627" justify-content: flex-end; }\n" + 2628" .swal2-container.swal2-center {\n" + 2629" align-items: center; }\n" + 2630" .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n" + 2631" align-items: center;\n" + 2632" justify-content: flex-start; }\n" + 2633" .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n" + 2634" align-items: center;\n" + 2635" justify-content: flex-end; }\n" + 2636" .swal2-container.swal2-bottom {\n" + 2637" align-items: flex-end; }\n" + 2638" .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n" + 2639" align-items: flex-end;\n" + 2640" justify-content: flex-start; }\n" + 2641" .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n" + 2642" align-items: flex-end;\n" + 2643" justify-content: flex-end; }\n" + 2644" .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n" + 2645" display: flex !important;\n" + 2646" flex: 1;\n" + 2647" align-self: stretch;\n" + 2648" justify-content: center; }\n" + 2649" .swal2-container.swal2-grow-row > .swal2-modal {\n" + 2650" display: flex !important;\n" + 2651" flex: 1;\n" + 2652" align-content: center;\n" + 2653" justify-content: center; }\n" + 2654" .swal2-container.swal2-grow-column {\n" + 2655" flex: 1;\n" + 2656" flex-direction: column; }\n" + 2657" .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n" + 2658" align-items: center; }\n" + 2659" .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n" + 2660" align-items: flex-start; }\n" + 2661" .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n" + 2662" align-items: flex-end; }\n" + 2663" .swal2-container.swal2-grow-column > .swal2-modal {\n" + 2664" display: flex !important;\n" + 2665" flex: 1;\n" + 2666" align-content: center;\n" + 2667" justify-content: center; }\n" + 2668" .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right) > .swal2-modal {\n" + 2669" margin: auto; }\n" + 2670" @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n" + 2671" .swal2-container .swal2-modal {\n" + 2672" margin: 0 !important; } }\n" + 2673" .swal2-container.swal2-fade {\n" + 2674" transition: background-color .1s; }\n" + 2675" .swal2-container.swal2-shown {\n" + 2676" background-color: rgba(0, 0, 0, 0.4); }\n" + 2677"\n" + 2678".swal2-popup {\n" + 2679" display: none;\n" + 2680" position: relative;\n" + 2681" flex-direction: column;\n" + 2682" justify-content: center;\n" + 2683" width: 32em;\n" + 2684" max-width: 100%;\n" + 2685" padding: 1.25em;\n" + 2686" border-radius: 0.3125em;\n" + 2687" background: #fff;\n" + 2688" font-family: inherit;\n" + 2689" font-size: 1rem;\n" + 2690" box-sizing: border-box; }\n" + 2691" .swal2-popup:focus {\n" + 2692" outline: none; }\n" + 2693" .swal2-popup.swal2-loading {\n" + 2694" overflow-y: hidden; }\n" + 2695" .swal2-popup .swal2-header {\n" + 2696" display: flex;\n" + 2697" flex-direction: column;\n" + 2698" align-items: center; }\n" + 2699" .swal2-popup .swal2-title {\n" + 2700" display: block;\n" + 2701" position: relative;\n" + 2702" max-width: 100%;\n" + 2703" margin: 0 0 0.4em;\n" + 2704" padding: 0;\n" + 2705" color: #595959;\n" + 2706" font-size: 1.875em;\n" + 2707" font-weight: 600;\n" + 2708" text-align: center;\n" + 2709" text-transform: none;\n" + 2710" word-wrap: break-word; }\n" + 2711" .swal2-popup .swal2-actions {\n" + 2712" align-items: center;\n" + 2713" justify-content: center;\n" + 2714" margin: 1.25em auto 0; }\n" + 2715" .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n" + 2716" opacity: .4; }\n" + 2717" .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n" + 2718" background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n" + 2719" .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n" + 2720" background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n" + 2721" .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-confirm {\n" + 2722" width: 2.5em;
2722\n" + 2723" height: 2.5em;\n" + 2724" margin: .46875em;\n" + 2725" padding: 0;\n" + 2726" border: .25em solid transparent;\n" + 2727" border-radius: 100%;\n" + 2728" border-color: transparent;\n" + 2729" background-color: transparent !important;\n" + 2730" color: transparent;\n" + 2731" cursor: default;\n" + 2732" box-sizing: border-box;\n" + 2733" -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n" + 2734" animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n" + 2735" -webkit-user-select: none;\n" + 2736" -moz-user-select: none;\n" + 2737" -ms-user-select: none;\n" + 2738" user-select: none; }\n" + 2739" .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-cancel {\n" + 2740" margin-right: 30px;\n" + 2741" margin-left: 30px; }\n" + 2742" .swal2-popup .swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after {\n" + 2743" display: inline-block;\n" + 2744" width: 15px;\n" + 2745" height: 15px;\n" + 2746" margin-left: 5px;\n" + 2747" border: 3px solid #999999;\n" + 2748" border-radius: 50%;\n" + 2749" border-right-color: transparent;\n" + 2750" box-shadow: 1px 1px 1px #fff;\n" + 2751" content: '';\n" + 2752" -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n" + 2753" animation: swal2-rotate-loading 1.5s linear 0s infinite normal; }\n" + 2754" .swal2-popup .swal2-styled {\n" + 2755" margin: 0 .3125em;\n" + 2756" padding: .625em 2em;\n" + 2757" font-weight: 500;\n" + 2758" box-shadow: none; }\n" + 2759" .swal2-popup .swal2-styled:not([disabled]) {\n" + 2760" cursor: pointer; }\n" + 2761" .swal2-popup .swal2-styled.swal2-confirm {\n" + 2762" border: 0;\n" + 2763" border-radius: 0.25em;\n" + 2764" background: initial;\n" + 2765" background-color: #3085d6;\n" + 2766" color: #fff;\n" + 2767" font-size: 1.0625em; }\n" + 2768" .swal2-popup .swal2-styled.swal2-cancel {\n" + 2769" border: 0;\n" + 2770" border-radius: 0.25em;\n" + 2771" background: initial;\n" + 2772" background-color: #aaa;\n" + 2773" color: #fff;\n" + 2774" font-size: 1.0625em; }\n" + 2775" .swal2-popup .swal2-styled:focus {\n" + 2776" outline: none;\n" + 2777" box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); }\n" + 2778" .swal2-popup .swal2-styled::-moz-focus-inner {\n" + 2779" border: 0; }\n" + 2780" .swal2-popup .swal2-footer {\n" + 2781" justify-content: center;\n" + 2782" margin: 1.25em 0 0;\n" + 2783" padding-top: 1em;\n" + 2784" border-top: 1px solid #eee;\n" + 2785" color: #545454;\n" + 2786" font-size: 1em; }\n" + 2787" .swal2-popup .swal2-image {\n" + 2788" max-width: 100%;\n" + 2789" margin: 1.25em auto; }\n" + 2790" .swal2-popup .swal2-close {\n" + 2791" position: absolute;\n" + 2792" top: 0;\n" + 2793" right: 0;\n" + 2794" justify-content: center;\n" + 2795" width: 1.2em;\n" + 2796" min-width: 1.2em;\n" + 2797" height: 1.2em;\n" + 2798" margin: 0;\n" + 2799" padding: 0;\n" + 2800" transition: color 0.1s ease-out;\n" + 2801" border: none;\n" + 2802" border-radius: 0;\n" + 2803" background: transparent;\n" + 2804" color: #cccccc;\n" + 2805" font-family: serif;\n" + 2806" font-size: calc(2.5em - 0.25em);\n" + 2807" line-height: 1.2em;\n" + 2808" cursor: pointer; }\n" + 2809" .swal2-popup .swal2-close:hover {\n" + 2810" -webkit-transform: none;\n" + 2811" transform: none;\n" + 2812" color: #f27474; }\n" + 2813" .swal2-popup > .swal2-input,\n" + 2814" .swal2-popup > .swal2-file,\n" + 2815" .swal2-popup > .swal2-textarea,\n" + 2816" .swal2-popup > .swal2-select,\n" + 2817" .swal2-popup > .swal2-radio,\n" + 2818" .swal2-popup > .swal2-checkbox {\n" + 2819" display: none; }\n" + 2820" .swal2-popup .swal2-content {\n" + 2821" justify-content: center;\n" + 2822" margin: 0;\n" + 2823" padding: 0;\n" + 2824" color: #545454;\n" + 2825" font-size: 1.125em;\n" + 2826" font-weight: 300;\n" + 2827" line-height: normal;\n" + 2828" word-wrap: break-word; }\n" + 2829" .swal2-popup #swal2-content {\n" + 2830" text-align: center; }\n" + 2831" .swal2-popup .swal2-input,\n" + 2832" .swal2-popup .swal2-file,\n" + 2833" .swal2-popup .swal2-textarea,\n" + 2834" .swal2-popup .swal2-select,\n" + 2835" .swal2-popup .swal2-radio,\n" + 2836" .swal2-popup .swal2-checkbox {\n" + 2837" margin: 1em auto; }\n" + 2838" .swal2-popup .swal2-input,\n" + 2839" .swal2-popup .swal2-file,\n" + 2840" .swal2-popup .swal2-textarea {\n" + 2841" width: 100%;\n" + 2842" transition: border-color .3s, box-shadow .3s;\n" + 2843" border: 1px solid #d9d9d9;\n" + 2844" border-radius: 0.1875em;\n" + 2845" font-size: 1.125em;\n" + 2846" box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n" + 2847" box-sizing: border-box; }\n" + 2848" .swal2-popup .swal2-input.swal2-inputerror,\n" + 2849" .swal2-popup .swal2-file.swal2-inputerror,\n" + 2850" .swal2-popup .swal2-textarea.swal2-inputerror {\n" + 2851" border-color: #f27474 !important;\n" + 2852" box-shadow: 0 0 2px #f27474 !important; }\n" + 2853" .swal2-popup .swal2-input:focus,\n" + 2854" .swal2-popup .swal2-file:focus,\n" + 2855" .swal2-popup .swal2-textarea:focus {\n" + 2856" border: 1px solid #b4dbed;\n" + 2857" outline: none;\n" + 2858" box-shadow: 0 0 3px #c4e6f5; }\n" + 2859" .swal2-popup .swal2-input::-webkit-input-placeholder,\n" + 2860" .swal2-popup .swal2-file::-webkit-input-placeholder,\n" + 2861" .swal2-popup .swal2-textarea::-webkit-input-placeholder {\n" + 2862" color: #cccccc; }\n" + 2863" .swal2-popup .swal2-input:-ms-input-placeholder,\n" + 2864" .swal2-popup .swal2-file:-ms-input-placeholder,\n" + 2865" .swal2-popup .swal2-textarea:-ms-input-placeholder {\n" + 2866" color: #cccccc; }\n" + 2867" .swal2-popup .swal2-input::-ms-input-placeholder,\n" + 2868" .swal2-popup .swal2-file::-ms-input-placeholder,\n" + 2869" .swal2-popup .swal2-textarea::-ms-input-placeholder {\n" + 2870" color: #cccccc; }\n" + 2871" .swal2-popup .swal2-input::placeholder,\n" + 2872" .swal2-popup .swal2-file::placeholder,\n" + 2873" .swal2-popup .swal2-textarea::placeholder {\n" + 2874" color: #cccccc; }\n" + 2875" .swal2-popup .swal2-range input {\n" + 2876" width: 80%; }\n" + 2877" .swal2-popup .swal2-range output {\n" + 2878" width: 20%;\n" + 2879" font-weight: 600;\n" + 2880" text-align: center; }\n" + 2881" .swal2-popup .swal2-range input,\n" + 2882" .swal2-popup .swal2-range output {\n" + 2883" height: 2.625em;\n" + 2884" margin: 1em auto;\n" + 2885" padding: 0;\n" + 2886" font-size: 1.125em;\n" + 2887" line-height: 2.625em; }\n" + 2888" .swal2-popup .swal2-input {\n" + 2889" height: 2.625em;\n" + 2890" padding: 0.75em; }\n" + 2891" .swal2-popup .swal2-input[type='number'] {\n" + 2892" max-width: 10em; }\n" + 2893" .swal2-popup .swal2-file {\n" + 2894" font-size: 1.125em; }\n" + 2895" .swal2-popup .swal2-textarea {\n" + 2896" height: 6.75em;\n" + 2897" padding: 0.75em; }\n" + 2898" .swal2-popup .swal2-select {\n" + 2899" min-width: 50%;\n" + 2900" max-width: 100%;\n" + 2901" padding: .375em .625em;\n" + 2902" color: #545454;\n" + 2903" font-size: 1.125em; }\n" + 2904" .swal2-popup .swal2-radio,\n" + 2905" .swal2-popup .swal2-checkbox {\n" + 2906" align-items: center;\n" + 2907" justify-content: center; }\n" + 2908" .swal2-popup .swal2-radio label,\n" + 2909" .swal2-popup .swal2-checkbox label {\n" + 2910" margin: 0 .6em;\n" + 2911" font-size: 1.125em; }\n" + 2912" .swal2-popup .swal2-radio input,\n" + 2913" .swal2-popup .swal2-checkbox input {\n" + 2914" margin: 0 .4em; }\n" + 2915" .swal2-popup .swal2-validationerror {\n" + 2916" display: none;\n" + 2917" align-items: center;\n" + 2918" justify-content: center;\n" + 2919" padding: 0.625em;\n" + 2920" background: #f0f0f0;\n" + 2921" color: #666666;\n" + 2922" font-size: 1em;\n" + 2923" font-weight: 300;\n" + 2924" overflow: hidden; }\n" + 2925" .swal2-popup .swal2-validationerror::before {\n" + 2926" display: inline-block;\n" + 2927" width: 1.5em;\n" + 2928" height: 1.5em;\n" + 2929" margin: 0 .625em;\n" + 2930" border-radius: 50%;\n" + 2931" background-color: #f27474;\n" + 2932" color: #fff;\n" + 2933" font-weight: 600;\n" + 2934" line-height: 1.5em;\n" + 2935" text-align: center;\n" + 2936" content: '!';\n" + 2937" zoom: normal; }\n" + 2938"\n" + 2939"@supports (-ms-accelerator: true) {\n" + 2940" .swal2-range input {\n" + 2941" width: 100% !important; }\n" + 2942" .swal2-range output {\n" + 2943" display: none; } }\n" + 2944"\n" + 2945"@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n" + 2946" .swal2-range input {\n" + 2947" width: 100% !important; }\n" + 2948" .swal2-range output {\n" + 2949" display: none; } }\n" + 2950"\n" + 2951".swal2-icon {\n" + 2952" position: relative;\n" + 2953" justify-content: center;\n" + 2954" width: 5em;\n" + 2955" height: 5em;
2955\n" + 2956" margin: 1.25em auto 1.875em;\n" + 2957" border: .25em solid transparent;\n" + 2958" border-radius: 50%;\n" + 2959" line-height: 5em;\n" + 2960" cursor: default;\n" + 2961" box-sizing: content-box;\n" + 2962" -webkit-user-select: none;\n" + 2963" -moz-user-select: none;\n" + 2964" -ms-user-select: none;\n" + 2965" user-select: none;\n" + 2966" zoom: normal; }\n" + 2967" .swal2-icon-text {\n" + 2968" font-size: 3.75em; }\n" + 2969" .swal2-icon.swal2-error {\n" + 2970" border-color: #f27474; }\n" + 2971" .swal2-icon.swal2-error .swal2-x-mark {\n" + 2972" position: relative;\n" + 2973" flex-grow: 1; }\n" + 2974" .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n" + 2975" display: block;\n" + 2976" position: absolute;\n" + 2977" top: 2.3125em;\n" + 2978" width: 2.9375em;\n" + 2979" height: .3125em;\n" + 2980" border-radius: .125em;\n" + 2981" background-color: #f27474; }\n" + 2982" .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n" + 2983" left: 1.0625em;\n" + 2984" -webkit-transform: rotate(45deg);\n" + 2985" transform: rotate(45deg); }\n" + 2986" .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n" + 2987" right: 1em;\n" + 2988" -webkit-transform: rotate(-45deg);\n" + 2989" transform: rotate(-45deg); }\n" + 2990" .swal2-icon.swal2-warning {\n" + 2991" border-color: #facea8;\n" + 2992" color: #f8bb86; }\n" + 2993" .swal2-icon.swal2-info {\n" + 2994" border-color: #9de0f6;\n" + 2995" color: #3fc3ee; }\n" + 2996" .swal2-icon.swal2-question {\n" + 2997" border-color: #c9dae1;\n" + 2998" color: #87adbd; }\n" + 2999" .swal2-icon.swal2-success {\n" + 3000" border-color: #a5dc86; }\n" + 3001" .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n" + 3002" position: absolute;\n" + 3003" width: 3.75em;\n" + 3004" height: 7.5em;\n" + 3005" -webkit-transform: rotate(45deg);\n" + 3006" transform: rotate(45deg);\n" + 3007" border-radius: 50%; }\n" + 3008" .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n" + 3009" top: -.4375em;\n" + 3010" left: -2.0635em;\n" + 3011" -webkit-transform: rotate(-45deg);\n" + 3012" transform: rotate(-45deg);\n" + 3013" -webkit-transform-origin: 3.75em 3.75em;\n" + 3014" transform-origin: 3.75em 3.75em;\n" + 3015" border-radius: 7.5em 0 0 7.5em; }\n" + 3016" .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n" + 3017" top: -.6875em;\n" + 3018" left: 1.875em;\n" + 3019" -webkit-transform: rotate(-45deg);\n" + 3020" transform: rotate(-45deg);\n" + 3021" -webkit-transform-origin: 0 3.75em;\n" + 3022" transform-origin: 0 3.75em;\n" + 3023" border-radius: 0 7.5em 7.5em 0; }\n" + 3024" .swal2-icon.swal2-success .swal2-success-ring {\n" + 3025" position: absolute;\n" + 3026" top: -.25em;\n" + 3027" left: -.25em;\n" + 3028" width: 100%;\n" + 3029" height: 100%;\n" +
3030" border: 0.25em solid rgba(165, 220, 134, 0.3);\n" + 3031" border-radius: 50%;\n" + 3032" z-index: 2;\n" + 3033" box-sizing: content-box; }\n" + 3034" .swal2-icon.swal2-success .swal2-success-fix {\n" + 3035" position: absolute;\n" + 3036" top: .5em;\n" + 3037" left: 1.625em;\n" + 3038" width: .4375em;\n" + 3039" height: 5.625em;\n" + 3040" -webkit-transform: rotate(-45deg);\n" + 3041" transform: rotate(-45deg);\n" + 3042" z-index: 1; }\n" + 3043" .swal2-icon.swal2-success [class^='swal2-success-line'] {\n" + 3044" display: block;\n" + 3045" position: absolute;\n" + 3046" height: .3125em;\n" + 3047" border-radius: .125em;\n" + 3048" background-color: #a5dc86;\n" + 3049" z-index: 2; }\n" + 3050" .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n" + 3051" top: 2.875em;\n" + 3052" left: .875em;\n" + 3053" width: 1.5625em;\n" + 3054" -webkit-transform: rotate(45deg);\n" + 3055" transform: rotate(45deg); }\n" + 3056" .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n" + 3057" top: 2.375em;\n" + 3058" right: .5em;\n" + 3059" width: 2.9375em;\n" + 3060" -webkit-transform: rotate(-45deg);\n" + 3061" transform: rotate(-45deg); }\n" + 3062"\n" + 3063".swal2-progresssteps {\n" + 3064" align-items: center;\n" + 3065" margin: 0 0 1.25em;\n" + 3066" padding: 0;\n" + 3067" font-weight: 600; }\n" + 3068" .swal2-progresssteps li {\n" + 3069" display: inline-block;\n" + 3070" position: relative; }\n" + 3071" .swal2-progresssteps .swal2-progresscircle {\n" + 3072" width: 2em;\n" + 3073" height: 2em;\n" + 3074" border-radius: 2em;\n" + 3075" background: #3085d6;\n" + 3076" color: #fff;\n" + 3077" line-height: 2em;\n" + 3078" text-align: center;\n" + 3079" z-index: 20; }\n" + 3080" .swal2-progresssteps .swal2-progresscircle:first-child {\n" + 3081" margin-left: 0; }\n" + 3082" .swal2-progresssteps .swal2-progresscircle:last-child {\n" + 3083" margin-right: 0; }\n" + 3084" .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {\n" + 3085" background: #3085d6; }\n" + 3086" .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {\n" + 3087" background: #add8e6; }\n" + 3088" .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {\n" + 3089" background: #add8e6; }\n" + 3090" .swal2-progresssteps .swal2-progressline {\n" + 3091" width: 2.5em;\n" + 3092" height: .4em;\n" + 3093" margin: 0 -1px;\n" + 3094" background: #3085d6;\n" + 3095" z-index: 10; }\n" + 3096"\n" + 3097"[class^='swal2'] {\n" + 3098" -webkit-tap-highlight-color: transparent; }\n" + 3099"\n" + 3100".swal2-show {\n" + 3101" -webkit-animation: swal2-show 0.3s;\n" + 3102" animation: swal2-show 0.3s; }\n" + 3103" .swal2-show.swal2-noanimation {\n" + 3104" -webkit-animation: none;\n" + 3105" animation: none; }\n" + 3106"\n" + 3107".swal2-hide {\n" + 3108" -webkit-animation: swal2-hide 0.15s forwards;\n" + 3109" animation: swal2-hide 0.15s forwards; }\n" + 3110" .swal2-hide.swal2-noanimation {\n" + 3111" -webkit-animation: none;\n" + 3112" animation: none; }\n" + 3113"\n" + 3114"[dir='rtl'] .swal2-close {\n" + 3115" right: auto;\n" + 3116" left: 0; }\n" + 3117"\n" + 3118".swal2-animate-success-icon .swal2-success-line-tip {\n" + 3119" -webkit-animation: swal2-animate-success-line-tip 0.75s;\n" + 3120" animation: swal2-animate-success-line-tip 0.75s; }\n" + 3121"\n" + 3122".swal2-animate-success-icon .swal2-success-line-long {\n" + 3123" -webkit-animation: swal2-animate-success-line-long 0.75s;\n" + 3124" animation: swal2-animate-success-line-long 0.75s; }\n" + 3125"\n" + 3126".swal2-animate-success-icon .swal2-success-circular-line-right {\n" + 3127" -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;\n" + 3128" animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n" + 3129"\n" + 3130".swal2-animate-error-icon {\n" + 3131" -webkit-animation: swal2-animate-error-icon 0.5s;\n" + 3132" animation: swal2-animate-error-icon 0.5s; }\n" + 3133" .swal2-animate-error-icon .swal2-x-mark {\n" + 3134" -webkit-animation: swal2-animate-error-x-mark 0.5s;\n" + 3135" animation: swal2-animate-error-x-mark 0.5s; }\n" + 3136"\n" +
3137"@-webkit-keyframes swal2-rotate-loading {\n" + 3138" 0% {\n" + 3139" -webkit-transform: rotate(0deg);\n" + 3140" transform: rotate(0deg); }\n" + 3141" 100% {\n" + 3142" -webkit-transform: rotate(360deg);\n" + 3143" transform: rotate(360deg); } }\n" + 3144"\n" + 3145"@keyframes swal2-rotate-loading {\n" + 3146" 0% {\n" + 3147" -webkit-transform: rotate(0deg);\n" + 3148" transform: rotate(0deg); }\n" + 3149" 100% {\n" + 3150" -webkit-transform: rotate(360deg);\n" + 3151" transform: rotate(360deg); } }");
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.