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