PageSourceSearch

https://ois2.tlu.ee/sweetalert/sweetalert2.all.js

js tlu.ee collected 2026-10-01 10:25:57 UTC 104,198 bytes, 2,062 lines download raw bytes

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