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