PageSourceSearch

https://www.crazyrocket.io/assets/js/sweetalert2.js

js crazyrocket.io collected 2026-10-02 05:52:40 UTC 102,538 bytes, 1,957 lines download raw bytes

1/*!
2 * sweetalert2 v7.12.15
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 styles = "@-webkit-keyframes swal2-show {\n  0% {\n    -webkit-transform: scale(0.7);\n            transform: scale(0.7); }\n  45% {\n    -webkit-transform: scale(1.05);\n            transform: scale(1.05); }\n  80% {\n    -webkit-transform: scale(0.95);\n            transform: scale(0.95); }\n  100% {\n    -webkit-transform: scale(1);\n            transform: scale(1); } }\n\n@keyframes swal2-show {\n  0% {\n    -webkit-transform: scale(0.7);\n            transform: scale(0.7); }\n  45% {\n    -webkit-transform: scale(1.05);\n            transform: scale(1.05); }\n  80% {\n    -webkit-transform: scale(0.95);\n            transform: scale(0.95); }\n  100% {\n    -webkit-transform: scale(1);\n            transform: scale(1); } }\n\n@-webkit-keyframes swal2-hide {\n  0% {\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; }\n  100% {\n    -webkit-transform: scale(0.5);\n            transform: scale(0.5);\n    opacity: 0; } }\n\n@keyframes swal2-hide {\n  0% {\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; }\n  100% {\n    -webkit-transform: scale(0.5);\n            transform: scale(0.5);\n    opacity: 0; } }\n\n@-webkit-keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 19px;\n    left: 1px;\n    width: 0; }\n  54% {\n    top: 17px;\n    left: 2px;\n    width: 0; }\n  70% {\n    top: 35px;\n    left: -6px;\n    width: 50px; }\n  84% {\n    top: 48px;\n    left: 21px;\n    width: 17px; }\n  100% {\n    top: 45px;\n    left: 14px;\n    width: 25px; } }\n\n@keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 19px;\n    left: 1px;\n    width: 0; }\n  54% {\n    top: 17px;\n    left: 2px;\n    width: 0; }\n  70% {\n    top: 35px;\n    left: -6px;\n    width: 50px; }\n  84% {\n    top: 48px;\n    left: 21px;\n    width: 17px; }\n  100% {\n    top: 45px;\n    left: 14px;\n    width: 25px; } }\n\n@-webkit-keyframes swal2-animate-success-line-long {\n  0% {\n    top: 54px;\n    right: 46px;\n    width: 0; }\n  65% {\n    top: 54px;\n    right: 46px;\n    width: 0; }\n  84% {\n    top: 35px;\n    right: 0;\n    width: 55px; }\n  100% {\n    top: 38px;\n    right: 8px;\n    width: 47px; } }\n\n@keyframes swal2-animate-success-line-long {\n  0% {\n    top: 54px;\n    right: 46px;\n    width: 0; }\n  65% {\n    top: 54px;\n    right: 46px;\n    width: 0; }\n  84% {\n    top: 35px;\n    right: 0;\n    width: 55px; }\n  100% {\n    top: 38px;\n    right: 8px;\n    width: 47px; } }\n\n@-webkit-keyframes swal2-rotate-success-circular-line {\n  0% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  5% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  12% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); }\n  100% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); } }\n\n@keyframes swal2-rotate-success-circular-line {\n  0% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  5% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  12% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); }\n  100% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); } }\n\n@-webkit-keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 26px;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 26px;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -6px;\n    -webkit-transform: scale(1.15);\n            transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 26px;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 26px;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -6px;\n    -webkit-transform: scale(1.15);\n            transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; } }\n\n@-webkit-keyframes swal2-animate-error-icon {\n  0% {\n    -webkit-transform: rotateX(100deg);\n            transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    -webkit-transform: rotateX(0deg);\n            transform: rotateX(0deg);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-icon {\n  0% {\n    -webkit-transform: rotateX(100deg);\n            transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    -webkit-transform: rotateX(0deg);\n            transform: rotateX(0deg);\n    opacity: 1; } }\n\nbody.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast {\n  -webkit-box-orient: vertical;\n  -webkit-box-direction: normal;\n      -ms-flex-direction: column;\n          flex-direction: column;\n  -webkit-box-align: stretch;\n      -ms-flex-align: stretch;\n          align-items: stretch; }\n  body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-actions {\n    -webkit-box-flex: 1;\n        -ms-flex: 1;\n            flex: 1;\n    -ms-flex-item-align: stretch;\n        align-self: stretch;\n    -webkit-box-pack: end;\n        -ms-flex-pack: end;\n            justify-content: flex-end;\n    height: 2.2em; }\n  body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-loading {\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center; }\n  body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-input {\n    height: 2em;\n    margin: .3125em auto;\n    font-size: 1em; }\n  body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-validationerror {\n    font-size: 1em; }\n\nbody.swal2-toast-shown > .swal2-container {\n  position: fixed;\n  background-color: transparent; }\n  body.swal2-toast-shown > .swal2-container.swal2-shown {\n    background-color: transparent; }\n  body.swal2-toast-shown > .swal2-container.swal2-top {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-toast-shown > .swal2-container.swal2-top-end, body.swal2-toast-shown > .swal2-container.swal2-top-right {\n    top: 0;\n    right: 0;\n    bottom: auto;\n    left: auto; }\n  body.swal2-toast-shown > .swal2-container.swal2-top-start, body.swal2-toast-shown > .swal2-container.swal2-top-left {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 0; }\n  body.swal2-toast-shown > .swal2-container.swal2-center-start, body.swal2-toast-shown > .swal2-container.swal2-center-left {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-toast-shown > .swal2-container.swal2-center {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    -webkit-transform: translate(-50%, -50%);\n            transform: translate(-50%, -50%); }\n  body.swal2-toast-shown > .swal2-container.swal2-center-end, body.swal2-toast-shown > .swal2-container.swal2-center-right {\n    top: 50%;\n    right: 0;\n    bottom: auto;\n    left: auto;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-toast-shown > .swal2-container.swal2-bottom-start, body.swal2-toast-shown > .swal2-container.swal2-bottom-left {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 0; }\n  body.swal2-toast-shown > .swal2-container.swal2-bottom {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-toast-shown > .swal2-container.swal2-bottom-end, body.swal2-toast-shown > .swal2-container.swal2-bottom-right {\n    top: auto;\n    right: 0;\n    bottom: 0;\n    left: auto; }\n\n.swal2-popup.swal2-toast {\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n      -ms-flex-direction: row;\n          flex-direction: row;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  width: auto;\n  padding: 0.625em;\n  -webkit-box-shadow: 0 0 10px #d9d9d9;\n          box-shadow: 0 0 10px #d9d9d9;\n  overflow-y: hidden; }\n  .swal2-popup.swal2-toast .swal2-header {\n    -webkit-box-orient: horizontal;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: row;\n            flex-direction: row; }\n  .swal2-popup.swal2-toast .swal2-title {\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start;\n    margin: 0 .6em;\n    font-size: 1em; }\n  .swal2-popup.swal2-toast .swal2-close {\n    position: initial; }\n  .swal2-popup.swal2-toast .swal2-content {\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start;\n    font-size: 1em; }\n  .swal2-popup.swal2-toast .swal2-icon {\n    width: 32px;\n    min-width: 32px;\n    height: 32px;\n    margin: 0; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n      width: 32px;\n      height: 32px; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-info, .swal2-popup.swal2-toast .swal2-icon.swal2-warning, .swal2-popup.swal2-toast .swal2-icon.swal2-question {\n      font-size: 26px;\n      line-height: 32px; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      top: 14px;\n      width: 22px; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: 5px; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: 5px; }\n  .swal2-popup.swal2-toast .swal2-actions {\n    height: auto;\n    margin: 0 .3125em; }\n  .swal2-popup.swal2-toast .swal2-styled {\n    margin: 0 .3125em;\n    padding: .3125em .625em;\n    font-size: 1em; }\n    .swal2-popup.swal2-toast .swal2-styled:focus {\n      -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(50, 100, 150, 0.4);\n              box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(50, 100, 150, 0.4); }\n  .swal2-popup.swal2-toast .swal2-success {\n    border-color: #a5dc86; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 32px;\n      height: 45px;\n      -webkit-transform: rotate(45deg);\n              transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -4px;\n        left: -15px;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 32px 32px;\n                transform-origin: 32px 32px;\n        border-radius: 64px 0 0 64px; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -4px;\n        left: 15px;\n        -webkit-transform-origin: 0 32px;\n                transform-origin: 0 32px;\n        border-radius: 0 64px 64px 0; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n      width: 32px;\n      height: 32px; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n      top: 0;\n      left: 7px;\n      width: 7px;\n      height: 43px; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n      height: 5px; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 18px;\n        left: 3px;\n        width: 12px; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: 15px;\n        right: 3px;\n        width: 22px; }\n  .swal2-popup.swal2-toast.swal2-show {\n    -webkit-animation: showSweetToast .5s;\n            animation: showSweetToast .5s; }\n  .swal2-popup.swal2-toast.swal2-hide {\n    -webkit-animation: hideSweetToast .2s forwards;\n            animation: hideSweetToast .2s forwards; }\n  .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip {\n    -webkit-animation: animate-toast-success-tip .75s;\n            animation: animate-toast-success-tip .75s; }\n  .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long {\n    -webkit-animation: animate-toast-success-long .75s;\n            animation: animate-toast-success-long .75s; }\n\n@-webkit-keyframes showSweetToast {\n  0% {\n    -webkit-transform: translateY(-10px) rotateZ(2deg);\n            transform: translateY(-10px) rotateZ(2deg);\n    opacity: 0; }\n  33% {\n    -webkit-transform: translateY(0) rotateZ(-2deg);\n            transform: translateY(0) rotateZ(-2deg);\n    opacity: .5; }\n  66% {\n    -webkit-transform: translateY(5px) rotateZ(2deg);\n            transform: translateY(5px) rotateZ(2deg);\n    opacity: .7; }\n  100% {\n    -webkit-transform: translateY(0) rotateZ(0);\n            transform: translateY(0) rotateZ(0);\n    opacity: 1; } }\n\n@keyframes showSweetToast {\n  0% {\n    -webkit-transform: translateY(-10px) rotateZ(2deg);\n            transform: translateY(-10px) rotateZ(2deg);\n    opacity: 0; }\n  33% {\n    -webkit-transform: translateY(0) rotateZ(-2deg);\n            transform: translateY(0) rotateZ(-2deg);\n    opacity: .5; }\n  66% {\n    -webkit-transform: translateY(5px) rotateZ(2deg);\n            transform: translateY(5px) rotateZ(2deg);\n    opacity: .7; }\n  100% {\n    -webkit-transform: translateY(0) rotateZ(0);\n            transform: translateY(0) rotateZ(0);\n    opacity: 1; } }\n\n@-webkit-keyframes hideSweetToast {\n  0% {\n    opacity: 1; }\n  33% {\n    opacity: .5; }\n  100% {\n    -webkit-transform: rotateZ(1deg);\n            transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@keyframes hideSweetToast {\n  0% {\n    opacity: 1; }\n  33% {\n    opacity: .5; }\n  100% {\n    -webkit-transform: rotateZ(1deg);\n            transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@-webkit-keyframes animate-toast-success-tip {\n  0% {\n    top: 9px;\n    left: 1px;\n    width: 0; }\n  54% {\n    top: 2px;\n    left: 2px;\n    width: 0; }\n  70% {\n    top: 10px;\n    left: -4px;\n    width: 26px; }
11\n  84% {\n    top: 17px;\n    left: 12px;\n    width: 8px; }\n  100% {\n    top: 18px;\n    left: 3px;\n    width: 12px; } }\n\n@keyframes animate-toast-success-tip {\n  0% {\n    top: 9px;\n    left: 1px;\n    width: 0; }\n  54% {\n    top: 2px;\n    left: 2px;\n    width: 0; }\n  70% {\n    top: 10px;\n    left: -4px;\n    width: 26px; }\n  84% {\n    top: 17px;\n    left: 12px;\n    width: 8px; }\n  100% {\n    top: 18px;\n    left: 3px;\n    width: 12px; } }\n\n@-webkit-keyframes animate-toast-success-long {\n  0% {\n    top: 26px;\n    right: 22px;\n    width: 0; }\n  65% {\n    top: 20px;\n    right: 15px;\n    width: 0; }\n  84% {\n    top: 15px;\n    right: 0;\n    width: 18px; }\n  100% {\n    top: 15px;\n    right: 3px;\n    width: 22px; } }\n\n@keyframes animate-toast-success-long {\n  0% {\n    top: 26px;\n    right: 22px;\n    width: 0; }\n  65% {\n    top: 20px;\n    right: 15px;\n    width: 0; }\n  84% {\n    top: 15px;\n    right: 0;\n    width: 18px; }\n  100% {\n    top: 15px;\n    right: 3px;\n    width: 22px; } }\n\nhtml.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown),\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n  height: auto;\n  overflow-y: hidden; }\n\nbody.swal2-no-backdrop .swal2-shown {\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  background-color: transparent; }\n  body.swal2-no-backdrop .swal2-shown > .swal2-modal {\n    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);\n            box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n  body.swal2-no-backdrop .swal2-shown.swal2-top {\n    top: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-top-start, body.swal2-no-backdrop .swal2-shown.swal2-top-left {\n    top: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-top-end, body.swal2-no-backdrop .swal2-shown.swal2-top-right {\n    top: 0;\n    right: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-center {\n    top: 50%;\n    left: 50%;\n    -webkit-transform: translate(-50%, -50%);\n            transform: translate(-50%, -50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-center-start, body.swal2-no-backdrop .swal2-shown.swal2-center-left {\n    top: 50%;\n    left: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-center-end, body.swal2-no-backdrop .swal2-shown.swal2-center-right {\n    top: 50%;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom {\n    bottom: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop .swal2-shown.swal2-bottom-left {\n    bottom: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop .swal2-shown.swal2-bottom-right {\n    right: 0;\n    bottom: 0; }\n\n.swal2-container {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  -webkit-box-orient: horizontal;\n  -webkit-box-direction: normal;\n      -ms-flex-direction: row;\n          flex-direction: row;\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  padding: 10px;\n  background-color: transparent;\n  z-index: 1060;\n  overflow-x: hidden;\n  -webkit-overflow-scrolling: touch; }\n  .swal2-container.swal2-top {\n    -webkit-box-align: start;\n        -ms-flex-align: start;\n            align-items: flex-start; }\n  .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n    -webkit-box-align: start;\n        -ms-flex-align: start;\n            align-items: flex-start;\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start; }\n  .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n    -webkit-box-align: start;\n        -ms-flex-align: start;\n            align-items: flex-start;\n    -webkit-box-pack: end;\n        -ms-flex-pack: end;\n            justify-content: flex-end; }\n  .swal2-container.swal2-center {\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center; }\n  .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start; }\n  .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: end;\n        -ms-flex-pack: end;\n            justify-content: flex-end; }\n  .swal2-container.swal2-bottom {\n    -webkit-box-align: end;\n        -ms-flex-align: end;\n            align-items: flex-end; }\n  .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n    -webkit-box-align: end;\n        -ms-flex-align: end;\n            align-items: flex-end;\n    -webkit-box-pack: start;\n        -ms-flex-pack: start;\n            justify-content: flex-start; }\n  .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n    -webkit-box-align: end;\n        -ms-flex-align: end;\n            align-items: flex-end;\n    -webkit-box-pack: end;\n        -ms-flex-pack: end;\n            justify-content: flex-end; }\n  .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n    display: -webkit-box !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-box-flex: 1;\n        -ms-flex: 1;\n            flex: 1;\n    -ms-flex-item-align: stretch;\n        align-self: stretch;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center; }\n  .swal2-container.swal2-grow-row > .swal2-modal {\n    display: -webkit-box !important;\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -webkit-box-flex: 1;\n        -ms-flex: 1;\n            flex: 1;\n    -ms-flex-line-pack: center;\n        align-content: center;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center; }\n  .swal2-container.swal2-grow-column {\n    -webkit-box-flex: 1;\n        -ms-flex: 1;\n            flex: 1;\n    -webkit-box-orient: vertical;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: column;\n            flex-direction: column; }\n    .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n      -webkit-box-align: center;\n          -ms-flex-align: center;\n              align-items: center; }\n    .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      -webkit-box-align: start;\n          -ms-flex-align: start;\n              align-items: flex-start; }\n    .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      -webkit-box-align: end;\n          -ms-flex-align: end;\n              align-items: flex-end; }\n    .swal2-container.swal2-grow-column > .swal2-modal {\n      display: -webkit-box !important;\n      display: -ms-flexbox !important;\n      display: flex !important;\n      -webkit-box-flex: 1;\n          -ms-flex: 1;\n              flex: 1;\n      -ms-flex-line-pack: center;\n          align-content: center;\n      -webkit-box-pack: center;\n          -ms-flex-pack: center;\n              justify-content: center; }\n  .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not
11(.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    margin: auto; }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .swal2-container .swal2-modal {\n      margin: 0 !important; } }\n  .swal2-container.swal2-fade {\n    -webkit-transition: background-color .1s;\n    transition: background-color .1s; }\n  .swal2-container.swal2-shown {\n    background-color: rgba(0, 0, 0, 0.4); }\n\n.swal2-popup {\n  display: none;\n  position: relative;\n  -webkit-box-orient: vertical;\n  -webkit-box-direction: normal;\n      -ms-flex-direction: column;\n          flex-direction: column;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  width: 32em;\n  max-width: 100%;\n  padding: 1.25em;\n  border-radius: 0.3125em;\n  background: #fff;\n  font-family: inherit;\n  font-size: 1rem;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box; }\n  .swal2-popup:focus {\n    outline: none; }\n  .swal2-popup.swal2-loading {\n    overflow-y: hidden; }\n  .swal2-popup .swal2-header {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-box-orient: vertical;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: column;\n            flex-direction: column;\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center; }\n  .swal2-popup .swal2-title {\n    display: block;\n    position: relative;\n    max-width: 100%;\n    margin: 0 0 0.4em;\n    padding: 0;\n    color: #595959;\n    font-size: 1.875em;\n    font-weight: 600;\n    text-align: center;\n    text-transform: none;\n    word-wrap: break-word; }\n  .swal2-popup .swal2-actions {\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n    margin: 1.25em auto 0; }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n      opacity: .4; }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n      background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.1)));\n      background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n      background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.2)), to(rgba(0, 0, 0, 0.2)));\n      background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n    .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-confirm {\n      width: 2.5em;\n      height: 2.5em;\n      margin: .46875em;\n      padding: 0;\n      border: .25em solid transparent;\n      border-radius: 100%;\n      border-color: transparent;\n      background-color: transparent !important;\n      color: transparent;\n      cursor: default;\n      -webkit-box-sizing: border-box;\n              box-sizing: border-box;\n      -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n              animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n      -webkit-user-select: none;\n         -moz-user-select: none;\n          -ms-user-select: none;\n              user-select: none; }\n    .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-cancel {\n      margin-right: 30px;\n      margin-left: 30px; }\n    .swal2-popup .swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after {\n      display: inline-block;\n      width: 15px;\n      height: 15px;\n      margin-left: 5px;\n      border: 3px solid #999999;\n      border-radius: 50%;\n      border-right-color: transparent;\n      -webkit-box-shadow: 1px 1px 1px #fff;\n              box-shadow: 1px 1px 1px #fff;\n      content: '';\n      -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n              animation: swal2-rotate-loading 1.5s linear 0s infinite normal; }\n  .swal2-popup .swal2-styled {\n    margin: 0 .3125em;\n    padding: .625em 2em;\n    font-weight: 500;\n    -webkit-box-shadow: none;\n            box-shadow: none; }\n    .swal2-popup .swal2-styled:not([disabled]) {\n      cursor: pointer; }\n    .swal2-popup .swal2-styled.swal2-confirm {\n      border: 0;\n      border-radius: 0.25em;\n      background-color: #3085d6;\n      color: #fff;\n      font-size: 1.0625em; }\n    .swal2-popup .swal2-styled.swal2-cancel {\n      border: 0;\n      border-radius: 0.25em;\n      background-color: #aaa;\n      color: #fff;\n      font-size: 1.0625em; }\n    .swal2-popup .swal2-styled:focus {\n      outline: none;\n      -webkit-box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4);\n              box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); }\n    .swal2-popup .swal2-styled::-moz-focus-inner {\n      border: 0; }\n  .swal2-popup .swal2-footer {\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n    margin: 1.25em 0 0;\n    padding-top: 1em;\n    border-top: 1px solid #eee;\n    color: #545454;\n    font-size: 1em; }\n  .swal2-popup .swal2-image {\n    max-width: 100%;\n    margin: 1.25em auto; }\n  .swal2-popup .swal2-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n    width: 1.2em;\n    min-width: 1.2em;\n    height: 1.2em;\n    margin: 0;\n    padding: 0;\n    -webkit-transition: color 0.1s ease-out;\n    transition: color 0.1s ease-out;\n    border: none;\n    border-radius: 0;\n    background: transparent;\n    color: #cccccc;\n    font-family: serif;\n    font-size: calc(2.5em - 0.25em);\n    line-height: 1.2em;\n    cursor: pointer; }\n    .swal2-popup .swal2-close:hover {\n      -webkit-transform: none;\n              transform: none;\n      color: #f27474; }\n  .swal2-popup > .swal2-input,\n  .swal2-popup > .swal2-file,\n  .swal2-popup > .swal2-textarea,\n  .swal2-popup > .swal2-select,\n  .swal2-popup > .swal2-radio,\n  .swal2-popup > .swal2-checkbox {\n    display: none; }\n  .swal2-popup .swal2-content {\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n    margin: 0;\n    padding: 0;\n    color: #545454;\n    font-size: 1.125em;\n    font-weight: 300;\n    line-height: normal;\n    word-wrap: break-word; }\n  .swal2-popup #swal2-content {\n    text-align: center; }\n  .swal2-popup .swal2-input,\n  .swal2-popup .swal2-file,\n  .swal2-popup .swal2-textarea,\n  .swal2-popup .swal2-select,\n  .swal2-popup .swal2-radio,\n  .swal2-popup .swal2-checkbox {\n    margin: 1em auto; }\n  .swal2-popup .swal2-input,\n  .swal2-popup .swal2-file,\n  .swal2-popup .swal2-textarea {\n    width: 100%;\n    -webkit-transition: border-color .3s, -webkit-box-shadow .3s;\n    transition: border-color .3s, -webkit-box-shadow .3s;\n    transition: border-color .3s, box-shadow .3s;\n    transition: border-color .3s, box-shadow .3s, -webkit-box-shadow .3s;\n    border: 1px solid #d9d9d9;\n    border-radius: 0.1875em;\n    font-size: 1.125em;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n            box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n    -webkit-box-sizing: border-box;\n            box-sizing: border-box; }\n    .swal2-popup .swal2-input.swal2-inputerror,\n    .swal2-popup .swal2-file.swal2-inputerror,\n    .swal2-popup .swal2-textarea.swal2-inputerror {\n      border-color: #f27474 !important;\n      -webkit-box-shadow: 0 0 2px #f27474 !important;\n              box-shadow: 0 0 2px #f27474 !important; }\n    .swal2-popup .swal2-input:focus,\n    .swal2-popup .swal2-file:focus,\n    .swal2-popup .swal2-textarea:focus {\n      border: 1px solid #b4dbed;\n      outline: none;\n      -webkit-box-shadow: 0 0 3px #c4e6f5;\n              box-shadow: 0 0 3px #c4e6f5; }\n    .swal2-popup .swal2-input::-webkit-input-placeholder,\n    .swal2-popup .swal2-file::-webkit-input-placeholder,\n    .swal2-popup .swal2-textarea::-webkit-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input:-ms-input-placeholder,\n    .swal2-popup .swal2-file:-ms-input-placeholder,\n    .swal2-popup .swal2-textarea:-ms-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input::-ms-input-placeholder,\n    .swal2-popup .swal2-file::-ms-input-placeholder,\n    .swal2-popup .swal2-textarea::-ms-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input::placeholder,\n    .swal2-popup .swal2-file::placeholder,\n    .swal2-popup .swal2-textarea::placeholder {\n      color: #cccccc; }\n  .swal2-popup .swal2-range input {\n    width: 80%; }\n  .swal2-popup .swal2-range output {\n    width: 20%;\n    font-weight: 600;\n    text-align: center; }\n  .swal2-popup .swal2-range input,\n  .swal2-popup .swal2-range output {\n    height: 2.625em;\n    margin: 1em auto;\n    padding: 0;\n    font-size: 1.125em;\n    line-height: 2.625em; }\n  .swal2-popup .swal2-input {\n    height: 2.625em;\n    padding: 0.75em; }\n    .swal2-popup .swal2-input[type='number'] {\n      max-width: 10em; }\n  .swal2-popup .swal2-file {\n    font-size: 1.125em; }\n  .swal2-popup .swal2-textarea {\n    height: 6.75em;\n    padding: 0.75em; }\n  .swal2-popup .swal2-select {\n    min-width: 50%;\n    max-width: 100%;\n    padding: .375em .625em;\n    color: #545454;\n    font-size: 1.125em; }\n  .swal2-popup .swal2-radio,\n  .swal2-popup .swal2-checkbox {\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center; }\n    .swal2-popup .swal2-radio label,\n    .swal2-popup .swal2-checkbox label {\n      margin: 0 .6em;\n      font-size: 1.125em; }\n    .swal2-popup .swal2-radio input,\n    .swal2-popup .swal2-checkbox input {\n      margin: 0 .4em; }\n  .swal2-popup .swal2-validationerror {\n    display: none;\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n    padding: 0.625em;\n    background: #f0f0f0;\n    color: #666666;\n    font-size: 1em;\n    font-weight: 300;\n    overflow: hidden; }\n    .swal2-popup .swal2-validationerror::before {\n      display: inline-block;\n      width: 1.5em;\n      height: 1.5em;\n      margin: 0 .625em;\n      border-radius: 50%;\n      background-color: #f27474;\n      color: #fff;\n      font-weight: 600;\n      line-height: 1.5em;\n      text-align: center;\n      content: '!';\n      zoom: normal; }\n\n@supports (-ms-accelerator: true) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n.swal2-icon {\n  position: relative;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  width: 80px;\n  height: 80px;\n  margin: 1.25em auto 1.875em;\n  border: 4px solid transparent;\n  border-radius: 50%;\n  line-height: 80px;\n  cursor: default;\n  -webkit-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-user-select: none;\n     -moz-user-select: none;
11\n      -ms-user-select: none;\n          user-select: none;\n  zoom: normal; }\n  .swal2-icon.swal2-error {\n    border-color: #f27474; }\n    .swal2-icon.swal2-error .swal2-x-mark {\n      position: relative;\n      -webkit-box-flex: 1;\n          -ms-flex-positive: 1;\n              flex-grow: 1; }\n    .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      display: block;\n      position: absolute;\n      top: 37px;\n      width: 47px;\n      height: 5px;\n      border-radius: 2px;\n      background-color: #f27474; }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: 17px;\n        -webkit-transform: rotate(45deg);\n                transform: rotate(45deg); }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: 16px;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg); }\n  .swal2-icon.swal2-warning, .swal2-icon.swal2-info, .swal2-icon.swal2-question {\n    margin: .333333em auto .5em;\n    font-family: inherit;\n    font-size: 3.75em; }\n  .swal2-icon.swal2-warning {\n    border-color: #facea8;\n    color: #f8bb86; }\n  .swal2-icon.swal2-info {\n    border-color: #9de0f6;\n    color: #3fc3ee; }\n  .swal2-icon.swal2-question {\n    border-color: #c9dae1;\n    color: #87adbd; }\n  .swal2-icon.swal2-success {\n    border-color: #a5dc86; }\n    .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 60px;\n      height: 120px;\n      -webkit-transform: rotate(45deg);\n              transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -7px;\n        left: -33px;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 60px 60px;\n                transform-origin: 60px 60px;\n        border-radius: 120px 0 0 120px; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -11px;\n        left: 30px;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 0 60px;\n                transform-origin: 0 60px;\n        border-radius: 0 120px 120px 0; }\n    .swal2-icon.swal2-success .swal2-success-ring {\n      position: absolute;\n      top: -4px;\n      left: -4px;\n      width: 80px;\n      height: 80px;
11\n      border: 4px solid rgba(165, 220, 134, 0.3);\n      border-radius: 50%;\n      z-index: 2;\n      -webkit-box-sizing: content-box;\n              box-sizing: content-box; }\n    .swal2-icon.swal2-success .swal2-success-fix {\n      position: absolute;\n      top: 8px;\n      left: 26px;\n      width: 7px;\n      height: 90px;\n      -webkit-transform: rotate(-45deg);\n              transform: rotate(-45deg);\n      z-index: 1; }\n    .swal2-icon.swal2-success [class^='swal2-success-line'] {\n      display: block;\n      position: absolute;\n      height: 5px;\n      border-radius: 2px;\n      background-color: #a5dc86;\n      z-index: 2; }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 46px;\n        left: 14px;\n        width: 25px;\n        -webkit-transform: rotate(45deg);\n                transform: rotate(45deg); }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: 38px;\n        right: 8px;\n        width: 47px;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg); }\n\n.swal2-progresssteps {\n  -webkit-box-align: center;\n      -ms-flex-align: center;\n          align-items: center;\n  margin: 0 0 1.25em;\n  padding: 0;\n  font-weight: 600; }\n  .swal2-progresssteps li {\n    display: inline-block;\n    position: relative; }\n  .swal2-progresssteps .swal2-progresscircle {\n    width: 2em;\n    height: 2em;\n    border-radius: 2em;\n    background: #3085d6;\n    color: #fff;\n    line-height: 2em;\n    text-align: center;\n    z-index: 20; }\n    .swal2-progresssteps .swal2-progresscircle:first-child {\n      margin-left: 0; }\n    .swal2-progresssteps .swal2-progresscircle:last-child {\n      margin-right: 0; }\n    .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {\n      background: #3085d6; }\n      .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {\n        background: #add8e6; }\n      .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {\n        background: #add8e6; }\n  .swal2-progresssteps .swal2-progressline {\n    width: 2.5em;\n    height: .4em;\n    margin: 0 -1px;\n    background: #3085d6;\n    z-index: 10; }\n\n[class^='swal2'] {\n  -webkit-tap-highlight-color: transparent; }\n\n.swal2-show {\n  -webkit-animation: swal2-show 0.3s;\n          animation: swal2-show 0.3s; }\n  .swal2-show.swal2-noanimation {\n    -webkit-animation: none;\n            animation: none; }\n\n.swal2-hide {\n  -webkit-animation: swal2-hide 0.15s forwards;\n          animation: swal2-hide 0.15s forwards; }\n  .swal2-hide.swal2-noanimation {\n    -webkit-animation: none;\n            animation: none; }\n\n[dir='rtl'] .swal2-close {\n  right: auto;\n  left: 0; }\n\n.swal2-animate-success-icon .swal2-success-line-tip {\n  -webkit-animation: swal2-animate-success-line-tip 0.75s;\n          animation: swal2-animate-success-line-tip 0.75s; }\n\n.swal2-animate-success-icon .swal2-success-line-long {\n  -webkit-animation: swal2-animate-success-line-long 0.75s;\n          animation: swal2-animate-success-line-long 0.75s; }\n\n.swal2-animate-success-icon .swal2-success-circular-line-right {\n  -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;\n          animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n\n.swal2-animate-error-icon {\n  -webkit-animation: swal2-animate-error-icon 0.5s;\n          animation: swal2-animate-error-icon 0.5s; }\n  .swal2-animate-error-icon .swal2-x-mark {\n    -webkit-animation: swal2-animate-error-x-mark 0.5s;\n            animation: swal2-animate-error-x-mark 0.5s; }\n\n@-webkit-keyframes swal2-rotate-loading {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes swal2-rotate-loading {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n";
12
13var defaultParams = {
14  title: '',
15  titleText: '',
16  text: '',
17  html: '',
18  footer: '',
19  type: null,
20  toast: false,
21  customClass: '',
22  target: 'body',
23  backdrop: true,
24  animation: true,
25  allowOutsideClick: true,
26  allowEscapeKey: true,
27  allowEnterKey: true,
28  showConfirmButton: true,
29  showCancelButton: false,
30  preConfirm: null,
31  confirmButtonText: 'OK',
32  confirmButtonAriaLabel: '',
33  confirmButtonColor: null,
34  confirmButtonClass: null,
35  cancelButtonText: 'Cancel',
36  cancelButtonAriaLabel: '',
37  cancelButtonColor: null,
38  cancelButtonClass: null,
39  buttonsStyling: true,
40  reverseButtons: false,
41  focusConfirm: true,
42  focusCancel: false,
43  showCloseButton: false,
44  closeButtonAriaLabel: 'Close this dialog',
45  showLoaderOnConfirm: false,
46  imageUrl: null,
47  imageWidth: null,
48  imageHeight: null,
49  imageAlt: '',
50  imageClass: null,
51  timer: null,
52  width: null,
53  padding: null,
54  background: null,
55  input: null,
56  inputPlaceholder: '',
57  inputValue: '',
58  inputOptions: {},
59  inputAutoTrim: true,
60  inputClass: null,
61  inputAttributes: {},
62  inputValidator: null,
63  grow: false,
64  position: 'center',
65  progressSteps: [],
66  currentProgressStep: null,
67  progressStepsDistance: null,
68  onBeforeOpen: null,
69  onOpen: null,
70  onClose: null,
71  useRejections: false,
72  expectRejections: false
73};
74
75var deprecatedParams = ['useRejections', 'expectRejections'];
76
77var swalPrefix = 'swal2-';
78
79var prefix = function prefix(items) {
80  var result = {};
81  for (var i in items) {
82    result[items[i]] = swalPrefix + items[i];
83  }
84  return result;
85};
86
87var 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', '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']);
88
89var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
90
91var consolePrefix = 'SweetAlert2:';
92
93/**
94 * Filter the unique values into a new array
95 * @param arr
96 */
97var uniqueArray = function uniqueArray(arr) {
98  var result = [];
99  for (var i = 0; i < arr.length; i++) {
100    if (result.indexOf(arr[i]) === -1) {
101      result.push(arr[i]);
102    }
103  }
104  return result;
105};
106
107/**
108 * Converts `inputOptions` into an array of `[value, label]`s
109 * @param inputOptions
110 */
111var formatInputOptions = function formatInputOptions(inputOptions) {
112  var result = [];
113  if (inputOptions instanceof Map) {
114    inputOptions.forEach(function (value, key) {
115      result.push([key, value]);
116    });
117  } else {
118    Object.keys(inputOptions).forEach(function (key) {
119      result.push([key, inputOptions[key]]);
120    });
121  }
122  return result;
123};
124
125/**
126 * Standardise console warnings
127 * @param message
128 */
129var warn = function warn(message) {
130  console.warn(consolePrefix + ' ' + message);
131};
132
133/**
134 * Standardise console errors
135 * @param message
136 */
137var error = function error(message) {
138  console.error(consolePrefix + ' ' + message);
139};
140
141/**
142 * Private global state for `warnOnce`
143 * @type {Array}
144 * @private
145 */
146var previousWarnOnceMessages = [];
147
148/**
149 * Show a console warning, but only if it hasn't already been shown
150 * @param message
151 */
152var warnOnce = function warnOnce(message) {
153  if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
154    previousWarnOnceMessages.push(message);
155    warn(message);
156  }
157};
158
159/**
160 * If `arg` is a function, call it (with no arguments or context) and return the result.
161 * Otherwise, just pass the value through
162 * @param arg
163 */
164var callIfFunction = function callIfFunction(arg) {
165  return typeof arg === 'function' ? arg() : arg;
166};
167
168var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
169  return typeof obj;
170} : function (obj) {
171  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
172};
173
174var _extends = Object.assign || function (target) {
175  for (var i = 1; i < arguments.length; i++) {
176    var source = arguments[i];
177
178    for (var key in source) {
179      if (Object.prototype.hasOwnProperty.call(source, key)) {
180        target[key] = source[key];
181      }
182    }
183  }
184
185  return target;
186};
187
188var slicedToArray = function () {
189  function sliceIterator(arr, i) {
190    var _arr = [];
191    var _n = true;
192    var _d = false;
193    var _e = undefined;
194
195    try {
196      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
197        _arr.push(_s.value);
198
199        if (i && _arr.length === i) break;
200      }
201    } catch (err) {
202      _d = true;
203      _e = err;
204    } finally {
205      try {
206        if (!_n && _i["return"]) _i["return"]();
207      } finally {
208        if (_d) throw _e;
209      }
210    }
211
212    return _arr;
213  }
214
215  return function (arr, i) {
216    if (Array.isArray(arr)) {
217      return arr;
218    } else if (Symbol.iterator in Object(arr)) {
219      return sliceIterator(arr, i);
220    } else {
221      throw new TypeError("Invalid attempt to destructure non-iterable instance");
222    }
223  };
224}();
225
226var popupParams = _extends({}, defaultParams);
227var queue = [];
228
229var previousWindowKeyDown = void 0,
230    windowOnkeydownOverridden = void 0;
231
232/**
233 * Show relevant warnings for given params
234 *
235 * @param params
236 */
237var showWarningsForParams = function showWarningsForParams(params) {
238  for (var param in params) {
239    if (!sweetAlert.isValidParameter(param)) {
240      warn('Unknown parameter "' + param + '"');
241    }
242    if (sweetAlert.isDeprecatedParameter(param)) {
243      warnOnce('The parameter "' + param + '" is deprecated and will be removed in the next major release.');
244    }
245  }
246};
247
248/**
249 * Set type, text and actions on popup
250 *
251 * @param params
252 * @returns {boolean}
253 */
254var setParameters = function setParameters(params) {
255  // Determine if the custom target element is valid
256  if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
257    warn('Target parameter is not valid, defaulting to "body"');
258    params.target = 'body';
259  }
260
261  var popup = void 0;
262  var oldPopup = getPopup();
263  var targetElement = typeof params.target === 'string' ? document.querySelector(params.target) : params.target;
264  // If the model target has changed, refresh the popup
265  if (oldPopup && targetElement && oldPopup.parentNode !== targetElement.parentNode) {
266    popup = init(params);
267  } else {
268    popup = oldPopup || init(params);
269  }
270
271  // Set popup width
272  if (params.width) {
273    popup.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width;
274  }
275
276  // Set popup padding
277  if (params.padding) {
278    popup.style.padding = typeof params.padding === 'number' ? params.padding + 'px' : params.padding;
279  }
280
281  // Set popup background
282  if (params.background) {
283    popup.style.background = params.background;
284  }
285  var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
286  var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
287  for (var i = 0; i < successIconParts.length; i++) {
288    successIconParts[i].style.backgroundColor = popupBackgroundColor;
289  }
290
291  var container = getContainer();
292  var title = getTitle();
293  var content = getContent().querySelector('#' + swalClasses.content);
294  var actions = getActions();
295  var confirmButton = getConfirmButton();
296  var cancelButton = getCancelButton();
297  var closeButton = getCloseButton();
298  var footer = getFooter();
299
300  // Title
301  if (params.titleText) {
302    title.innerText = params.titleText;
303  } else if (params.title) {
304    title.innerHTML = params.title.split('\n').join('<br />');
305  }
306
307  if (typeof params.backdrop === 'string') {
308    getContainer().style.background = params.backdrop;
309  } else if (!params.backdrop) {
310    addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
311  }
312
313  // Content as HTML
314  if (params.html) {
315    parseHtmlToContainer(params.html, content);
316
317    // Content as plain text
318  } else if (params.text) {
319    content.textContent = params.text;
320    show(content);
321  } else {
322    hide(content);
323  }
324
325  // Position
326  if (params.position in swalClasses) {
327    addClass(container, swalClasses[params.position]);
328  } else {
329    warn('The "position" parameter is not valid, defaulting to "center"');
330    addClass(container, swalClasses.center);
331  }
332
333  // Grow
334  if (params.grow && typeof params.grow === 'string') {
335    var growClass = 'grow-' + params.grow;
336    if (growClass in swalClasses) {
337      addClass(container, swalClasses[growClass]);
338    }
339  }
340
341  // Animation
342  if (typeof params.animation === 'function') {
343    params.animation = params.animation.call();
344  }
345
346  // Close button
347  if (params.showCloseButton) {
348    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
349    show(closeButton);
350  } else {
351    hide(closeButton);
352  }
353
354  // Default Class
355  popup.className = swalClasses.popup;
356  if (params.toast) {
357    addClass([document.documentElement, document.body], swalClasses['toast-shown']);
358    addClass(popup, swalClasses.toast);
359  } else {
360    addClass(popup, swalClasses.modal);
361  }
362
363  // Custom Class
364  if (params.customClass) {
365    addClass(popup, params.customClass);
366  }
367
368  // Progress steps
369  var progressStepsContainer = getProgressSteps();
370  var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);
371  if (params.progressSteps && params.progressSteps.length) {
372    show(progressStepsContainer);
373    empty(progressStepsContainer);
374    if (currentProgressStep >= params.progressSteps.length) {
375      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
376    }
377    params.progressSteps.forEach(function (step, index) {
378      var circle = document.createElement('li');
379      addClass(circle, swalClasses.progresscircle);
380      circle.innerHTML = step;
381      if (index === currentProgressStep) {
382        addClass(circle, swalClasses.activeprogressstep);
383      }
384      progressStepsContainer.appendChild(circle);
385      if (index !== params.progressSteps.length - 1) {
386        var line = document.createElement('li');
387        addClass(line, swalClasses.progressline);
388        if (params.progressStepsDistance) {
389          line.style.width = params.progressStepsDistance;
390        }
391        progressStepsContainer.appendChild(line);
392      }
393    });
394  } else {
395    hide(progressStepsContainer);
396  }
397
398  // Icon
399  var icons = getIcons();
400  for (var _i = 0; _i < icons.length; _i++) {
401    hide(icons[_i]);
402  }
403  if (params.type) {
404    var validType = false;
405    for (var iconType in iconTypes) {
406      if (params.type === iconType) {
407        validType = true;
408        break;
409      }
410    }
411    if (!validType) {
412      error('Unknown alert type: ' + params.type);
413      return false;
414    }
415    var icon = popup.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);
416    show(icon);
417
418    // Animate icon
419    if (params.animation) {
420      addClass(icon, 'swal2-animate-' + params.type + '-icon');
421    }
422  }
423
424  // Custom image
425  var image = getImage();
426  if (params.imageUrl) {
427    image.setAttribute('src', params.imageUrl);
428    image.setAttribute('alt', params.imageAlt);
429    show(image);
430
431    if (params.imageWidth) {
432      image.setAttribute('width', params.imageWidth);
433    } else {
434      image.removeAttribute('width');
435    }
436
437    if (params.imageHeight) {
438      image.setAttribute('height', params.imageHeight);
439    } else {
440      image.removeAttribute('height');
441    }
442
443    image.className = swalClasses.image;
444    if (params.imageClass) {
445      addClass(image, params.imageClass);
446    }
447  } else {
448    hide(image);
449  }
450
451  // Cancel button
452  if (params.showCancelButton) {
453    cancelButton.style.display = 'inline-block';
454  } else {
455    hide(cancelButton);
456  }
457
458  // Confirm button
459  if (params.showConfirmButton) {
460    removeStyleProperty(confirmButton, 'display');
461  } else {
462    hide(confirmButton);
463  }
464
465  // Actions (buttons) wrapper
466  if (!params.showConfirmButton && !params.showCancelButton) {
467    hide(actions);
468  } else {
469    show(actions);
470  }
471
472  // Edit text on confirm and cancel buttons
473  confirmButton.innerHTML = params.confirmButtonText;
474  cancelButton.innerHTML = params.cancelButtonText;
475
476  // ARIA labels for confirm and cancel buttons
477  confirmButton.setAttribute('aria-label', params.confirmButtonAriaLabel);
478  cancelButton.setAttribute('aria-label', params.cancelButtonAriaLabel);
479
480  // Add buttons custom classes
481  confirmButton.className = swalClasses.confirm;
482  addClass(confirmButton, params.confirmButtonClass);
483  cancelButton.className = swalClasses.cancel;
484  addClass(cancelButton, params.cancelButtonClass);
485
486  // Buttons styling
487  if (params.buttonsStyling) {
488    addClass([confirmButton, cancelButton], swalClasses.styled);
489
490    // Buttons background colors
491    if (params.confirmButtonColor) {
492      confirmButton.style.backgroundColor = params.confirmButtonColor;
493    }
494    if (params.cancelButtonColor) {
495      cancelButton.style.backgroundColor = params.cancelButtonColor;
496    }
497
498    // Loading state
499    var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color');
500    confirmButton.style.borderLeftColor = confirmButtonBackgroundColor;
501    confirmButton.style.borderRightColor = confirmButtonBackgroundColor;
502  } else {
503    removeClass([confirmButton, cancelButton], swalClasses.styled);
504
505    confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
506    cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
507  }
508
509  // Footer
510  parseHtmlToContainer(params.footer, footer);
511
512  // CSS animation
513  if (params.animation === true) {
514    removeClass(popup, swalClasses.noanimation);
515  } else {
516    addClass(popup, swalClasses.noanimation);
517  }
518
519  // showLoaderOnConfirm && preConfirm
520  if (params.showLoaderOnConfirm && !params.preConfirm) {
521    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');
522  }
523};
524
525/**
526 * Animations
527 *
528 * @param animation
529 * @param onBeforeOpen
530 * @param onComplete
531 */
532var openPopup = function openPopup(animation, onBeforeOpen, onComplete) {
533  var container = getContainer();
534  var popup = getPopup();
535
536  if (onBeforeOpen !== null && typeof onBeforeOpen === 'function') {
537    onBeforeOpen(popup);
538  }
539
540  if (animation) {
541    addClass(popup, swalClasses.show);
542    addClass(container, swalClasses.fade);
543    removeClass(popup, swalClasses.hide);
544  } else {
545    removeClass(popup, swalClasses.fade);
546  }
547  show(popup);
548
549  // scrolling is 'hidden' until animation is done, after that 'auto'
550  container.style.overflowY = 'hidden';
551  if (animationEndEvent && !hasClass(popup, swalClasses.noanimation)) {
552    popup.addEventListener(animationEndEvent, function swalCloseEventFinished() {
553      popup.removeEventListener(animationEndEvent, swalCloseEventFinished);
554      container.style.overflowY = 'auto';
555    });
556  } else {
557    container.style.overflowY = 'auto';
558  }
559
560  addClass([document.documentElement, document.body, container], swalClasses.shown);
561  if (isModal()) {
562    fixScrollbar();
563    iOSfix();
564  }
565  states.previousActiveElement = document.activeElement;
566  if (onComplete !== null && typeof onComplete === 'function') {
567    setTimeout(function () {
568      onComplete(popup);
569    });
570  }
571};
572
573var fixScrollbar = function fixScrollbar() {
574  // for queues, do not do this more than once
575  if (states.previousBodyPadding !== null) {
576    return;
577  }
578  // if the body has overflow
579  if (document.body.scrollHeight > window.innerHeight) {
580    // add padding so the content doesn't shift after removal of scrollbar
581    states.previousBodyPadding = document.body.style.paddingRight;
582    document.body.style.paddingRight = measureScrollbar() + 'px';
583  }
584};
585
586var undoScrollbar = function undoScrollbar() {
587  if (states.previousBodyPadding !== null) {
588    document.body.style.paddingRight = states.previousBodyPadding;
589    states.previousBodyPadding = null;
590  }
591};
592
593// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
594var iOSfix = function iOSfix() {
595  var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
596  if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
597    var offset = document.body.scrollTop;
598    document.body.style.top = offset * -1 + 'px';
599    addClass(document.body, swalClasses.iosfix);
600  }
601};
602
603var undoIOSfix = function undoIOSfix() {
604  if (hasClass(document.body, swalClasses.iosfix)) {
605    var offset = parseInt(document.body.style.top, 10);
606    removeClass(document.body, swalClasses.iosfix);
607    document.body.style.top = '';
608    document.body.scrollTop = offset * -1;
609  }
610};
611
612// SweetAlert entry point
613var sweetAlert = function sweetAlert() {
614  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
615    args[_key] = arguments[_key];
616  }
617
618  // Prevent run in Node env
619  if (typeof window === 'undefined') {
620    return;
621  }
622
623  // Check for the existence of Promise
624  if (typeof Promise === 'undefined') {
625    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)');
626  }
627
628  if (typeof args[0] === 'undefined') {
629    error('SweetAlert2 expects at least 1 attribute!');
630    return false;
631  }
632
633  var params = _extends({}, popupParams);
634
635  switch (_typeof(args[0])) {
636    case 'string':
637      params.title = args[0];
638      params.html = args[1];
639      params.type = args[2];
640
641      break;
642
643    case 'object':
644      showWarningsForParams(args[0]);
645      _extends(params, args[0]);
646      params.extraParams = args[0].extraParams;
647
648      if (params.input === 'email' && params.inputValidator === null) {
649        var inputValidator = function inputValidator(email) {
650          return new Promise(function (resolve, reject) {
651            var emailRegex = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/;
652            if (emailRegex.test(email)) {
653              resolve();
654            } else {
655              reject('Invalid email address');
656            }
657          });
658        };
659        params.inputValidator = params.expectRejections ? inputValidator : sweetAlert.adaptInputValidator(inputValidator);
660      }
661
662      if (params.input === 'url' && params.inputValidator === null) {
663        var _inputValidator = function _inputValidator(url) {
664          return new Promise(function (resolve, reject) {
665            // taken from https://stackoverflow.com/a/3809435/1331425
666            var urlRegex = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/;
667            if (urlRegex.test(url)) {
668              resolve();
669            } else {
670              reject('Invalid URL');
671            }
672          });
673        };
674        params.inputValidator = params.expectRejections ? _inputValidator : sweetAlert.adaptInputValidator(_inputValidator);
675      }
676      break;
677
678    default:
679      error('Unexpected type of argument! Expected "string" or "object", got ' + _typeof(args[0]));
680      return false;
681  }
682
683  setParameters(params);
684
685  var container = getContainer();
686  var popup = getPopup();
687
688  return new Promise(function (resolve, reject) {
689    // functions to handle all resolving/rejecting/settling
690    var succeedWith = function succeedWith(value) {
691      sweetAlert.closePopup(params.onClose);
692      if (params.useRejections) {
693        resolve(value);
694      } else {
695        resolve({ value: value });
696      }
697    };
698    var dismissWith = function dismissWith(dismiss) {
699      sweetAlert.closePopup(params.onClose);
700      if (params.useRejections) {
701        reject(dismiss);
702      } else {
703        resolve({ dismiss: dismiss });
704      }
705    };
706    var errorWith = function errorWith(error$$1) {
707      sweetAlert.closePopup(params.onClose);
708      reject(error$$1);
709    };
710
711    // Close on timer
712    if (params.timer) {
713      popup.timeout = setTimeout(function () {
714        return dismissWith('timer');
715      }, params.timer);
716    }
717
718    // Get input element by specified type or, if type isn't specified, by params.input
719    var getInput = function getInput(inputType) {
720      inputType = inputType || params.input;
721      if (!inputType) {
722        return null;
723      }
724      switch (inputType) {
725        case 'select':
726        case 'textarea':
727        case 'file':
728          return getChildByClass(content, swalClasses[inputType]);
729        case 'checkbox':
730          return popup.querySelector('.' + swalClasses.checkbox + ' input');
731        case 'radio':
732          return popup.querySelector('.' + swalClasses.radio + ' input:checked') || popup.querySelector('.' + swalClasses.radio + ' input:first-child');
733        case 'range':
734          return popup.querySelector('.' + swalClasses.range + ' input');
735        default:
736          return getChildByClass(content, swalClasses.input);
737      }
738    };
739
740    // Get the value of the popup input
741    var getInputValue = function getInputValue() {
742      var input = getInput();
743      if (!input) {
744        return null;
745      }
746      switch (params.input) {
747        case 'checkbox':
748          return input.checked ? 1 : 0;
749        case 'radio':
750          return input.checked ? input.value : null;
751        case 'file':
752          return input.files.length ? input.files[0] : null;
753        default:
754          return params.inputAutoTrim ? input.value.trim() : input.value;
755      }
756    };
757
758    // input autofocus
759    if (params.input) {
760      setTimeout(function () {
761        var input = getInput();
762        if (input) {
763          focusInput(input);
764        }
765      }, 0);
766    }
767
768    var confirm = function confirm(value) {
769      if (params.showLoaderOnConfirm) {
770        sweetAlert.showLoading();
771      }
772
773      if (params.preConfirm) {
774        sweetAlert.resetValidationError();
775        var preConfirmPromise = Promise.resolve().then(function () {
776          return params.preConfirm(value, params.extraParams);
777        });
778        if (params.expectRejections) {
779          preConfirmPromise.then(function (preConfirmValue) {
780            return succeedWith(preConfirmValue || value);
781          }, function (validationError) {
782            sweetAlert.hideLoading();
783            if (validationError) {
784              sweetAlert.showValidationError(validationError);
785            }
786          });
787        } else {
788          preConfirmPromise.then(function (preConfirmValue) {
789            if (isVisible(getValidationError()) || preConfirmValue === false) {
790              sweetAlert.hideLoading();
791            } else {
792              succeedWith(preConfirmValue || value);
793            }
794          }, function (error$$1) {
795            return errorWith(error$$1);
796          });
797        }
798      } else {
799        succeedWith(value);
800      }
801    };
802
803    // Mouse interactions
804    var onButtonEvent = function onButtonEvent(event) {
805      var e = event || window.event;
806      var target = e.target || e.srcElement;
807      var confirmButton = getConfirmButton();
808      var cancelButton = getCancelButton();
809      var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target));
810      var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target));
811
812      switch (e.type) {
813        case 'click':
814          // Clicked 'confirm'
815          if (targetedConfirm && sweetAlert.isVisible()) {
816            sweetAlert.disableButtons();
817            if (params.input) {
818              var inputValue = getInputValue();
819
820              if (params.inputValidator) {
821                sweetAlert.disableInput();
822                var validationPromise = Promise.resolve().then(function () {
823                  return params.inputValidator(inputValue, params.extraParams);
824                });
825                if (params.expectRejections) {
826                  validationPromise.then(function () {
827                    sweetAlert.enableButtons();
828                    sweetAlert.enableInput();
829                    confirm(inputValue);
830                  }, function (validationError) {
831                    sweetAlert.enableButtons();
832                    sweetAlert.enableInput();
833                    if (validationError) {
834                      sweetAlert.showValidationError(validationError);
835                    }
836                  });
837                } else {
838                  validationPromise.then(function (validationError) {
839                    sweetAlert.enableButtons();
840                    sweetAlert.enableInput();
841                    if (validationError) {
842                      sweetAlert.showValidationError(validationError);
843                    } else {
844                      confirm(inputValue);
845                    }
846                  }, function (error$$1) {
847                    return errorWith(error$$1);
848                  });
849                }
850              } else {
851                confirm(inputValue);
852              }
853            } else {
854              confirm(true);
855            }
856
857            // Clicked 'cancel'
858          } else if (targetedCancel && sweetAlert.isVisible()) {
859            sweetAlert.disableButtons();
860            dismissWith(sweetAlert.DismissReason.cancel);
861          }
862          break;
863        default:
864      }
865    };
866
867    var buttons = popup.querySelectorAll('button');
868    for (var i = 0; i < buttons.length; i++) {
869      buttons[i].onclick = onButtonEvent;
870      buttons[i].onmouseover = onButtonEvent;
871      buttons[i].onmouseout = onButtonEvent;
872      buttons[i].onmousedown = onButtonEvent;
873    }
874
875    // Closing popup by close button
876    getCloseButton().onclick = function () {
877      dismissWith(sweetAlert.DismissReason.close);
878    };
879
880    if (params.toast) {
881      // Closing popup by backdrop click
882      popup.onclick = function (e) {
883        if (e.target !== popup || params.showConfirmButton || params.showCancelButton) {
884          return;
885        }
886        if (params.allowOutsideClick) {
887          sweetAlert.closePopup(params.onClose);
888          dismissWith(sweetAlert.DismissReason.backdrop);
889        }
890      };
891    } else {
892      var ignoreOutsideClick = false;
893
894      // Ignore click events that had mousedown on the popup but mouseup on the container
895      // This can happen when the user drags a slider
896      popup.onmousedown = function () {
897        container.onmouseup = function (e) {
898          container.onmouseup = undefined;
899          // We only check if the mouseup target is the container because usually it doesn't
900          // have any other direct children aside of the popup
901          if (e.target === container) {
902            ignoreOutsideClick = true;
903          }
904        };
905      };
906
907      // Ignore click events that had mousedown on the container but mouseup on the popup
908      container.onmousedown = function () {
909        popup.onmouseup = function (e) {
910          popup.onmouseup = undefined;
911          // We also need to check if the mouseup target is a child of the popup
912          if (e.target === popup || popup.contains(e.target)) {
913            ignoreOutsideClick = true;
914          }
915        };
916      };
917
918      container.onclick = function (e) {
919        if (ignoreOutsideClick) {
920          ignoreOutsideClick = false;
921          return;
922        }
923        if (e.target !== container) {
924          return;
925        }
926        if (callIfFunction(params.allowOutsideClick)) {
927          dismissWith(sweetAlert.DismissReason.backdrop);
928        }
929      };
930    }
931
932    var content = getContent();
933    var actions = getActions();
934    var confirmButton = getConfirmButton();
935    var cancelButton = getCancelButton();
936
937    // Reverse buttons (Confirm on the right side)
938    if (params.reverseButtons) {
939      confirmButton.parentNode.insertBefore(cancelButton, confirmButton);
940    } else {
941      confirmButton.parentNode.insertBefore(confirmButton, cancelButton);
942    }
943
944    // Focus handling
945    var setFocus = function setFocus(index, increment) {
946      var focusableElements = getFocusableElements(params.focusCancel);
947      // search for visible elements and select the next possible match
948      for (var _i2 = 0;
948 _i2 < focusableElements.length; _i2++) {
949        index = index + increment;
950
951        // rollover to first item
952        if (index === focusableElements.length) {
953          index = 0;
954
955          // go to last item
956        } else if (index === -1) {
957          index = focusableElements.length - 1;
958        }
959
960        // determine if element is visible
961        var el = focusableElements[index];
962        if (isVisible(el)) {
963          return el.focus();
964        }
965      }
966    };
967
968    var handleKeyDown = function handleKeyDown(event) {
969      var e = event || window.event;
970
971      var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11
972      ];
973
974      if (e.key === 'Enter' && !e.isComposing) {
975        if (e.target === getInput()) {
976          if (['textarea', 'file'].indexOf(params.input) !== -1) {
977            return; // do not submit
978          }
979
980          sweetAlert.clickConfirm();
981          e.preventDefault();
982        }
983
984        // TAB
985      } else if (e.key === 'Tab') {
986        var targetElement = e.target || e.srcElement;
987
988        var focusableElements = getFocusableElements(params.focusCancel);
989        var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.
990        for (var _i3 = 0; _i3 < focusableElements.length; _i3++) {
991          if (targetElement === focusableElements[_i3]) {
992            btnIndex = _i3;
993            break;
994          }
995        }
996
997        if (!e.shiftKey) {
998          // Cycle to the next button
999          setFocus(btnIndex, 1);
1000        } else {
1001          // Cycle to the prev button
1002          setFocus(btnIndex, -1);
1003        }
1004        e.stopPropagation();
1005        e.preventDefault();
1006
1007        // ARROWS - switch focus between buttons
1008      } else if (arrowKeys.indexOf(e.key) !== -1) {
1009        // focus Cancel button if Confirm button is currently focused
1010        if (document.activeElement === confirmButton && isVisible(cancelButton)) {
1011          cancelButton.focus();
1012          // and vice versa
1013        } else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
1014          confirmButton.focus();
1015        }
1016
1017        // ESC
1018      } else if ((e.key === 'Escape' || e.key === 'Esc') && callIfFunction(params.allowEscapeKey) === true) {
1019        dismissWith(sweetAlert.DismissReason.esc);
1020      }
1021    };
1022
1023    if (params.toast && windowOnkeydownOverridden) {
1024      window.onkeydown = previousWindowKeyDown;
1025      windowOnkeydownOverridden = false;
1026    }
1027
1028    if (!params.toast && !windowOnkeydownOverridden) {
1029      previousWindowKeyDown = window.onkeydown;
1030      windowOnkeydownOverridden = true;
1031      window.onkeydown = handleKeyDown;
1032    }
1033
1034    /**
1035     * Show spinner instead of Confirm button and disable Cancel button
1036     */
1037    sweetAlert.hideLoading = sweetAlert.disableLoading = function () {
1038      if (!params.showConfirmButton) {
1039        hide(confirmButton);
1040        if (!params.showCancelButton) {
1041          hide(getActions());
1042        }
1043      }
1044      removeClass([popup, actions], swalClasses.loading);
1045      popup.removeAttribute('aria-busy');
1046      popup.removeAttribute('data-loading');
1047      confirmButton.disabled = false;
1048      cancelButton.disabled = false;
1049    };
1050
1051    sweetAlert.getTitle = function () {
1052      return getTitle();
1053    };
1054    sweetAlert.getContent = function () {
1055      return getContent();
1056    };
1057    sweetAlert.getInput = function () {
1058      return getInput();
1059    };
1060    sweetAlert.getImage = function () {
1061      return getImage();
1062    };
1063    sweetAlert.getButtonsWrapper = function () {
1064      return getButtonsWrapper();
1065    };
1066    sweetAlert.getActions = function () {
1067      return getActions();
1068    };
1069    sweetAlert.getConfirmButton = function () {
1070      return getConfirmButton();
1071    };
1072    sweetAlert.getCancelButton = function () {
1073      return getCancelButton();
1074    };
1075    sweetAlert.getFooter = function () {
1076      return getFooter();
1077    };
1078    sweetAlert.isLoading = function () {
1079      return isLoading();
1080    };
1081
1082    sweetAlert.enableButtons = function () {
1083      confirmButton.disabled = false;
1084      cancelButton.disabled = false;
1085    };
1086
1087    sweetAlert.disableButtons = function () {
1088      confirmButton.disabled = true;
1089      cancelButton.disabled = true;
1090    };
1091
1092    sweetAlert.enableConfirmButton = function () {
1093      confirmButton.disabled = false;
1094    };
1095
1096    sweetAlert.disableConfirmButton = function () {
1097      confirmButton.disabled = true;
1098    };
1099
1100    sweetAlert.enableInput = function () {
1101      var input = getInput();
1102      if (!input) {
1103        return false;
1104      }
1105      if (input.type === 'radio') {
1106        var radiosContainer = input.parentNode.parentNode;
1107        var radios = radiosContainer.querySelectorAll('input');
1108        for (var _i4 = 0; _i4 < radios.length; _i4++) {
1109          radios[_i4].disabled = false;
1110        }
1111      } else {
1112        input.disabled = false;
1113      }
1114    };
1115
1116    sweetAlert.disableInput = function () {
1117      var input = getInput();
1118      if (!input) {
1119        return false;
1120      }
1121      if (input && input.type === 'radio') {
1122        var radiosContainer = input.parentNode.parentNode;
1123        var radios = radiosContainer.querySelectorAll('input');
1124        for (var _i5 = 0; _i5 < radios.length; _i5++) {
1125          radios[_i5].disabled = true;
1126        }
1127      } else {
1128        input.disabled = true;
1129      }
1130    };
1131
1132    // Show block with validation error
1133    sweetAlert.showValidationError = function (error$$1) {
1134      var validationError = getValidationError();
1135      validationError.innerHTML = error$$1;
1136      var popupComputedStyle = window.getComputedStyle(popup);
1137      validationError.style.marginLeft = '-' + popupComputedStyle.getPropertyValue('padding-left');
1138      validationError.style.marginRight = '-' + popupComputedStyle.getPropertyValue('padding-right');
1139      show(validationError);
1140
1141      var input = getInput();
1142      if (input) {
1143        input.setAttribute('aria-invalid', true);
1144        input.setAttribute('aria-describedBy', swalClasses.validationerror);
1145        focusInput(input);
1146        addClass(input, swalClasses.inputerror);
1147      }
1148    };
1149
1150    // Hide block with validation error
1151    sweetAlert.resetValidationError = function () {
1152      var validationError = getValidationError();
1153      hide(validationError);
1154
1155      var input = getInput();
1156      if (input) {
1157        input.removeAttribute('aria-invalid');
1158        input.removeAttribute('aria-describedBy');
1159        removeClass(input, swalClasses.inputerror);
1160      }
1161    };
1162
1163    sweetAlert.getProgressSteps = function () {
1164      return params.progressSteps;
1165    };
1166
1167    sweetAlert.setProgressSteps = function (progressSteps) {
1168      params.progressSteps = progressSteps;
1169      setParameters(params);
1170    };
1171
1172    sweetAlert.showProgressSteps = function () {
1173      show(getProgressSteps());
1174    };
1175
1176    sweetAlert.hideProgressSteps = function () {
1177      hide(getProgressSteps());
1178    };
1179
1180    sweetAlert.enableButtons();
1181    sweetAlert.hideLoading();
1182    sweetAlert.resetValidationError();
1183
1184    if (params.input) {
1185      addClass(document.body, swalClasses['has-input']);
1186    }
1187
1188    // inputs
1189    var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
1190    var input = void 0;
1191    for (var _i6 = 0; _i6 < inputTypes.length; _i6++) {
1192      var inputClass = swalClasses[inputTypes[_i6]];
1193      var inputContainer = getChildByClass(content, inputClass);
1194      input = getInput(inputTypes[_i6]);
1195
1196      // set attributes
1197      if (input) {
1198        for (var j in input.attributes) {
1199          if (input.attributes.hasOwnProperty(j)) {
1200            var attrName = input.attributes[j].name;
1201            if (attrName !== 'type' && attrName !== 'value') {
1202              input.removeAttribute(attrName);
1203            }
1204          }
1205        }
1206        for (var attr in params.inputAttributes) {
1207          input.setAttribute(attr, params.inputAttributes[attr]);
1208        }
1209      }
1210
1211      // set class
1212      inputContainer.className = inputClass;
1213      if (params.inputClass) {
1214        addClass(inputContainer, params.inputClass);
1215      }
1216
1217      hide(inputContainer);
1218    }
1219
1220    var populateInputOptions = void 0;
1221    switch (params.input) {
1222      case 'text':
1223      case 'email':
1224      case 'password':
1225      case 'number':
1226      case 'tel':
1227      case 'url':
1228        input = getChildByClass(content, swalClasses.input);
1229        input.value = params.inputValue;
1230        input.placeholder = params.inputPlaceholder;
1231        input.type = params.input;
1232        show(input);
1233        break;
1234      case 'file':
1235        input = getChildByClass(content, swalClasses.file);
1236        input.placeholder = params.inputPlaceholder;
1237        input.type = params.input;
1238        show(input);
1239        break;
1240      case 'range':
1241        var range = getChildByClass(content, swalClasses.range);
1242        var rangeInput = range.querySelector('input');
1243        var rangeOutput = range.querySelector('output');
1244        rangeInput.value = params.inputValue;
1245        rangeInput.type = params.input;
1246        rangeOutput.value = params.inputValue;
1247        show(range);
1248        break;
1249      case 'select':
1250        var select = getChildByClass(content, swalClasses.select);
1251        select.innerHTML = '';
1252        if (params.inputPlaceholder) {
1253          var placeholder = document.createElement('option');
1254          placeholder.innerHTML = params.inputPlaceholder;
1255          placeholder.value = '';
1256          placeholder.disabled = true;
1257          placeholder.selected = true;
1258          select.appendChild(placeholder);
1259        }
1260        populateInputOptions = function populateInputOptions(inputOptions) {
1261          inputOptions.forEach(function (_ref) {
1262            var _ref2 = slicedToArray(_ref, 2),
1263                optionValue = _ref2[0],
1264                optionLabel = _ref2[1];
1265
1266            var option = document.createElement('option');
1267            option.value = optionValue;
1268            option.innerHTML = optionLabel;
1269            if (params.inputValue.toString() === optionValue.toString()) {
1270              option.selected = true;
1271            }
1272            select.appendChild(option);
1273          });
1274          show(select);
1275          select.focus();
1276        };
1277        break;
1278      case 'radio':
1279        var radio = getChildByClass(content, swalClasses.radio);
1280        radio.innerHTML = '';
1281        populateInputOptions = function populateInputOptions(inputOptions) {
1282          inputOptions.forEach(function (_ref3) {
1283            var _ref4 = slicedToArray(_ref3, 2),
1284                radioValue = _ref4[0],
1285                radioLabel = _ref4[1];
1286
1287            var radioInput = document.createElement('input');
1288            var radioLabelElement = document.createElement('label');
1289            radioInput.type = 'radio';
1290            radioInput.name = swalClasses.radio;
1291            radioInput.value = radioValue;
1292            if (params.inputValue.toString() === radioValue.toString()) {
1293              radioInput.checked = true;
1294            }
1295            radioLabelElement.innerHTML = radioLabel;
1296            radioLabelElement.insertBefore(radioInput, radioLabelElement.firstChild);
1297            radio.appendChild(radioLabelElement);
1298          });
1299          show(radio);
1300          var radios = radio.querySelectorAll('input');
1301          if (radios.length) {
1302            radios[0].focus();
1303          }
1304        };
1305        break;
1306      case 'checkbox':
1307        var checkbox = getChildByClass(content, swalClasses.checkbox);
1308        var checkboxInput = getInput('checkbox');
1309        checkboxInput.type = 'checkbox';
1310        checkboxInput.value = 1;
1311        checkboxInput.id = swalClasses.checkbox;
1312        checkboxInput.checked = Boolean(params.inputValue);
1313        var label = checkbox.getElementsByTagName('span');
1314        if (label.length) {
1315          checkbox.removeChild(label[0]);
1316        }
1317        label = document.createElement('span');
1318        label.innerHTML = params.inputPlaceholder;
1319        checkbox.appendChild(label);
1320        show(checkbox);
1321        break;
1322      case 'textarea':
1323        var textarea = getChildByClass(content, swalClasses.textarea);
1324        textarea.value = params.inputValue;
1325        textarea.placeholder = params.inputPlaceholder;
1326        show(textarea);
1327        break;
1328      case null:
1329        break;
1330      default:
1331        error('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"');
1332        break;
1333    }
1334
1335    if (params.input === 'select' || params.input === 'radio') {
1336      var processInputOptions = function processInputOptions(inputOptions) {
1337        return populateInputOptions(formatInputOptions(inputOptions));
1338      };
1339      if (params.inputOptions instanceof Promise) {
1340        sweetAlert.showLoading();
1341        params.inputOptions.then(function (inputOptions) {
1342          sweetAlert.hideLoading();
1343          processInputOptions(inputOptions);
1344        });
1345      } else if (_typeof(params.inputOptions) === 'object') {
1346        processInputOptions(params.inputOptions);
1347      } else {
1348        error('Unexpected type of inputOptions! Expected object, Map or Promise, got ' + _typeof(params.inputOptions));
1349      }
1350    }
1351
1352    openPopup(params.animation, params.onBeforeOpen, params.onOpen);
1353
1354    if (!params.toast) {
1355      if (!callIfFunction(params.allowEnterKey)) {
1356        if (document.activeElement) {
1357          document.activeElement.blur();
1358        }
1359      } else if (params.focusCancel && isVisible(cancelButton)) {
1360        cancelButton.focus();
1361      } else if (params.focusConfirm && isVisible(confirmButton)) {
1362        confirmButton.focus();
1363      } else {
1364        setFocus(-1, 1);
1365      }
1366    }
1367
1368    // fix scroll
1369    getContainer().scrollTop = 0;
1370  });
1371};
1372
1373/*
1374 * Global function to determine if swal2 popup is shown
1375 */
1376sweetAlert.isVisible = function () {
1377  return !!getPopup();
1378};
1379
1380/*
1381 * Global function for chaining sweetAlert popups
1382 */
1383sweetAlert.queue = function (steps) {
1384  queue = steps;
1385  var resetQueue = function resetQueue() {
1386    queue = [];
1387    document.body.removeAttribute('data-swal2-queue-step');
1388  };
1389  var queueResult = [];
1390  return new Promise(function (resolve, reject) {
1391    (function step(i, callback) {
1392      if (i < queue.length) {
1393        document.body.setAttribute('data-swal2-queue-step', i);
1394
1395        sweetAlert(queue[i]).then(function (result) {
1396          if (typeof result.value !== 'undefined') {
1397            queueResult.push(result.value);
1398            step(i + 1, callback);
1399          } else {
1400            resetQueue();
1401            resolve({ dismiss: result.dismiss });
1402          }
1403        });
1404      } else {
1405        resetQueue();
1406        resolve({ value: queueResult });
1407      }
1408    })(0);
1409  });
1410};
1411
1412/*
1413 * Global function for getting the index of current popup in queue
1414 */
1415sweetAlert.getQueueStep = function () {
1416  return document.body.getAttribute('data-swal2-queue-step');
1417};
1418
1419/*
1420 * Global function for inserting a popup to the queue
1421 */
1422sweetAlert.insertQueueStep = function (step, index) {
1423  if (index && index < queue.length) {
1424    return queue.splice(index, 0, step);
1425  }
1426  return queue.push(step);
1427};
1428
1429/*
1430 * Global function for deleting a popup from the queue
1431 */
1432sweetAlert.deleteQueueStep = function (index) {
1433  if (typeof queue[index] !== 'undefined') {
1434    queue.splice(index, 1);
1435  }
1436};
1437
1438/*
1439 * Global function to close sweetAlert
1440 */
1441sweetAlert.close = sweetAlert.closePopup = sweetAlert.closeModal = sweetAlert.closeToast = function (onComplete) {
1442  var container = getContainer();
1443  var popup = getPopup();
1444  if (!popup) {
1445    return;
1446  }
1447  removeClass(popup, swalClasses.show);
1448  addClass(popup, swalClasses.hide);
1449  clearTimeout(popup.timeout);
1450
1451  if (!isToast()) {
1452    resetPrevState();
1453    window.onkeydown = previousWindowKeyDown;
1454    windowOnkeydownOverridden = false;
1455  }
1456
1457  var removePopupAndResetState = function removePopupAndResetState() {
1458    if (container.parentNode) {
1459      container.parentNode.removeChild(container);
1460    }
1461    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['no-backdrop'], swalClasses['has-input'], swalClasses['toast-shown']]);
1462
1463    if (isModal()) {
1464      undoScrollbar();
1465      undoIOSfix();
1466    }
1467  };
1468
1469  // If animation is supported, animate
1470  if (animationEndEvent && !hasClass(popup, swalClasses.noanimation)) {
1471    popup.addEventListener(animationEndEvent, function swalCloseEventFinished() {
1472      popup.removeEventListener(animationEndEvent, swalCloseEventFinished);
1473      if (hasClass(popup, swalClasses.hide)) {
1474        removePopupAndResetState();
1475      }
1476    });
1477  } else {
1478    // Otherwise, remove immediately
1479    removePopupAndResetState();
1480  }
1481  if (onComplete !== null && typeof onComplete === 'function') {
1482    setTimeout(function () {
1483      onComplete(popup);
1484    });
1485  }
1486};
1487
1488/*
1489 * Global function to click 'Confirm' button
1490 */
1491sweetAlert.clickConfirm = function () {
1492  return getConfirmButton().click();
1493};
1494
1495/*
1496 * Global function to click 'Cancel' button
1497 */
1498sweetAlert.clickCancel = function () {
1499  return getCancelButton().click();
1500};
1501
1502/**
1503 * Show spinner instead of Confirm button and disable Cancel button
1504 */
1505sweetAlert.showLoading = sweetAlert.enableLoading = function () {
1506  var popup = getPopup();
1507  if (!popup) {
1508    sweetAlert('');
1509  }
1510  popup = getPopup();
1511  var actions = getActions();
1512  var confirmButton = getConfirmButton();
1513  var cancelButton = getCancelButton();
1514
1515  show(actions);
1516  show(confirmButton);
1517  addClass([popup, actions], swalClasses.loading);
1518  confirmButton.disabled = true;
1519  cancelButton.disabled = true;
1520
1521  popup.setAttribute('data-loading', true);
1522  popup.setAttribute('aria-busy', true);
1523  popup.focus();
1524};
1525
1526/**
1527 * Is valid parameter
1528 * @param {String} paramName
1529 */
1530sweetAlert.isValidParameter = function (paramName) {
1531  return defaultParams.hasOwnProperty(paramName) || paramName === 'extraParams';
1532};
1533
1534/**
1535 * Is deprecated parameter
1536 * @param {String} paramName
1537 */
1538sweetAlert.isDeprecatedParameter = function (paramName) {
1539  return deprecatedParams.indexOf(paramName) !== -1;
1540};
1541
1542/**
1543 * Set default params for each popup
1544 * @param {Object} userParams
1545 */
1546sweetAlert.setDefaults = function (userParams) {
1547  if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {
1548    return error('the argument for setDefaults() is required and has to be a object');
1549  }
1550
1551  showWarningsForParams(userParams);
1552
1553  // assign valid params from userParams to popupParams
1554  for (var param in userParams) {
1555    if (sweetAlert.isValidParameter(param)) {
1556      popupParams[param] = userParams[param];
1557    }
1558  }
1559};
1560
1561/**
1562 * Reset default params for each popup
1563 */
1564sweetAlert.resetDefaults = function () {
1565  popupParams = _extends({}, defaultParams);
1566};
1567
1568/**
1569 * Adapt a legacy inputValidator for use with expectRejections=false
1570 */
1571sweetAlert.adaptInputValidator = function (legacyValidator) {
1572  return function adaptedInputValidator(inputValue, extraParams) {
1573    return legacyValidator.call(this, inputValue, extraParams).then(function () {
1574      return undefined;
1575    }, function (validationError) {
1576      return validationError;
1577    });
1578  };
1579};
1580
1581sweetAlert.DismissReason = Object.freeze({
1582  cancel: 'cancel',
1583  backdrop: 'overlay',
1584  close: 'close',
1585  esc: 'esc',
1586  timer: 'timer'
1587});
1588
1589sweetAlert.noop = function () {};
1590
1591sweetAlert.version = '7.12.15';
1592
1593sweetAlert.default = sweetAlert;
1594
1595/**
1596 * Set default params if `window._swalDefaults` is an object
1597 */
1598if (typeof window !== 'undefined' && _typeof(window._swalDefaults) === 'object') {
1599  sweetAlert.setDefaults(window._swalDefaults);
1600}
1601
1602// Remember state in cases where opening and handling a modal will fiddle with it.
1603var states = {
1604  previousActiveElement: null,
1605  previousBodyPadding: null
1606
1607  // Detect Node env
1608};var isNodeEnv = function isNodeEnv() {
1609  return typeof window === 'undefined' || typeof document === 'undefined';
1610};
1611
1612/*
1613 * Add modal + backdrop to DOM
1614 */
1615var init = function init(params) {
1616  // Clean up the old popup if it exists
1617  var c = getContainer();
1618  if (c) {
1619    c.parentNode.removeChild(c);
1620    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['has-input'], swalClasses['toast-shown']]);
1621  }
1622
1623  if (isNodeEnv()) {
1624    error('SweetAlert2 requires document to initialize');
1625    return;
1626  }
1627
1628  var container = document.createElement('div');
1629  container.className = swalClasses.container;
1630  container.innerHTML = sweetHTML;
1631
1632  var targetElement = typeof params.target === 'string' ? document.querySelector(params.target) : params.target;
1633  targetElement.appendChild(container);
1634
1635  var popup = getPopup();
1636  var content = getContent();
1637  var input = getChildByClass(content, swalClasses.input);
1638  var file = getChildByClass(content, swalClasses.file);
1639  var range = content.querySelector('.' + swalClasses.range + ' input');
1640  var rangeOutput = content.querySelector('.' + swalClasses.range + ' output');
1641  var select = getChildByClass(content, swalClasses.select);
1642  var checkbox = content.querySelector('.' + swalClasses.checkbox + ' input');
1643  var textarea = getChildByClass(content, swalClasses.textarea);
1644
1645  // a11y
1646  popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
1647  popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');
1648  if (!params.toast) {
1649    popup.setAttribute('aria-modal', 'true');
1650  }
1651
1652  var resetValidationError = function resetValidationError() {
1653    sweetAlert.isVisible() && sweetAlert.resetValidationError();
1654  };
1655
1656  input.oninput = resetValidationError;
1657  file.onchange = resetValidationError;
1658  select.onchange = resetValidationError;
1659  checkbox.onchange = resetValidationError;
1660  textarea.oninput = resetValidationError;
1661
1662  range.oninput = function () {
1663    resetValidationError();
1664    rangeOutput.value = range.value;
1665  };
1666
1667  range.onchange = function () {
1668    resetValidationError();
1669    range.nextSibling.value = range.value;
1670  };
1671
1672  return popup;
1673};
1674
1675/*
1676 * Manipulate DOM
1677 */
1678
1679var 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 + '">?</div>\n     <div class="' + swalClasses.icon + ' ' + iconTypes.warning + '">!</div>\n     <div class="' + swalClasses.icon + ' ' + iconTypes.info + '">i</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, '');
1680
1681var getContainer = function getContainer() {
1682  return document.body.querySelector('.' + swalClasses.container);
1683};
1684
1685var getPopup = function getPopup() {
1686  return getContainer() ? getContainer().querySelector('.' + swalClasses.popup) : null;
1687};
1688
1689var getIcons = function getIcons() {
1690  var popup = getPopup();
1691  return popup.querySelectorAll('.' + swalClasses.icon);
1692};
1693
1694var elementByClass = function elementByClass(className) {
1695  return getContainer() ? getContainer().querySelector('.' + className) : null;
1696};
1697
1698var getTitle = function getTitle() {
1699  return elementByClass(swalClasses.title);
1700};
1701
1702var getContent = function getContent() {
1703  return elementByClass(swalClasses.content);
1704};
1705
1706var getImage = function getImage() {
1707  return elementByClass(swalClasses.image);
1708};
1709
1710var getProgressSteps = function getProgressSteps() {
1711  return elementByClass(swalClasses.progresssteps);
1712};
1713
1714var getValidationError = function getValidationError() {
1715  return elementByClass(swalClasses.validationerror);
1716};
1717
1718var getConfirmButton = function getConfirmButton() {
1719  return elementByClass(swalClasses.confirm);
1720};
1721
1722var getCancelButton = function getCancelButton() {
1723  return elementByClass(swalClasses.cancel);
1724};
1725
1726var getButtonsWrapper = function getButtonsWrapper() {
1727  warnOnce('swal.getButtonsWrapper() is deprecated and will be removed in the next major release, use swal.getActions() instead');
1728  return elementByClass(swalClasses.actions);
1729};
1730
1731var getActions = function getActions() {
1732  return elementByClass(swalClasses.actions);
1733};
1734
1735var getFooter = function getFooter() {
1736  return elementByClass(swalClasses.footer);
1737};
1738
1739var getCloseButton = function getCloseButton() {
1740  return elementByClass(swalClasses.close);
1741};
1742
1743var getFocusableElements = function getFocusableElements() {
1744  var focusableElementsWithTabindex = Array.prototype.slice.call(getPopup().querySelectorAll('[tabindex]:not
1744([tabindex="-1"]):not([tabindex="0"])'))
1745  // sort according to tabindex
1746  .sort(function (a, b) {
1747    a = parseInt(a.getAttribute('tabindex'));
1748    b = parseInt(b.getAttribute('tabindex'));
1749    if (a > b) {
1750      return 1;
1751    } else if (a < b) {
1752      return -1;
1753    }
1754    return 0;
1755  });
1756
1757  var otherFocusableElements = Array.prototype.slice.call(getPopup().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, [tabindex="0"]'));
1758
1759  return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements));
1760};
1761
1762var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
1763  if (!param) {
1764    return hide(target);
1765  }
1766
1767  if ((typeof param === 'undefined' ? 'undefined' : _typeof(param)) === 'object') {
1768    target.innerHTML = '';
1769    if (0 in param) {
1770      for (var i = 0; i in param; i++) {
1771        target.appendChild(param[i].cloneNode(true));
1772      }
1773    } else {
1774      target.appendChild(param.cloneNode(true));
1775    }
1776  } else if (param) {
1777    target.innerHTML = param;
1778  } else {}
1779  show(target);
1780};
1781
1782var isModal = function isModal() {
1783  return !document.body.classList.contains(swalClasses['toast-shown']);
1784};
1785
1786var isToast = function isToast() {
1787  return document.body.classList.contains(swalClasses['toast-shown']);
1788};
1789
1790var isLoading = function isLoading() {
1791  return getPopup().hasAttribute('data-loading');
1792};
1793
1794var hasClass = function hasClass(elem, className) {
1795  if (elem.classList) {
1796    return elem.classList.contains(className);
1797  }
1798  return false;
1799};
1800
1801var focusInput = function focusInput(input) {
1802  input.focus();
1803
1804  // place cursor at end of text in text input
1805  if (input.type !== 'file') {
1806    // http://stackoverflow.com/a/2345915/1331425
1807    var val = input.value;
1808    input.value = '';
1809    input.value = val;
1810  }
1811};
1812
1813var addOrRemoveClass = function addOrRemoveClass(target, classList, add) {
1814  if (!target || !classList) {
1815    return;
1816  }
1817  if (typeof classList === 'string') {
1818    classList = classList.split(/\s+/).filter(Boolean);
1819  }
1820  classList.forEach(function (className) {
1821    if (target.forEach) {
1822      target.forEach(function (elem) {
1823        add ? elem.classList.add(className) : elem.classList.remove(className);
1824      });
1825    } else {
1826      add ? target.classList.add(className) : target.classList.remove(className);
1827    }
1828  });
1829};
1830
1831var addClass = function addClass(target, classList) {
1832  addOrRemoveClass(target, classList, true);
1833};
1834
1835var removeClass = function removeClass(target, classList) {
1836  addOrRemoveClass(target, classList, false);
1837};
1838
1839var getChildByClass = function getChildByClass(elem, className) {
1840  for (var i = 0; i < elem.childNodes.length; i++) {
1841    if (hasClass(elem.childNodes[i], className)) {
1842      return elem.childNodes[i];
1843    }
1844  }
1845};
1846
1847var show = function show(elem) {
1848  elem.style.opacity = '';
1849  elem.style.display = elem.id === swalClasses.content ? 'block' : 'flex';
1850};
1851
1852var hide = function hide(elem) {
1853  elem.style.opacity = '';
1854  elem.style.display = 'none';
1855};
1856
1857var empty = function empty(elem) {
1858  while (elem.firstChild) {
1859    elem.removeChild(elem.firstChild);
1860  }
1861};
1862
1863// borrowed from jquery $(elem).is(':visible') implementation
1864var isVisible = function isVisible(elem) {
1865  return elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
1866};
1867
1868var removeStyleProperty = function removeStyleProperty(elem, property) {
1869  if (elem.style.removeProperty) {
1870    elem.style.removeProperty(property);
1871  } else {
1872    elem.style.removeAttribute(property);
1873  }
1874};
1875
1876var animationEndEvent = function () {
1877  // Prevent run in Node env
1878  if (isNodeEnv()) {
1879    return false;
1880  }
1881
1882  var testEl = document.createElement('div');
1883  var transEndEventNames = {
1884    'WebkitAnimation': 'webkitAnimationEnd',
1885    'OAnimation': 'oAnimationEnd oanimationend',
1886    'animation': 'animationend'
1887  };
1888  for (var i in transEndEventNames) {
1889    if (transEndEventNames.hasOwnProperty(i) && typeof testEl.style[i] !== 'undefined') {
1890      return transEndEventNames[i];
1891    }
1892  }
1893
1894  return false;
1895}();
1896
1897// Reset previous window keydown handler and focued element
1898var resetPrevState = function resetPrevState() {
1899  if (states.previousActiveElement && states.previousActiveElement.focus) {
1900    var x = window.scrollX;
1901    var y = window.scrollY;
1902    states.previousActiveElement.focus();
1903    if (typeof x !== 'undefined' && typeof y !== 'undefined') {
1904      // IE doesn't have scrollX/scrollY support
1905      window.scrollTo(x, y);
1906    }
1907  }
1908};
1909
1910// Measure width of scrollbar
1911// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286
1912var measureScrollbar = function measureScrollbar() {
1913  var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
1914  if (supportsTouch) {
1915    return 0;
1916  }
1917  var scrollDiv = document.createElement('div');
1918  scrollDiv.style.width = '50px';
1919  scrollDiv.style.height = '50px';
1920  scrollDiv.style.overflow = 'scroll';
1921  document.body.appendChild(scrollDiv);
1922  var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
1923  document.body.removeChild(scrollDiv);
1924  return scrollbarWidth;
1925};
1926
1927/**
1928 * Inject a string of CSS into the page header
1929 *
1930 * @param {String} css
1931 */
1932var injectCSS = function injectCSS() {
1933  var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
1934
1935  // Prevent run in Node env
1936  if (isNodeEnv()) {
1937    return false;
1938  }
1939
1940  var head = document.head || document.getElementsByTagName('head')[0];
1941  var style = document.createElement('style');
1942  style.type = 'text/css';
1943  head.appendChild(style);
1944
1945  if (style.styleSheet) {
1946    style.styleSheet.cssText = css;
1947  } else {
1948    style.appendChild(document.createTextNode(css));
1949  }
1950};
1951
1952injectCSS(styles);
1953
1954return sweetAlert;
1955
1956})));
1957if (typeof window !== 'undefined' && window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;

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.