PageSourceSearch

https://www.photoneo.com/wp-content/themes/photoneo/scripts/bundle.js?ver=1791034239

js photoneo.com collected 2026-10-03 20:30:38 UTC 171,116 bytes, 3,715 lines download raw bytes

1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
vendor: 14,690 bytes, line 2
2!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r=n(1),a=(o(r),n(6)),u=o(a),c=n(7),s=o(c),f=n(8),d=o(f),l=n(9),p=o(l),m=n(10),b=o(m),v=n(11),y=o(v),g=n(14),h=o(g),w=[],k=!1,x={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded",throttleDelay:99,debounceDelay:50,disableMutationObserver:!1},j=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},S=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\n      aos: MutationObserver is not supported on this browser,\n      code mutations observing has been disabled.\n      You may have to call "refreshHard()" by yourself.\n    '),x.disableMutationObserver=!0),document.querySelector("body").setAttribute("data-aos-easing",x.easing),document.querySelector("body").setAttribute("data-aos-duration",x.duration),document.querySelector("body").setAttribute("data-aos-delay",x.delay),"DOMContentLoaded"===x.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?j(!0):"load"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener("resize",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener("orientationchange",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready("[data-aos]",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if("function"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S="maxWait"in n,y=S?x(u(n.maxWait)||0,t):y,_="trailing"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(s);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return f;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s="Expected a function",f=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S="maxWait"in n,y=S?k(a(n.maxWait)||0,t):y,_="trailing"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==f}function a(e){if("number"==typeof e)return e;if(r(e))return s;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",s=NaN,f="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;t<e.length;t+=1){if(o=e[t],o.dataset&&o.dataset.aos)return!0;if(i=o.children&&n(o.children))return!0}return!1}function o(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function i(){return!!o()}function r(e,t){var n=window.document,i=o(),r=new i(a);u=t,r.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}function a(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),o=Array.prototype.slice.call(e.removedNodes),i=t.concat(o);if(n(i))return u()})}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){};t.default={isSupported:i,ready:r}},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,u=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,c=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,s=function(){function e(){n(this,e)}return i(e,[{key:"phone",value:function(){var e=o();return!(!r.test(e)&&!a.test(e.substr(0,4)))}},{key:"mobile",value:function(){var e=o();return!(!u.test(e)&&!c.test(e.substr(0,4)))}},{key:"tablet",value:function(){return this.mobile()&&!this.phone()}}]),e}();t.default=new s},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e,t,n){var o=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});
2
3},{}],2:[function(require,module,exports){
4(function (global){(function (){
vendor: 19,142 bytes, lines 5-501
5
6// ------------------------------------------
7// Rellax.js
8// Buttery smooth parallax library
9// Copyright (c) 2016 Moe Amaya (@moeamaya)
10// MIT license
11//
12// Thanks to Paraxify.js and Jaime Cabllero
13// for parallax concepts
14// ------------------------------------------
15
16(function (root, factory) {
17  if (typeof define === 'function' && define.amd) {
18    // AMD. Register as an anonymous module.
19    define([], factory);
20  } else if (typeof module === 'object' && module.exports) {
21    // Node. Does not work with strict CommonJS, but
22    // only CommonJS-like environments that support module.exports,
23    // like Node.
24    module.exports = factory();
25  } else {
26    // Browser globals (root is window)
27    root.Rellax = factory();
28  }
29}(typeof window !== "undefined" ? window : global, function () {
30  var Rellax = function(el, options){
31    "use strict";
32
33    var self = Object.create(Rellax.prototype);
34
35    var posY = 0;
36    var screenY = 0;
37    var posX = 0;
38    var screenX = 0;
39    var blocks = [];
40    var pause = true;
41
42    // check what requestAnimationFrame to use, and if
43    // it's not supported, use the onscroll event
44    var loop = window.requestAnimationFrame ||
45      window.webkitRequestAnimationFrame ||
46      window.mozRequestAnimationFrame ||
47      window.msRequestAnimationFrame ||
48      window.oRequestAnimationFrame ||
49      function(callback){ return setTimeout(callback, 1000 / 60); };
50
51    // store the id for later use
52    var loopId = null;
53
54    // Test via a getter in the options object to see if the passive property is accessed
55    var supportsPassive = false;
56    try {
57      var opts = Object.defineProperty({}, 'passive', {
58        get: function() {
59          supportsPassive = true;
60        }
61      });
62      window.addEventListener("testPassive", null, opts);
63      window.removeEventListener("testPassive", null, opts);
64    } catch (e) {}
65
66    // check what cancelAnimation method to use
67    var clearLoop = window.cancelAnimationFrame || window.mozCancelAnimationFrame || clearTimeout;
68
69    // check which transform property to use
70    var transformProp = window.transformProp || (function(){
71        var testEl = document.createElement('div');
72        if (testEl.style.transform === null) {
73          var vendors = ['Webkit', 'Moz', 'ms'];
74          for (var vendor in vendors) {
75            if (testEl.style[ vendors[vendor] + 'Transform' ] !== undefined) {
76              return vendors[vendor] + 'Transform';
77            }
78          }
79        }
80        return 'transform';
81      })();
82
83    // Default Settings
84    self.options = {
85      speed: -2,
86	    verticalSpeed: null,
87	    horizontalSpeed: null,
88      breakpoints: [576, 768, 1201],
89      center: false,
90      wrapper: null,
91      relativeToWrapper: false,
92      round: true,
93      vertical: true,
94      horizontal: false,
95      verticalScrollAxis: "y",
96      horizontalScrollAxis: "x",
97      callback: function() {},
98    };
99
100    // User defined options (might have more in the future)
101    if (options){
102      Object.keys(options).forEach(function(key){
103        self.options[key] = options[key];
104      });
105    }
106
107    function validateCustomBreakpoints () {
108      if (self.options.breakpoints.length === 3 && Array.isArray(self.options.breakpoints)) {
109        var isAscending = true;
110        var isNumerical = true;
111        var lastVal;
112        self.options.breakpoints.forEach(function (i) {
113          if (typeof i !== 'number') isNumerical = false;
114          if (lastVal !== null) {
115            if (i < lastVal) isAscending = false;
116          }
117          lastVal = i;
118        });
119        if (isAscending && isNumerical) return;
120      }
121      // revert defaults if set incorrectly
122      self.options.breakpoints = [576, 768, 1201];
123      console.warn("Rellax: You must pass an array of 3 numbers in ascending order to the breakpoints option. Defaults reverted");
124    }
125
126    if (options && options.breakpoints) {
127      validateCustomBreakpoints();
128    }
129
130    // By default, rellax class
131    if (!el) {
132      el = '.rellax';
133    }
134
135    // check if el is a className or a node
136    var elements = typeof el === 'string' ? document.querySelectorAll(el) : [el];
137
138    // Now query selector
139    if (elements.length > 0) {
140      self.elems = elements;
141    }
142
143    // The elements don't exist
144    else {
145      console.warn("Rellax: The elements you're trying to select don't exist.");
146      return;
147    }
148
149    // Has a wrapper and it exists
150    if (self.options.wrapper) {
151      if (!self.options.wrapper.nodeType) {
152        var wrapper = document.querySelector(self.options.wrapper);
153
154        if (wrapper) {
155          self.options.wrapper = wrapper;
156        } else {
157          console.warn("Rellax: The wrapper you're trying to use doesn't exist.");
158          return;
159        }
160      }
161    }
162
163    // set a placeholder for the current breakpoint
164    var currentBreakpoint;
165
166    // helper to determine current breakpoint
167    var getCurrentBreakpoint = function (w) {
168      var bp = self.options.breakpoints;
169      if (w < bp[0]) return 'xs';
170      if (w >= bp[0] && w < bp[1]) return 'sm';
171      if (w >= bp[1] && w < bp[2]) return 'md';
172      return 'lg';
173    };
174
175    // Get and cache initial position of all elements
176    var cacheBlocks = function() {
177      for (var i = 0; i < self.elems.length; i++){
178        var block = createBlock(self.elems[i]);
179        blocks.push(block);
180      }
181    };
182
183
184    // Let's kick this script off
185    // Build array for cached element values
186    var init = function() {
187      for (var i = 0; i < blocks.length; i++){
188        self.elems[i].style.cssText = blocks[i].style;
189      }
190
191      blocks = [];
192
193      screenY = window.innerHeight;
194      screenX = window.innerWidth;
195      currentBreakpoint = getCurrentBreakpoint(screenX);
196
197      setPosition();
198
199      cacheBlocks();
200
201      animate();
202
203      // If paused, unpause and set listener for window resizing events
204      if (pause) {
205        window.addEventListener('resize', init);
206        pause = false;
207        // Start the loop
208        update();
209      }
210    };
211
212    // We want to cache the parallax blocks'
213    // values: base, top, height, speed
214    // el: is dom object, return: el cache values
215    var createBlock = function(el) {
216      var dataPercentage = el.getAttribute( 'data-rellax-percentage' );
217      var dataSpeed = el.getAttribute( 'data-rellax-speed' );
218      var dataXsSpeed = el.getAttribute( 'data-rellax-xs-speed' );
219      var dataMobileSpeed = el.getAttribute( 'data-rellax-mobile-speed' );
220      var dataTabletSpeed = el.getAttribute( 'data-rellax-tablet-speed' );
221      var dataDesktopSpeed = el.getAttribute( 'data-rellax-desktop-speed' );
222      var dataVerticalSpeed = el.getAttribute('data-rellax-vertical-speed');
223      var dataHorizontalSpeed = el.getAttribute('data-rellax-horizontal-speed');
224      var dataVericalScrollAxis = el.getAttribute('data-rellax-vertical-scroll-axis');
225      var dataHorizontalScrollAxis = el.getAttribute('data-rellax-horizontal-scroll-axis');
226      var dataZindex = el.getAttribute( 'data-rellax-zindex' ) || 0;
227      var dataMin = el.getAttribute( 'data-rellax-min' );
228      var dataMax = el.getAttribute( 'data-rellax-max' );
229      var dataMinX = el.getAttribute('data-rellax-min-x');
230      var dataMaxX = el.getAttribute('data-rellax-max-x');
231      var dataMinY = el.getAttribute('data-rellax-min-y');
232      var dataMaxY = el.getAttribute('data-rellax-max-y');
233      var mapBreakpoints;
234      var breakpoints = true;
235
236      if (!dataXsSpeed && !dataMobileSpeed && !dataTabletSpeed && !dataDesktopSpeed) {
237        breakpoints = false;
238      } else {
239        mapBreakpoints = {
240          'xs': dataXsSpeed,
241          'sm': dataMobileSpeed,
242          'md': dataTabletSpeed,
243          'lg': dataDesktopSpeed
244        };
245      }
246
247      // initializing at scrollY = 0 (top of browser), scrollX = 0 (left of browser)
248      // ensures elements are positioned based on HTML layout.
249      //
250      // If the element has the percentage attribute, the posY and posX needs to be
251      // the current scroll position's value, so that the elements are still positioned based on HTML layout
252      var wrapperPosY = self.options.wrapper ? self.options.wrapper.scrollTop : (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
253      // If the option relativeToWrapper is true, use the wrappers offset to top, subtracted from the current page scroll.
254      if (self.options.relativeToWrapper) {
255        var scrollPosY = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
256        wrapperPosY = scrollPosY - self.options.wrapper.offsetTop;
257      }
258      var posY = self.options.vertical ? ( dataPercentage || self.options.center ? wrapperPosY : 0 ) : 0;
259      var posX = self.options.horizontal ? ( dataPercentage || self.options.center ? self.options.wrapper ? self.options.wrapper.scrollLeft : (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft) : 0 ) : 0;
260
261      var blockTop = posY + el.getBoundingClientRect().top;
262      var blockHeight = el.clientHeight || el.offsetHeight || el.scrollHeight;
263
264      var blockLeft = posX + el.getBoundingClientRect().left;
265      var blockWidth = el.clientWidth || el.offsetWidth || el.scrollWidth;
266
267      // apparently parallax equation everyone uses
268      var percentageY = dataPercentage ? dataPercentage : (posY - blockTop + screenY) / (blockHeight + screenY);
269      var percentageX = dataPercentage ? dataPercentage : (posX - blockLeft + screenX) / (blockWidth + screenX);
270      if(self.options.center){ percentageX = 0.5; percentageY = 0.5; }
271
272      // Optional individual block speed as data attr, otherwise global speed
273      var speed = (breakpoints && mapBreakpoints[currentBreakpoint] !== null) ? Number(mapBreakpoints[currentBreakpoint]) : (dataSpeed ? dataSpeed : self.options.speed);
274      var verticalSpeed = dataVerticalSpeed ? dataVerticalSpeed : self.options.verticalSpeed;
275      var horizontalSpeed = dataHorizontalSpeed ? dataHorizontalSpeed : self.options.horizontalSpeed;
276
277      // Optional individual block movement axis direction as data attr, otherwise gobal movement direction
278      var verticalScrollAxis = dataVericalScrollAxis ? dataVericalScrollAxis : self.options.verticalScrollAxis;
279      var horizontalScrollAxis = dataHorizontalScrollAxis ? dataHorizontalScrollAxis : self.options.horizontalScrollAxis;
280
281      var bases = updatePosition(percentageX, percentageY, speed, verticalSpeed, horizontalSpeed);
282
283      // ~~Store non-translate3d transforms~~
284      // Store inline styles and extract transforms
285      var style = el.style.cssText;
286      var transform = '';
287
288      // Check if there's an inline styled transform
289      var searchResult = /transform\s*:/i.exec(style);
290      if (searchResult) {
291        // Get the index of the transform
292        var index = searchResult.index;
293
294        // Trim the style to the transform point and get the following semi-colon index
295        var trimmedStyle = style.slice(index);
296        var delimiter = trimmedStyle.indexOf(';');
297
298        // Remove "transform" string and save the attribute
299        if (delimiter) {
300          transform = " " + trimmedStyle.slice(11, delimiter).replace(/\s/g,'');
301        } else {
302          transform = " " + trimmedStyle.slice(11).replace(/\s/g,'');
303        }
304      }
305
306      return {
307        baseX: bases.x,
308        baseY: bases.y,
309        top: blockTop,
310        left: blockLeft,
311        height: blockHeight,
312        width: blockWidth,
313        speed: speed,
314        verticalSpeed: verticalSpeed,
315        horizontalSpeed: horizontalSpeed,
316        verticalScrollAxis: verticalScrollAxis,
317        horizontalScrollAxis: horizontalScrollAxis,
318        style: style,
319        transform: transform,
320        zindex: dataZindex,
321        min: dataMin,
322        max: dataMax,
323        minX: dataMinX,
324        maxX: dataMaxX,
325        minY: dataMinY,
326        maxY: dataMaxY
327      };
328    };
329
330    // set scroll position (posY, posX)
331    // side effect method is not ideal, but okay for now
332    // returns true if the scroll changed, false if nothing happened
333    var setPosition = function() {
334      var oldY = posY;
335      var oldX = posX;
336
337      posY = self.options.wrapper ? self.options.wrapper.scrollTop : (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;
338      posX = self.options.wrapper ? self.options.wrapper.scrollLeft : (document.documentElement || document.body.parentNode || document.body).scrollLeft || window.pageXOffset;
339      // If option relativeToWrapper is true, use relative wrapper value instead.
340      if (self.options.relativeToWrapper) {
341        var scrollPosY = (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;
342        posY = scrollPosY - self.options.wrapper.offsetTop;
343      }
344
345
346      if (oldY != posY && self.options.vertical) {
347        // scroll changed, return true
348        return true;
349      }
350
351      if (oldX != posX && self.options.horizontal) {
352        // scroll changed, return true
353        return true;
354      }
355
356      // scroll did not change
357      return false;
358    };
359
360    // Ahh a pure function, gets new transform value
361    // based on scrollPosition and speed
362    // Allow for decimal pixel values
363    var updatePosition = function(percentageX, percentageY, speed, verticalSpeed, horizontalSpeed) {
364      var result = {};
365      var valueX = ((horizontalSpeed ? horizontalSpeed : speed) * (100 * (1 - percentageX)));
366      var valueY = ((verticalSpeed ? verticalSpeed : speed) * (100 * (1 - percentageY)));
367
368      result.x = self.options.round ? Math.round(valueX) : Math.round(valueX * 100) / 100;
369      result.y = self.options.round ? Math.round(valueY) : Math.round(valueY * 100) / 100;
370
371      return result;
372    };
373
374    // Remove event listeners and loop again
375    var deferredUpdate = function() {
376      window.removeEventListener('resize', deferredUpdate);
377      window.removeEventListener('orientationchange', deferredUpdate);
378      (self.options.wrapper ? self.options.wrapper : window).removeEventListener('scroll', deferredUpdate);
379      (self.options.wrapper ? self.options.wrapper : document).removeEventListener('touchmove', deferredUpdate);
380
381      // loop again
382      loopId = loop(update);
383    };
384
385    // Loop
386    var update = function() {
387      if (setPosition() && pause === false) {
388        animate();
389
390        // loop again
391        loopId = loop(update);
392      } else {
393        loopId = null;
394
395        // Don't animate until we get a position updating event
396        window.addEventListener('resize', deferredUpdate);
397        window.addEventListener('orientationchange', deferredUpdate);
398        (self.options.wrapper ? self.options.wrapper : window).addEventListener('scroll', deferredUpdate, supportsPassive ? { passive: true } : false);
399        (self.options.wrapper ? self.options.wrapper : document).addEventListener('touchmove', deferredUpdate, supportsPassive ? { passive: true } : false);
400      }
401    };
402
403    // Transform3d on parallax element
404    var animate = function() {
405      var positions;
406      for (var i = 0; i < self.elems.length; i++){
407        // Determine relevant movement directions
408        var verticalScrollAxis = blocks[i].verticalScrollAxis.toLowerCase();
409        var horizontalScrollAxis = blocks[i].horizontalScrollAxis.toLowerCase();
410        var verticalScrollX = verticalScrollAxis.indexOf("x") != -1 ? posY : 0;
411        var verticalScrollY = verticalScrollAxis.indexOf("y") != -1 ? posY : 0;
412        var horizontalScrollX = horizontalScrollAxis.indexOf("x") != -1 ? posX : 0;
413        var horizontalScrollY = horizontalScrollAxis.indexOf("y") != -1 ? posX : 0;
414
415        var percentageY = ((verticalScrollY + horizontalScrollY - blocks[i].top + screenY) / (blocks[i].height + screenY));
416        var percentageX = ((verticalScrollX + horizontalScrollX - blocks[i].left + screenX) / (blocks[i].width + screenX));
417
418        // Subtracting initialize value, so element stays in same spot as HTML
419        positions = updatePosition(percentageX, percentageY, blocks[i].speed, blocks[i].verticalSpeed, blocks[i].horizontalSpeed);
420        var positionY = positions.y - blocks[i].baseY;
421        var positionX = positions.x - blocks[i].baseX;
422
423        // The next two "if" blocks go like this:
424        // Check if a limit is defined (first "min", then "max");
425        // Check if we need to change the Y or the X
426        // (Currently working only if just one of the axes is enabled)
427        // Then, check if the new position is inside the allowed limit
428        // If so, use new position. If not, set position to limit.
429
430        // Check if a min limit is defined
431        if (blocks[i].min !== null) {
432          if (self.options.vertical && !self.options.horizontal) {
433            positionY = positionY <= blocks[i].min ? blocks[i].min : positionY;
434          }
435          if (self.options.horizontal && !self.options.vertical) {
436            positionX = positionX <= blocks[i].min ? blocks[i].min : positionX;
437          }
438        }
439
440        // Check if directional min limits are defined
441        if (blocks[i].minY != null) {
442            positionY = positionY <= blocks[i].minY ? blocks[i].minY : positionY;
443        }
444        if (blocks[i].minX != null) {
445            positionX = positionX <= blocks[i].minX ? blocks[i].minX : positionX;
446        }
447
448        // Check if a max limit is defined
449        if (blocks[i].max !== null) {
450          if (self.options.vertical && !self.options.horizontal) {
451            positionY = positionY >= blocks[i].max ? blocks[i].max : positionY;
452          }
453          if (self.options.horizontal && !self.options.vertical) {
454            positionX = positionX >= blocks[i].max ? blocks[i].max : positionX;
455          }
456        }
457
458        // Check if directional max limits are defined
459        if (blocks[i].maxY != null) {
460            positionY = positionY >= blocks[i].maxY ? blocks[i].maxY : positionY;
461        }
462        if (blocks[i].maxX != null) {
463            positionX = positionX >= blocks[i].maxX ? blocks[i].maxX : positionX;
464        }
465
466        var zindex = blocks[i].zindex;
467
468        // Move that element
469        // (Set the new translation and append initial inline transforms.)
470        var translate = 'translate3d(' + (self.options.horizontal ? positionX : '0') + 'px,' + (self.options.vertical ? positionY : '0') + 'px,' + zindex + 'px) ' + blocks[i].transform;
471        self.elems[i].style[transformProp] = translate;
472      }
473      self.options.callback(positions);
474    };
475
476    self.destroy = function() {
477      for (var i = 0; i < self.elems.length; i++){
478        self.elems[i].style.cssText = blocks[i].style;
479      }
480
481      // Remove resize event listener if not pause, and pause
482      if (!pause) {
483        window.removeEventListener('resize', init);
484        pause = true;
485      }
486
487      // Clear the animation loop to prevent possible memory leak
488      clearLoop(loopId);
489      loopId = null;
490    };
491
492    // Init
493    init();
494
495    // Allow to recalculate the initial values whenever we want
496    self.refresh = init;
497
498    return self;
499  };
500  return Rellax;
501}));
502
503}
vendor: 5,795 bytes, lines 503-706
503).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
504},{}],3:[function(require,module,exports){
505/*!
506* sweetalert2 v9.17.2
507* Released under the MIT License.
508*/
509(function (global, factory) {
510  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
511  typeof define === 'function' && define.amd ? define(factory) :
512  (global = global || self, global.Sweetalert2 = factory());
513}(this, function () { 'use strict';
514
515  function _typeof(obj) {
516    "@babel/helpers - typeof";
517
518    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
519      _typeof = function (obj) {
520        return typeof obj;
521      };
522    } else {
523      _typeof = function (obj) {
524        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
525      };
526    }
527
528    return _typeof(obj);
529  }
530
531  function _classCallCheck(instance, Constructor) {
532    if (!(instance instanceof Constructor)) {
533      throw new TypeError("Cannot call a class as a function");
534    }
535  }
536
537  function _defineProperties(target, props) {
538    for (var i = 0; i < props.length; i++) {
539      var descriptor = props[i];
540      descriptor.enumerable = descriptor.enumerable || false;
541      descriptor.configurable = true;
542      if ("value" in descriptor) descriptor.writable = true;
543      Object.defineProperty(target, descriptor.key, descriptor);
544    }
545  }
546
547  function _createClass(Constructor, protoProps, staticProps) {
548    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
549    if (staticProps) _defineProperties(Constructor, staticProps);
550    return Constructor;
551  }
552
553  function _extends() {
554    _extends = Object.assign || function (target) {
555      for (var i = 1; i < arguments.length; i++) {
556        var source = arguments[i];
557
558        for (var key in source) {
559          if (Object.prototype.hasOwnProperty.call(source, key)) {
560            target[key] = source[key];
561          }
562        }
563      }
564
565      return target;
566    };
567
568    return _extends.apply(this, arguments);
569  }
570
571  function _inherits(subClass, superClass) {
572    if (typeof superClass !== "function" && superClass !== null) {
573      throw new TypeError("Super expression must either be null or a function");
574    }
575
576    subClass.prototype = Object.create(superClass && superClass.prototype, {
577      constructor: {
578        value: subClass,
579        writable: true,
580        configurable: true
581      }
582    });
583    if (superClass) _setPrototypeOf(subClass, superClass);
584  }
585
586  function _getPrototypeOf(o) {
587    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
588      return o.__proto__ || Object.getPrototypeOf(o);
589    };
590    return _getPrototypeOf(o);
591  }
592
593  function _setPrototypeOf(o, p) {
594    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
595      o.__proto__ = p;
596      return o;
597    };
598
599    return _setPrototypeOf(o, p);
600  }
601
602  function _isNativeReflectConstruct() {
603    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
604    if (Reflect.construct.sham) return false;
605    if (typeof Proxy === "function") return true;
606
607    try {
608      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
609      return true;
610    } catch (e) {
611      return false;
612    }
613  }
614
615  function _construct(Parent, args, Class) {
616    if (_isNativeReflectConstruct()) {
617      _construct = Reflect.construct;
618    } else {
619      _construct = function _construct(Parent, args, Class) {
620        var a = [null];
621        a.push.apply(a, args);
622        var Constructor = Function.bind.apply(Parent, a);
623        var instance = new Constructor();
624        if (Class) _setPrototypeOf(instance, Class.prototype);
625        return instance;
626      };
627    }
628
629    return _construct.apply(null, arguments);
630  }
631
632  function _assertThisInitialized(self) {
633    if (self === void 0) {
634      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
635    }
636
637    return self;
638  }
639
640  function _possibleConstructorReturn(self, call) {
641    if (call && (typeof call === "object" || typeof call === "function")) {
642      return call;
643    }
644
645    return _assertThisInitialized(self);
646  }
647
648  function _createSuper(Derived) {
649    var hasNativeReflectConstruct = _isNativeReflectConstruct();
650
651    return function _createSuperInternal() {
652      var Super = _getPrototypeOf(Derived),
653          result;
654
655      if (hasNativeReflectConstruct) {
656        var NewTarget = _getPrototypeOf(this).constructor;
657
658        result = Reflect.construct(Super, arguments, NewTarget);
659      } else {
660        result = Super.apply(this, arguments);
661      }
662
663      return _possibleConstructorReturn(this, result);
664    };
665  }
666
667  function _superPropBase(object, property) {
668    while (!Object.prototype.hasOwnProperty.call(object, property)) {
669      object = _getPrototypeOf(object);
670      if (object === null) break;
671    }
672
673    return object;
674  }
675
676  function _get(target, property, receiver) {
677    if (typeof Reflect !== "undefined" && Reflect.get) {
678      _get = Reflect.get;
679    } else {
680      _get = function _get(target, property, receiver) {
681        var base = _superPropBase(target, property);
682
683        if (!base) return;
684        var desc = Object.getOwnPropertyDescriptor(base, property);
685
686        if (desc.get) {
687          return desc.get.call(receiver);
688        }
689
690        return desc.value;
691      };
692    }
693
694    return _get(target, property, receiver || target);
695  }
696
697  var consolePrefix = 'SweetAlert2:';
698  /**
699   * Filter the unique values into a new array
700   * @param arr
701   */
702
703  var uniqueArray = function uniqueArray(arr) {
704    var result = [];
705
706    for (var i = 0; i < arr.length; i++) {
707      if (result.indexOf(arr[i]) === -1) {
708        result.push(arr[i]);
709      }
710    }
711
712    return result;
713  };
714  /**
715   * Capitalize the first letter of a string
716   * @param str
717   */
718
719  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
720    return str.charAt(0).toUpperCase() + str.slice(1);
721  };
722  /**
723   * Returns the array of object values (Object.values isn't supported in IE11)
724   * @param obj
725   */
726
727  var objectValues = function objectValues(obj) {
728    return Object.keys(obj).map(function (key) {
729      return obj[key];
730    });
731  };
732  /**
733   * Convert NodeList to Array
734   * @param nodeList
735   */
736
737  var toArray = function toArray(nodeList) {
738    return Array.prototype.slice.call(nodeList);
739  };
740  /**
741   * Standardise console warnings
742   * @param message
743   */
744
745  var warn = function warn(message) {
746    console.warn("".concat(consolePrefix, " ").concat(message));
747  };
748  /**
749   * Standardise console errors
750   * @param message
751   */
752
753  var error = function error(message) {
754    console.error("".concat(consolePrefix, " ").concat(message));
755  };
756  /**
757   * Private global state for `warnOnce`
758   * @type {Array}
759   * @private
760   */
761
762  var previousWarnOnceMessages = [];
763  /**
764   * Show a console warning, but only if it hasn't already been shown
765   * @param message
766   */
767
768  var warnOnce = function warnOnce(message) {
769    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
770      previousWarnOnceMessages.push(message);
771      warn(message);
772    }
773  };
774  /**
775   * Show a one-time console warning about deprecated params/methods
776   */
777
778  var warnAboutDepreation = function warnAboutDepreation(deprecatedParam, useInstead) {
779    warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
780  };
781  /**
782   * If `arg` is a function, call it (with no arguments or context) and return the result.
783   * Otherwise, just pass the value through
784   * @param arg
785   */
786
787  var callIfFunction = function callIfFunction(arg) {
788    return typeof arg === 'function' ? arg() : arg;
789  };
790  var hasToPromiseFn = function hasToPromiseFn(arg) {
791    return arg && typeof arg.toPromise === 'function';
792  };
793  var asPromise = function asPromise(arg) {
794    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
795  };
796  var isPromise = function isPromise(arg) {
797    return arg && Promise.resolve(arg) === arg;
798  };
799
800  var DismissReason = Object.freeze({
801    cancel: 'cancel',
802    backdrop: 'backdrop',
803    close: 'close',
804    esc: 'esc',
805    timer: 'timer'
806  });
807
808  var isJqueryElement = function isJqueryElement(elem) {
809    return _typeof(elem) === 'object' && elem.jquery;
810  };
811
812  var isElement = function isElement(elem) {
813    return elem instanceof Element || isJqueryElement(elem);
814  };
815
816  var argsToParams = function argsToParams(args) {
817    var params = {};
818
819    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {
820      _extends(params, args[0]);
821    } else {
822      ['title', 'html', 'icon'].forEach(function (name, index) {
823        var arg = args[index];
824
825        if (typeof arg === 'string' || isElement(arg)) {
826          params[name] = arg;
827        } else if (arg !== undefined) {
828          error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg)));
829        }
830      });
831    }
832
833    return params;
834  };
835
836  var swalPrefix = 'swal2-';
837  var prefix = function prefix(items) {
838    var result = {};
839
840    for (var i in items) {
841      result[items[i]] = swalPrefix + items[i];
842    }
843
844    return result;
845  };
846  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);
847  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
848
849  var getContainer = function getContainer() {
850    return document.body.querySelector(".".concat(swalClasses.container));
851  };
852  var elementBySelector = function elementBySelector(selectorStr
852ing) {
853    var container = getContainer();
854    return container ? container.querySelector(selectorString) : null;
855  };
856
857  var elementByClass = function elementByClass(className) {
858    return elementBySelector(".".concat(className));
859  };
860
861  var getPopup = function getPopup() {
862    return elementByClass(swalClasses.popup);
863  };
864  var getIcons = function getIcons() {
865    var popup = getPopup();
866    return toArray(popup.querySelectorAll(".".concat(swalClasses.icon)));
867  };
868  var getIcon = function getIcon() {
869    var visibleIcon = getIcons().filter(function (icon) {
870      return isVisible(icon);
871    });
872    return visibleIcon.length ? visibleIcon[0] : null;
873  };
874  var getTitle = function getTitle() {
875    return elementByClass(swalClasses.title);
876  };
877  var getContent = function getContent() {
878    return elementByClass(swalClasses.content);
879  };
880  var getHtmlContainer = function getHtmlContainer() {
881    return elementByClass(swalClasses['html-container']);
882  };
883  var getImage = function getImage() {
884    return elementByClass(swalClasses.image);
885  };
886  var getProgressSteps = function getProgressSteps() {
887    return elementByClass(swalClasses['progress-steps']);
888  };
889  var getValidationMessage = function getValidationMessage() {
890    return elementByClass(swalClasses['validation-message']);
891  };
892  var getConfirmButton = function getConfirmButton() {
893    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
894  };
895  var getCancelButton = function getCancelButton() {
896    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
897  };
898  var getActions = function getActions() {
899    return elementByClass(swalClasses.actions);
900  };
901  var getHeader = function getHeader() {
902    return elementByClass(swalClasses.header);
903  };
904  var getFooter = function getFooter() {
905    return elementByClass(swalClasses.footer);
906  };
907  var getTimerProgressBar = function getTimerProgressBar() {
908    return elementByClass(swalClasses['timer-progress-bar']);
909  };
910  var getCloseButton = function getCloseButton() {
911    return elementByClass(swalClasses.close);
912  }; // https://github.com/jkup/focusable/blob/master/index.js
913
914  var focusable = "\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n";
915  var getFocusableElements = function getFocusableElements() {
916    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
917    .sort(function (a, b) {
918      a = parseInt(a.getAttribute('tabindex'));
919      b = parseInt(b.getAttribute('tabindex'));
920
921      if (a > b) {
922        return 1;
923      } else if (a < b) {
924        return -1;
925      }
926
927      return 0;
928    });
929    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {
930      return el.getAttribute('tabindex') !== '-1';
931    });
932    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {
933      return isVisible(el);
934    });
935  };
936  var isModal = function isModal() {
937    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);
938  };
939  var isToast = function isToast() {
940    return document.body.classList.contains(swalClasses['toast-shown']);
941  };
942  var isLoading = function isLoading() {
943    return getPopup().hasAttribute('data-loading');
944  };
945
946  var states = {
947    previousBodyPadding: null
948  };
949  var setInnerHtml = function setInnerHtml(elem, html) {
950    // #1926
951    elem.textContent = '';
952
953    if (html) {
954      var parser = new DOMParser();
955      var parsed = parser.parseFromString(html, "text/html");
956      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {
957        elem.appendChild(child);
958      });
959      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {
960        elem.appendChild(child);
961      });
962    }
963  };
964  var hasClass = function hasClass(elem, className) {
965    if (!className) {
966      return false;
967    }
968
969    var classList = className.split(/\s+/);
970
971    for (var i = 0; i < classList.length; i++) {
972      if (!elem.classList.contains(classList[i])) {
973        return false;
974      }
975    }
976
977    return true;
978  };
979
980  var removeCustomClasses = function removeCustomClasses(elem, params) {
981    toArray(elem.classList).forEach(function (className) {
982      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {
983        elem.classList.remove(className);
984      }
985    });
986  };
987
988  var applyCustomClass = function applyCustomClass(elem, params, className) {
989    removeCustomClasses(elem, params);
990
991    if (params.customClass && params.customClass[className]) {
992      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
993        return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\""));
994      }
995
996      addClass(elem, params.customClass[className]);
997    }
998  };
999  function getInput(content, inputType) {
1000    if (!inputType) {
1001      return null;
1002    }
1003
1004    switch (inputType) {
1005      case 'select':
1006      case 'textarea':
1007      case 'file':
1008        return getChildByClass(content, swalClasses[inputType]);
1009
1010      case 'checkbox':
1011        return content.querySelector(".".concat(swalClasses.checkbox, " input"));
1012
1013      case 'radio':
1014        return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child"));
1015
1016      case 'range':
1017        return content.querySelector(".".concat(swalClasses.range, " input"));
1018
1019      default:
1020        return getChildByClass(content, swalClasses.input);
1021    }
1022  }
1023  var focusInput = function focusInput(input) {
1024    input.focus(); // place cursor at end of text in text input
1025
1026    if (input.type !== 'file') {
1027      // http://stackoverflow.com/a/2345915
1028      var val = input.value;
1029      input.value = '';
1030      input.value = val;
1031    }
1032  };
1033  var toggleClass = function toggleClass(target, classList, condition) {
1034    if (!target || !classList) {
1035      return;
1036    }
1037
1038    if (typeof classList === 'string') {
1039      classList = classList.split(/\s+/).filter(Boolean);
1040    }
1041
1042    classList.forEach(function (className) {
1043      if (target.forEach) {
1044        target.forEach(function (elem) {
1045          condition ? elem.classList.add(className) : elem.classList.remove(className);
1046        });
1047      } else {
1048        condition ? target.classList.add(className) : target.classList.remove(className);
1049      }
1050    });
1051  };
1052  var addClass = function addClass(target, classList) {
1053    toggleClass(target, classList, true);
1054  };
1055  var removeClass = function removeClass(target, classList) {
1056    toggleClass(target, classList, false);
1057  };
1058  var getChildByClass = function getChildByClass(elem, className) {
1059    for (var i = 0; i < elem.childNodes.length; i++) {
1060      if (hasClass(elem.childNodes[i], className)) {
1061        return elem.childNodes[i];
1062      }
1063    }
1064  };
1065  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {
1066    if (value || parseInt(value) === 0) {
1067      elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
1068    } else {
1069      elem.style.removeProperty(property);
1070    }
1071  };
1072  var show = function show(elem) {
1073    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
1074    elem.style.opacity = '';
1075    elem.style.display = display;
1076  };
1077  var hide = function hide(elem) {
1078    elem.style.opacity = '';
1079    elem.style.display = 'none';
1080  };
1081  var toggle = function toggle(elem, condition, display) {
1082    condition ? show(elem, display) : hide(elem);
1083  }; // borrowed from jquery $(elem).is(':visible') implementation
1084
1085  var isVisible = function isVisible(elem) {
1086    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
1087  };
1088  /* istanbul ignore next */
1089
1090  var isScrollable = function isScrollable(elem) {
1091    return !!(elem.scrollHeight > elem.clientHeight);
1092  }; // borrowed from https://stackoverflow.com/a/46352119
1093
1094  var hasCssAnimation = function hasCssAnimation(elem) {
1095    var style = window.getComputedStyle(elem);
1096    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
1097    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
1098    return animDuration > 0 || transDuration > 0;
1099  };
1100  var contains = function contains(haystack, needle) {
1101    if (typeof haystack.contains === 'function') {
1102      return haystack.contains(needle);
1103    }
1104  };
1105  var animateTimerProgressBar = function animateTimerProgressBar(timer) {
1106    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1107    var timerProgressBar = getTimerProgressBar();
1108
1109    if (isVisible(timerProgressBar)) {
1110      if (reset) {
1111        timerProgressBar.style.transition = 'none';
1112        timerProgressBar.style.width = '100%';
1113      }
1114
1115      setTimeout(function () {
1116        timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
1117        timerProgressBar.style.width = '0%';
1118      }, 10);
1119    }
1120  };
1121  var stopTimerProgressBar = function stopTimerProgressBar() {
1122    var timerProgressBar = getTimerProgressBar();
1123    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
1124    timerProgressBar.style.removeProperty('transition');
1125    timerProgressBar.style.width = '100%';
1126    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
1127    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);
1128    timerProgressBar.style.removeProperty('transition');
1129    timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
1130  };
1131
1132  // Detect Node env
1133  var isNodeEnv = function isNodeEnv() {
1134    return typeof window === 'undefined' || typeof document === 'undefined';
1135  };
1136
1137  var sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n   <div class=\"").concat(swalClasses.header, "\">\n     <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.error, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.question, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.warning, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.info, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.success, "\"></div>\n     <img class=\"").concat(swalClasses.image, "\" />\n     <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n     <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.content, "\">\n     <div id=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses['html-container'], "\"></div>\n     <input class=\"").concat(swalClasses.input, "\" />\n     <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n     <div class=\"").concat(swalClasses.range, "\">\n       <input type=\"range\" />\n       <output></output>\n     </div>\n     <select class=\"").concat(swalClasses.select, "\"></select>\n     <div class=\"").concat(swalClasses.radio, "\"></div>\n     <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n       <input type=\"checkbox\" />\n       <span class=\"").concat(swalClasses.label, "\"></span>\n     </label>\n     <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n     <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n   </div>\n   <div class=\"").concat(swalClasses.actions, "\">\n     <button type=\"button\" class=\"").concat(swalClasses.confirm, "\">OK</button>\n     <button type=\"button\" class=\"").concat(swalClasses.cancel, "\">Cancel</button>\n   </div>\n   <div class=\"").concat(swalClasses.footer, "\"></div>\n   <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n     <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n   </div>\n </div>\n").replace(/(^|\n)\s*/g, '');
1138
1139  var resetOldContainer = function resetOldContainer() {
1140    var oldContainer = getContainer();
1141
1142    if (!oldContainer) {
1143      return false;
1144    }
1145
1146    oldContainer.parentNode.removeChild(oldContainer);
1147    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
1148    return true;
1149  };
1150
1151  var oldInputVal; // IE11 workaround, see #1109 for details
1152
1153  var resetValidationMessage = function resetValidationMessage(e) {
1154    if (Swal.isVisible() && oldInputVal !== e.target.value) {
1155      Swal.resetValidationMessage();
1156    }
1157
1158    oldInputVal = e.target.value;
1159  };
1160
1161  var addInputChangeListeners = function addInputChangeListeners() {
1162    var content = getContent();
1163    var input = getChildByClass(content, swalClasses.input);
1164    var file = getChildByClass(content, swalClasses.file);
1165    var range = content.querySelector(".".concat(swalClasses.range, " input"));
1166    var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output"));
1167    var select = getChildByClass(content, swalClasses.select);
1168    var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input"));
1169    var textarea = getChildByClass(content, swalClasses.textarea);
1170    input.oninput = resetValidationMessage;
1171    file.onchange = resetValidationMessage;
1172    select.onchange = resetValidationMessage;
1173    checkbox.onchange = resetValidationMessage;
1174    textarea.oninput = resetValidationMessage;
1175
1176    range.oninput = function (e) {
1177      resetValidationMessage(e);
1178      rangeOutput.value = range.value;
1179    };
1180
1181    range.onchange = function (e) {
1182      resetValidationMessage(e);
1183      range.nextSibling.value = range.value;
1184    };
1185  };
1186
1187  var getTarget = function getTarget(target) {
1188    return typeof target === 'string' ? document.querySelector(target) : target;
1189  };
1190
1191  var setupAccessibility = function setupAccessibility(params) {
1192    var popup = getPopup();
1193    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
1194    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');
1195
1196    if (!params.toast) {
1197      popup.setAttribute('aria-modal', 'true');
1198    }
1199  };
1200
1201  var setupRTL = function setupRTL(targetElement) {
1202    if (window.getComputedStyle(targetElement).direction === 'rtl') {
1203      addClass(getContainer(), swalClasses.rtl);
1204    }
1205  };
1206  /*
1207   * Add modal + backdrop to DOM
1208   */
1209
1210
1211  var init = function init(params) {
1212    // Clean up the old popup container if it exists
1213    var oldContainerExisted = resetOldContainer();
1214    /* istanbul ignore if */
1215
1216    if (isNodeEnv()) {
1217      error('SweetAlert2 requires document to initialize');
1218      return;
1219    }
1220
1221    var container = document.createElement('div');
1222    container.className = swalClasses.container;
1223
1224    if (oldContainerExisted) {
1225      addClass(container, swalClasses['no-transition']);
1226    }
1227
1228    setInnerHtml(container, sweetHTML);
1229    var targetElement = getTarget(params.target);
1230    targetElement.appendChild(container);
1231    setupAccessibility(params);
1232    setupRTL(targetElement);
1233    addInputChangeListeners();
1234  };
1235
1236  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
1237    // DOM element
1238    if (param instanceof HTMLElement) {
1239      target.appendChild(param); // Object
1240    } else if (_typeof(param) === 'object') {
1241      handleObject(param, target); // Plain string
1242    } else if (param) {
1243      setInnerHtml(target, param);
1244    }
1245  };
1246
1247  var handleObject = function handleObject(param, target) {
1248    // JQuery element(s)
1249    if (param.jquery) {
1250      handleJqueryElem(target, param); // For other objects use their string representation
1251    } else {
1252      setInnerHtml(target, param.toString());
1253    }
1254  };
1255
1256  var handleJqueryElem = function handleJqueryElem(target, elem) {
1257    target.textContent = '';
1258
1259    if (0 in elem) {
1260      for (var i = 0; (i in elem); i++) {
1261        target.appendChild(elem[i].cloneNode(true));
1262      }
1263    } else {
1264      target.appendChild(elem.cloneNode(true));
1265    }
1266  };
1267
1268  var animationEndEvent = function () {
1269    // Prevent run in Node env
1270
1271    /* istanbul ignore if */
1272    if (isNodeEnv()) {
1273      return false;
1274    }
1275
1276    var testEl = document.createElement('div');
1277    var transEndEventNames = {
1278      WebkitAnimation: 'webkitAnimationEnd',
1279      OAnimation: 'oAnimationEnd oanimationend',
1280      animation: 'animationend'
1281    };
1282
1283    for (var i in transEndEventNames) {
1284      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
1285        return transEndEventNames[i];
1286      }
1287    }
1288
1289    return false;
1290  }();
1291
1292  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js
1293
1294  var measureScrollbar = function measureScrollbar() {
1295    var scrollDiv = document.createElement('div');
1296    scrollDiv.className = swalClasses['scrollbar-measure'];
1297    document.body.appendChild(scrollDiv);
1298    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
1299    document.body.removeChild(scrollDiv);
1300    return scrollbarWidth;
1301  };
1302
1303  var renderActions = function renderActions(instance, params) {
1304    var actions = getActions();
1305    var confirmButton = getConfirmButton();
1306    var cancelButton = getCancelButton(); // Actions (buttons) wrapper
1307
1308    if (!params.showConfirmButton && !params.showCancelButton) {
1309      hide(actions);
1310    } // Custom class
1311
1312
1313    applyCustomClass(actions, params, 'actions'); // Render confirm button
1314
1315    renderButton(confirmButton, 'confirm', params); // render Cancel Button
1316
1317    renderButton(cancelButton, 'cancel', params);
1318
1319    if (params.buttonsStyling) {
1320      handleButtonsStyling(confirmButton, cancelButton, params);
1321    } else {
1322      removeClass([confirmButton, cancelButton], swalClasses.styled);
1323      confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
1324      cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
1325    }
1326
1327    if (params.reverseButtons) {
1328      confirmButton.parentNode.insertBefore(cancelButton, confirmButton);
1329    }
1330  };
1331
1332  function handleButtonsStyling(confirmButton, cancelButton, params) {
1333    addClass([confirmButton, cancelButton], swalClasses.styled); // Buttons background colors
1334
1335    if (params.confirmButtonColor) {
1336      confirmButton.style.backgroundColor = params.confirmButtonColor;
1337    }
1338
1339    if (params.cancelButtonColor) {
1340      cancelButton.style.backgroundColor = params.cancelButtonColor;
1341    } // Loading state
1342
1343
1344    if (!isLoading()) {
1345      var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color');
1346      confirmButton.style.borderLeftColor = confirmButtonBackgroundColor;
1347      confirmButton.style.borderRightColor = confirmButtonBackgroundColor;
1348    }
1349  }
1350
1351  function renderButton(button, buttonType, params) {
1352    toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
1353    setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text
1354
1355    button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
1356    // Add buttons custom classes
1357
1358    button.className = swalClasses[buttonType];
1359    applyCustomClass(button, params, "".concat(buttonType, "Button"));
1360    addClass(button, params["".concat(buttonType, "ButtonClass")]);
1361  }
1362
1363  function handleBackdropParam(container, backdrop) {
1364    if (typeof backdrop === 'string') {
1365      container.style.background = backdrop;
1366    } else if (!backdrop) {
1367      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
1368    }
1369  }
1370
1371  function handlePositionParam(container, position) {
1372    if (position in swalClasses) {
1373      addClass(container, swalClasses[position]);
1374    } else {
1375      warn('The "position" parameter is not valid, defaulting to "center"');
1376      addClass(container, swalClasses.center);
1377    }
1378  }
1379
1380  function handleGrowParam(container, grow) {
1381    if (grow && typeof grow === 'string') {
1382      var growClass = "grow-".concat(grow);
1383
1384      if (growClass in swalClasses) {
1385        addClass(container, swalClasses[growClass]);
1386      }
1387    }
1388  }
1389
1390  var renderContainer = function renderContainer(instance, params) {
1391    var container = getContainer();
1392
1393    if (!container) {
1394      return;
1395    }
1396
1397    handleBackdropParam(container, params.backdrop);
1398
1399    if (!params.backdrop && params.allowOutsideClick) {
1400      warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
1401    }
1402
1403    handlePositionParam(container, params.position);
1404    handleGrowParam(container, params.grow); // Custom class
1405
1406    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method
1407
1408    var queueStep = document.body.getAttribute('data-swal2-queue-step');
1409
1410    if (queueStep) {
1411      container.setAttribute('data-queue-step', queueStep);
1412      document.body.removeAttribute('data-swal2-queue-step');
1413    }
1414  };
1415
1416  /**
1417   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
1418   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
1419   * This is the approach that Babel will probably take to implement private methods/fields
1420   *   https://github.com/tc39/proposal-private-methods
1421   *   https://github.com/babel/babel/pull/7555
1422   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
1423   *   then we can use that language feature.
1424   */
1425  var privateProps = {
1426    promise: new WeakMap(),
1427    innerParams: new WeakMap(),
1428    domCache: new WeakMap()
1429  };
1430
1431  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
1432  var renderInput = function renderInput(instance, params) {
1433    var content = getContent();
1434    var innerParams = privateProps.innerParams.get(instance);
1435    var rerender = !innerParams || params.input !== innerParams.input;
1436    inputTypes.forEach(function (inputType) {
1437      var inputClass = swalClasses[inputType];
1438      var inputContainer = getChildByClass(content, inputClass); // set attributes
1439
1440      setAttributes(inputType, params.inputAttributes); // set class
1441
1442      inputContainer.className = inputClass;
1443
1444      if (rerender) {
1445        hide(inputContainer);
1446      }
1447    });
1448
1449    if (params.input) {
1450      if (rerender) {
1451        showInput(params);
1452      } // set custom class
1453
1454
1455      setCustomClass(params);
1456    }
1457  };
1458
1459  var showInput = function showInput(params) {
1460    if (!renderInputType[params.input]) {
1461      return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
1462    }
1463
1464    var inputContainer = getInputContainer(params.input);
1465    var input = renderInputType[params.input](inputContainer, params);
1466    show(input); // input autofocus
1467
1468    setTimeout(function () {
1469      focusInput(input);
1470    });
1471  };
1472
1473  var removeAttributes = function removeAttributes(input) {
1474    for (var i = 0; i < input.attributes.length; i++) {
1475      var attrName = input.attributes[i].name;
1476
1477      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {
1478        input.removeAttribute(attrName);
1479      }
1480    }
1481  };
1482
1483  var setAttributes = function setAttributes(inputType, inputAttributes) {
1484    var input = getInput(getContent(), inputType);
1485
1486    if (!input) {
1487      return;
1488    }
1489
1490    removeAttributes(input);
1491
1492    for (var attr in inputAttributes) {
1493      // Do not set a placeholder for <input type="range">
1494      // it'll crash Edge, #1298
1495      if (inputType === 'range' && attr === 'placeholder') {
1496        continue;
1497      }
1498
1499      input.setAttribute(attr, inputAttributes[attr]);
1500    }
1501  };
1502
1503  var setCustomClass = function setCustomClass(params) {
1504    var inputContainer = getInputContainer(params.input);
1505
1506    if (params.customClass) {
1507      addClass(inputContainer, params.customClass.input);
1508    }
1509  };
1510
1511  var setInputPlaceholder = function setInputPlaceholder(input, params) {
1512    if (!input.placeholder || params.inputPlaceholder) {
1513      input.placeholder = params.inputPlaceholder;
1514    }
1515  };
1516
1517  var getInputContainer = function getInputContainer(inputType) {
1518    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;
1519    return getChildByClass(getContent(), inputClass);
1520  };
1521
1522  var renderInputType = {};
1523
1524  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {
1525    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {
1526      input.value = params.inputValue;
1527    } else if (!isPromise(params.inputValue)) {
1528      warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\""));
1529    }
1530
1531    setInputPlaceholder(input, params);
1532    input.type = params.input;
1533    return input;
1534  };
1535
1536  renderInputType.file = function (input, params) {
1537    setInputPlaceholder(input, params);
1538    return input;
1539  };
1540
1541  renderInputType.range = function (range, params) {
1542    var rangeInput = range.querySelector('input');
1543    var rangeOutput = range.querySelector('output');
1544    rangeInput.value = params.inputValue;
1545    rangeInput.type = params.input;
1546    rangeOutput.value = params.inputValue;
1547    return range;
1548  };
1549
1550  renderInputType.select = function (select, params) {
1551    select.textContent = '';
1552
1553    if (params.inputPlaceholder) {
1554      var placeholder = document.createElement('option');
1555      setInnerHtml(placeholder, params.inputPlaceholder);
1556      placeholder.value = '';
1557      placeholder.disabled = true;
1558      placeholder.selected = true;
1559      select.appendChild(placeholder);
1560    }
1561
1562    return select;
1563  };
1564
1565  renderInputType.radio = function (radio) {
1566    radio.textContent = '';
1567    return radio;
1568  };
1569
1570  renderInputType.checkbox = function (checkboxContainer, params) {
1571    var checkbox = getInput(getContent(), 'checkbox');
1572    checkbox.value = 1;
1573    checkbox.id = swalClasses.checkbox;
1574    checkbox.checked = Boolean(params.inputValue);
1575    var label = checkboxContainer.querySelector('span');
1576    setInnerHtml(label, params.inputPlaceholder);
1577    return checkboxContainer;
1578  };
1579
1580  renderInputType.textarea = function (textarea, params) {
1581    textarea.value = params.inputValue;
1582    setInputPlaceholder(textarea, params);
1583
1584    if ('MutationObserver' in window) {
1585      // #1699
1586      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
1587      var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight);
1588
1589      var outputsize = function outputsize() {
1590        var contentWidth = textarea.offsetWidth + popupPadding;
1591
1592        if (contentWidth > initialPopupWidth) {
1593          getPopup().style.width = "".concat(contentWidth, "px");
1594        } else {
1595          getPopup().style.width = null;
1596        }
1597      };
1598
1599      new MutationObserver(outputsize).observe(textarea, {
1600        attributes: true,
1601        attributeFilter: ['style']
1602      });
1603    }
1604
1605    return textarea;
1606  };
1607
1608  var renderContent = function renderContent(instance, params) {
1609    var content = getContent().querySelector("#".concat(swalClasses.content)); // Content as HTML
1610
1611    if (params.html) {
1612      parseHtmlToContainer(params.html, content);
1613      show(content, 'block'); // Content as plain text
1614    } else if (params.text) {
1615      content.textContent = params.text;
1616      show(content, 'block'); // No content
1617    } else {
1618      hide(content);
1619    }
1620
1621    renderInput(instance, params); // Custom class
1622
1623    applyCustomClass(getContent(), params, 'content');
1624  };
1625
1626  var renderFooter = function renderFooter(instance, params) {
1627    var footer = getFooter();
1628    toggle(footer, params.footer);
1629
1630    if (params.footer) {
1631      parseHtmlToContainer(params.footer, footer);
1632    } // Custom class
1633
1634
1635    applyCustomClass(footer, params, 'footer');
1636  };
1637
1638  var renderCloseButton = function renderCloseButton(instance, params) {
1639    var closeButton = getCloseButton();
1640    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class
1641
1642    applyCustomClass(closeButton, params, 'closeButton');
1643    toggle(closeButton, params.showCloseButton);
1644    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
1645  };
1646
1647  var renderIcon = function renderIcon(instance, params) {
1648    var innerParams = privateProps.innerParams.get(instance); // if the give icon already rendered, apply the custom class without re-rendering the icon
1649
1650    if (innerParams && params.icon === innerParams.icon && getIcon()) {
1651      applyCustomClass(getIcon(), params, 'icon');
1652      return;
1653    }
1654
1655    hideAllIcons();
1656
1657    if (!params.icon) {
1658      return;
1659    }
1660
1661    if (Object.keys(iconTypes).indexOf(params.icon) !== -1) {
1662      var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.icon]));
1663      show(icon); // Custom or default content
1664
1665      setContent(icon, params);
1666      adjustSuccessIconBackgoundColor(); // Custom class
1667
1668      applyCustomClass(icon, params, 'icon'); // Animate icon
1669
1670      addClass(icon, params.showClass.icon);
1671    } else {
1672      error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
1673    }
1674  };
1675
1676  var hideAllIcons = function hideAllIcons() {
1677    var icons = getIcons();
1678
1679    for (var i = 0; i < icons.length; i++) {
1680      hide(icons[i]);
1681    }
1682  }; // Adjust success icon background color to match the popup background color
1683
1684
1685  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {
1686    var popup = getPopup();
1687    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
1688    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
1689
1690    for (var i = 0; i < successIconParts.length; i++) {
1691      successIconParts[i].style.backgroundColor = popupBackgroundColor;
1692    }
1693  };
1694
1695  var setContent = function setContent(icon, params) {
1696    icon.textContent = '';
1697
1698    if (params.iconHtml) {
1699      setInnerHtml(icon, iconContent(params.iconHtml));
1700    } else if (params.icon === 'success') {
1701      setInnerHtml(icon, "\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    ");
1702    } else if (params.icon === 'error') {
1703      setInnerHtml(icon, "\n      <span class=\"swal2-x-mark\">\n        <span class=\"swal2-x-mark-line-left\"></span>\n        <span class=\"swal2-x-mark-line-right\"></span>\n      </span>\n    ");
1704    } else {
1705      var defaultIconHtml = {
1706        question: '?',
1707        warning: '!',
1708        info: 'i'
1709      };
1710      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));
1711    }
1712  };
1713
1714  var iconContent = function iconContent(content) {
1715    return "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
1716  };
1717
1718  var renderImage = function renderImage(instance, params) {
1719    var image = getImage();
1720
1721    if (!params.imageUrl) {
1722      return hide(image);
1723    }
1724
1725    show(image, ''); // Src, alt
1726
1727    image.setAttribute('src', params.imageUrl);
1728    image.setAttribute('alt', params.imageAlt); // Width, height
1729
1730    applyNumericalStyle(image, 'width', params.imageWidth);
1731    applyNumericalStyle(image, 'height', params.imageHeight); // Class
1732
1733    image.className = swalClasses.image;
1734    applyCustomClass(image, params, 'image');
1735  };
1736
1737  var currentSteps = [];
1738  /*
1739   * Global function for chaining sweetAlert popups
1740   */
1741
1742  var queue = function queue(steps) {
1743    var Swal = this;
1744    currentSteps = steps;
1745
1746    var resetAndResolve = function resetAndResolve(resolve, value) {
1747      currentSteps = [];
1748      resolve(value);
1749    };
1750
1751    var queueResult = [];
1752    return new Promise(function (resolve) {
1753      (function step(i, callback) {
1754        if (i < currentSteps.length) {
1755          document.body.setAttribute('data-swal2-queue-step', i);
1756          Swal.fire(currentSteps[i]).then(function (result) {
1757            if (typeof result.value !== 'undefined') {
1758              queueResult.push(result.value);
1759              step(i + 1, callback);
1760            } else {
1761              resetAndResolve(resolve, {
1762                dismiss: result.dismiss
1763              });
1764            }
1765          });
1766        } else {
1767          resetAndResolve(resolve, {
1768            value: queueResult
1769          });
1770        }
1771      })(0);
1772    });
1773  };
1774  /*
1775   * Global function for getting the index of current popup in queue
1776   */
1777
1778  var getQueueStep = function getQueueStep() {
1779    return getContainer() && getContainer().getAttribute('data-queue-step');
1780  };
1781  /*
1782   * Global function for inserting a popup to the queue
1783   */
1784
1785  var insertQueueStep = function insertQueueStep(step, index) {
1786    if (index && index < currentSteps.length) {
1787      return currentSteps.splice(index, 0, step);
1788    }
1789
1790    return currentSteps.push(step);
1791  };
1792  /*
1793   * Global function for deleting a popup from the queue
1794   */
1795
1796  var deleteQueueStep = function deleteQueueStep(index) {
1797    if (typeof currentSteps[index] !== 'undefined') {
1798      currentSteps.splice(index, 1);
1799    }
1800  };
1801
1802  var createStepElement = function createStepElement(step) {
1803    var stepEl = document.createElement('li');
1804    addClass(stepEl, swalClasses['progress-step']);
1805    setInnerHtml(stepEl, step);
1806    return stepEl;
1807  };
1808
1809  var createLineElement = function createLineElement(params) {
1810    var lineEl = document.createElement('li');
1811    addClass(lineEl, swalClasses['progress-step-line']);
1812
1813    if (params.progressStepsDistance) {
1814      lineEl.style.width = params.progressStepsDistance;
1815    }
1816
1817    return lineEl;
1818  };
1819
1820  var renderProgressSteps = function renderProgressSteps(instance, params) {
1821    var progressStepsContainer = getProgressSteps();
1822
1823    if (!params.progressSteps || params.progressSteps.length === 0) {
1824      return hide(progressStepsContainer);
1825    }
1826
1827    show(progressStepsContainer);
1828    progressStepsContainer.textContent = '';
1829    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);
1830
1831    if (currentProgressStep >= params.progressSteps.length) {
1832      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
1833    }
1834
1835    params.progressSteps.forEach(function (step, index) {
1836      var stepEl = createStepElement(step);
1837      progressStepsContainer.appendChild(stepEl);
1838
1839      if (index === currentProgressStep) {
1840        addClass(stepEl, swalClasses['active-progress-step']);
1841      }
1842
1843      if (index !== params.progressSteps.length - 1) {
1844        var lineEl = createLineElement(params);
1845        progressStepsContainer.appendChild(lineEl);
1846      }
1847    });
1848  };
1849
1850  var renderTitle = function renderTitle(instance, params) {
1851    var title = getTitle();
1852    toggle(title, params.title || params.titleText);
1853
1854    if (params.title) {
1855      parseHtmlToContainer(params.title, title);
1856    }
1857
1858    if (params.titleText) {
1859      title.innerText = params.titleText;
1860    } // Custom class
1861
1862
1863    applyCustomClass(title, params, 'title');
1864  };
1865
1866  var renderHeader = function renderHeader(instance, params) {
1867    var header = getHeader(); // Custom class
1868
1869    applyCustomClass(header, params, 'header'); // Progress steps
1870
1871    renderProgressSteps(instance, params); // Icon
1872
1873    renderIcon(instance, params); // Image
1874
1875    renderImage(instance, params); // Title
1876
1877    renderTitle(instance, params); // Close button
1878
1879    renderCloseButton(instance, params);
1880  };
1881
1882  var renderPopup = function renderPopup(instance, params) {
1883    var popup = getPopup(); // Width
1884
1885    applyNumericalStyle(popup, 'width', params.width); // Padding
1886
1887    applyNumericalStyle(popup, 'padding', params.padding);
1887 // Background
1888
1889    if (params.background) {
1890      popup.style.background = params.background;
1891    } // Classes
1892
1893
1894    addClasses(popup, params);
1895  };
1896
1897  var addClasses = function addClasses(popup, params) {
1898    // Default Class + showClass when updating Swal.update({})
1899    popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');
1900
1901    if (params.toast) {
1902      addClass([document.documentElement, document.body], swalClasses['toast-shown']);
1903      addClass(popup, swalClasses.toast);
1904    } else {
1905      addClass(popup, swalClasses.modal);
1906    } // Custom class
1907
1908
1909    applyCustomClass(popup, params, 'popup');
1910
1911    if (typeof params.customClass === 'string') {
1912      addClass(popup, params.customClass);
1913    } // Icon class (#1842)
1914
1915
1916    if (params.icon) {
1917      addClass(popup, swalClasses["icon-".concat(params.icon)]);
1918    }
1919  };
1920
1921  var render = function render(instance, params) {
1922    renderPopup(instance, params);
1923    renderContainer(instance, params);
1924    renderHeader(instance, params);
1925    renderContent(instance, params);
1926    renderActions(instance, params);
1927    renderFooter(instance, params);
1928
1929    if (typeof params.onRender === 'function') {
1930      params.onRender(getPopup());
1931    }
1932  };
1933
1934  /*
1935   * Global function to determine if SweetAlert2 popup is shown
1936   */
1937
1938  var isVisible$1 = function isVisible$$1() {
1939    return isVisible(getPopup());
1940  };
1941  /*
1942   * Global function to click 'Confirm' button
1943   */
1944
1945  var clickConfirm = function clickConfirm() {
1946    return getConfirmButton() && getConfirmButton().click();
1947  };
1948  /*
1949   * Global function to click 'Cancel' button
1950   */
1951
1952  var clickCancel = function clickCancel() {
1953    return getCancelButton() && getCancelButton().click();
1954  };
1955
1956  function fire() {
1957    var Swal = this;
1958
1959    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1960      args[_key] = arguments[_key];
1961    }
1962
1963    return _construct(Swal, args);
1964  }
1965
1966  /**
1967   * Returns an extended version of `Swal` containing `params` as defaults.
1968   * Useful for reusing Swal configuration.
1969   *
1970   * For example:
1971   *
1972   * Before:
1973   * const textPromptOptions = { input: 'text', showCancelButton: true }
1974   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
1975   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
1976   *
1977   * After:
1978   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
1979   * const {value: firstName} = await TextPrompt('What is your first name?')
1980   * const {value: lastName} = await TextPrompt('What is your last name?')
1981   *
1982   * @param mixinParams
1983   */
1984  function mixin(mixinParams) {
1985    var MixinSwal = /*#__PURE__*/function (_this) {
1986      _inherits(MixinSwal, _this);
1987
1988      var _super = _createSuper(MixinSwal);
1989
1990      function MixinSwal() {
1991        _classCallCheck(this, MixinSwal);
1992
1993        return _super.apply(this, arguments);
1994      }
1995
1996      _createClass(MixinSwal, [{
1997        key: "_main",
1998        value: function _main(params) {
1999          return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params));
2000        }
2001      }]);
2002
2003      return MixinSwal;
2004    }(this);
2005
2006    return MixinSwal;
2007  }
2008
2009  /**
2010   * Show spinner instead of Confirm button
2011   */
2012
2013  var showLoading = function showLoading() {
2014    var popup = getPopup();
2015
2016    if (!popup) {
2017      Swal.fire();
2018    }
2019
2020    popup = getPopup();
2021    var actions = getActions();
2022    var confirmButton = getConfirmButton();
2023    show(actions);
2024    show(confirmButton, 'inline-block');
2025    addClass([popup, actions], swalClasses.loading);
2026    confirmButton.disabled = true;
2027    popup.setAttribute('data-loading', true);
2028    popup.setAttribute('aria-busy', true);
2029    popup.focus();
2030  };
2031
2032  var RESTORE_FOCUS_TIMEOUT = 100;
2033
2034  var globalState = {};
2035
2036  var focusPreviousActiveElement = function focusPreviousActiveElement() {
2037    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
2038      globalState.previousActiveElement.focus();
2039      globalState.previousActiveElement = null;
2040    } else if (document.body) {
2041      document.body.focus();
2042    }
2043  }; // Restore previous active (focused) element
2044
2045
2046  var restoreActiveElement = function restoreActiveElement() {
2047    return new Promise(function (resolve) {
2048      var x = window.scrollX;
2049      var y = window.scrollY;
2050      globalState.restoreFocusTimeout = setTimeout(function () {
2051        focusPreviousActiveElement();
2052        resolve();
2053      }, RESTORE_FOCUS_TIMEOUT); // issues/900
2054
2055      /* istanbul ignore if */
2056
2057      if (typeof x !== 'undefined' && typeof y !== 'undefined') {
2058        // IE doesn't have scrollX/scrollY support
2059        window.scrollTo(x, y);
2060      }
2061    });
2062  };
2063
2064  /**
2065   * If `timer` parameter is set, returns number of milliseconds of timer remained.
2066   * Otherwise, returns undefined.
2067   */
2068
2069  var getTimerLeft = function getTimerLeft() {
2070    return globalState.timeout && globalState.timeout.getTimerLeft();
2071  };
2072  /**
2073   * Stop timer. Returns number of milliseconds of timer remained.
2074   * If `timer` parameter isn't set, returns undefined.
2075   */
2076
2077  var stopTimer = function stopTimer() {
2078    if (globalState.timeout) {
2079      stopTimerProgressBar();
2080      return globalState.timeout.stop();
2081    }
2082  };
2083  /**
2084   * Resume timer. Returns number of milliseconds of timer remained.
2085   * If `timer` parameter isn't set, returns undefined.
2086   */
2087
2088  var resumeTimer = function resumeTimer() {
2089    if (globalState.timeout) {
2090      var remaining = globalState.timeout.start();
2091      animateTimerProgressBar(remaining);
2092      return remaining;
2093    }
2094  };
2095  /**
2096   * Resume timer. Returns number of milliseconds of timer remained.
2097   * If `timer` parameter isn't set, returns undefined.
2098   */
2099
2100  var toggleTimer = function toggleTimer() {
2101    var timer = globalState.timeout;
2102    return timer && (timer.running ? stopTimer() : resumeTimer());
2103  };
2104  /**
2105   * Increase timer. Returns number of milliseconds of an updated timer.
2106   * If `timer` parameter isn't set, returns undefined.
2107   */
2108
2109  var increaseTimer = function increaseTimer(n) {
2110    if (globalState.timeout) {
2111      var remaining = globalState.timeout.increase(n);
2112      animateTimerProgressBar(remaining, true);
2113      return remaining;
2114    }
2115  };
2116  /**
2117   * Check if timer is running. Returns true if timer is running
2118   * or false if timer is paused or stopped.
2119   * If `timer` parameter isn't set, returns undefined
2120   */
2121
2122  var isTimerRunning = function isTimerRunning() {
2123    return globalState.timeout && globalState.timeout.isRunning();
2124  };
2125
2126  var defaultParams = {
2127    title: '',
2128    titleText: '',
2129    text: '',
2130    html: '',
2131    footer: '',
2132    icon: undefined,
2133    iconHtml: undefined,
2134    toast: false,
2135    animation: true,
2136    showClass: {
2137      popup: 'swal2-show',
2138      backdrop: 'swal2-backdrop-show',
2139      icon: 'swal2-icon-show'
2140    },
2141    hideClass: {
2142      popup: 'swal2-hide',
2143      backdrop: 'swal2-backdrop-hide',
2144      icon: 'swal2-icon-hide'
2145    },
2146    customClass: undefined,
2147    target: 'body',
2148    backdrop: true,
2149    heightAuto: true,
2150    allowOutsideClick: true,
2151    allowEscapeKey: true,
2152    allowEnterKey: true,
2153    stopKeydownPropagation: true,
2154    keydownListenerCapture: false,
2155    showConfirmButton: true,
2156    showCancelButton: false,
2157    preConfirm: undefined,
2158    confirmButtonText: 'OK',
2159    confirmButtonAriaLabel: '',
2160    confirmButtonColor: undefined,
2161    cancelButtonText: 'Cancel',
2162    cancelButtonAriaLabel: '',
2163    cancelButtonColor: undefined,
2164    buttonsStyling: true,
2165    reverseButtons: false,
2166    focusConfirm: true,
2167    focusCancel: false,
2168    showCloseButton: false,
2169    closeButtonHtml: '&times;',
2170    closeButtonAriaLabel: 'Close this dialog',
2171    showLoaderOnConfirm: false,
2172    imageUrl: undefined,
2173    imageWidth: undefined,
2174    imageHeight: undefined,
2175    imageAlt: '',
2176    timer: undefined,
2177    timerProgressBar: false,
2178    width: undefined,
2179    padding: undefined,
2180    background: undefined,
2181    input: undefined,
2182    inputPlaceholder: '',
2183    inputValue: '',
2184    inputOptions: {},
2185    inputAutoTrim: true,
2186    inputAttributes: {},
2187    inputValidator: undefined,
2188    validationMessage: undefined,
2189    grow: false,
2190    position: 'center',
2191    progressSteps: [],
2192    currentProgressStep: undefined,
2193    progressStepsDistance: undefined,
2194    onBeforeOpen: undefined,
2195    onOpen: undefined,
2196    onRender: undefined,
2197    onClose: undefined,
2198    onAfterClose: undefined,
2199    onDestroy: undefined,
2200    scrollbarPadding: true
2201  };
2202  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'footer', 'hideClass', 'html', 'icon', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'text', 'title', 'titleText'];
2203  var deprecatedParams = {
2204    animation: 'showClass" and "hideClass'
2205  };
2206  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusCancel', 'he
2206ightAuto', 'keydownListenerCapture'];
2207  /**
2208   * Is valid parameter
2209   * @param {String} paramName
2210   */
2211
2212  var isValidParameter = function isValidParameter(paramName) {
2213    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
2214  };
2215  /**
2216   * Is valid parameter for Swal.update() method
2217   * @param {String} paramName
2218   */
2219
2220  var isUpdatableParameter = function isUpdatableParameter(paramName) {
2221    return updatableParams.indexOf(paramName) !== -1;
2222  };
2223  /**
2224   * Is deprecated parameter
2225   * @param {String} paramName
2226   */
2227
2228  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {
2229    return deprecatedParams[paramName];
2230  };
2231
2232  var checkIfParamIsValid = function checkIfParamIsValid(param) {
2233    if (!isValidParameter(param)) {
2234      warn("Unknown parameter \"".concat(param, "\""));
2235    }
2236  };
2237
2238  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {
2239    if (toastIncompatibleParams.indexOf(param) !== -1) {
2240      warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
2241    }
2242  };
2243
2244  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {
2245    if (isDeprecatedParameter(param)) {
2246      warnAboutDepreation(param, isDeprecatedParameter(param));
2247    }
2248  };
2249  /**
2250   * Show relevant warnings for given params
2251   *
2252   * @param params
2253   */
2254
2255
2256  var showWarningsForParams = function showWarningsForParams(params) {
2257    for (var param in params) {
2258      checkIfParamIsValid(param);
2259
2260      if (params.toast) {
2261        checkIfToastParamIsValid(param);
2262      }
2263
2264      checkIfParamIsDeprecated(param);
2265    }
2266  };
2267
2268
2269
2270  var staticMethods = /*#__PURE__*/Object.freeze({
2271    isValidParameter: isValidParameter,
2272    isUpdatableParameter: isUpdatableParameter,
2273    isDeprecatedParameter: isDeprecatedParameter,
2274    argsToParams: argsToParams,
2275    isVisible: isVisible$1,
2276    clickConfirm: clickConfirm,
2277    clickCancel: clickCancel,
2278    getContainer: getContainer,
2279    getPopup: getPopup,
2280    getTitle: getTitle,
2281    getContent: getContent,
2282    getHtmlContainer: getHtmlContainer,
2283    getImage: getImage,
2284    getIcon: getIcon,
2285    getIcons: getIcons,
2286    getCloseButton: getCloseButton,
2287    getActions: getActions,
2288    getConfirmButton: getConfirmButton,
2289    getCancelButton: getCancelButton,
2290    getHeader: getHeader,
2291    getFooter: getFooter,
2292    getTimerProgressBar: getTimerProgressBar,
2293    getFocusableElements: getFocusableElements,
2294    getValidationMessage: getValidationMessage,
2295    isLoading: isLoading,
2296    fire: fire,
2297    mixin: mixin,
2298    queue: queue,
2299    getQueueStep: getQueueStep,
2300    insertQueueStep: insertQueueStep,
2301    deleteQueueStep: deleteQueueStep,
2302    showLoading: showLoading,
2303    enableLoading: showLoading,
2304    getTimerLeft: getTimerLeft,
2305    stopTimer: stopTimer,
2306    resumeTimer: resumeTimer,
2307    toggleTimer: toggleTimer,
2308    increaseTimer: increaseTimer,
2309    isTimerRunning: isTimerRunning
2310  });
2311
2312  /**
2313   * Enables buttons and hide loader.
2314   */
2315
2316  function hideLoading() {
2317    // do nothing if popup is closed
2318    var innerParams = privateProps.innerParams.get(this);
2319
2320    if (!innerParams) {
2321      return;
2322    }
2323
2324    var domCache = privateProps.domCache.get(this);
2325
2326    if (!innerParams.showConfirmButton) {
2327      hide(domCache.confirmButton);
2328
2329      if (!innerParams.showCancelButton) {
2330        hide(domCache.actions);
2331      }
2332    }
2333
2334    removeClass([domCache.popup, domCache.actions], swalClasses.loading);
2335    domCache.popup.removeAttribute('aria-busy');
2336    domCache.popup.removeAttribute('data-loading');
2337    domCache.confirmButton.disabled = false;
2338    domCache.cancelButton.disabled = false;
2339  }
2340
2341  function getInput$1(instance) {
2342    var innerParams = privateProps.innerParams.get(instance || this);
2343    var domCache = privateProps.domCache.get(instance || this);
2344
2345    if (!domCache) {
2346      return null;
2347    }
2348
2349    return getInput(domCache.content, innerParams.input);
2350  }
2351
2352  var fixScrollbar = function fixScrollbar() {
2353    // for queues, do not do this more than once
2354    if (states.previousBodyPadding !== null) {
2355      return;
2356    } // if the body has overflow
2357
2358
2359    if (document.body.scrollHeight > window.innerHeight) {
2360      // add padding so the content doesn't shift after removal of scrollbar
2361      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
2362      document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
2363    }
2364  };
2365  var undoScrollbar = function undoScrollbar() {
2366    if (states.previousBodyPadding !== null) {
2367      document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
2368      states.previousBodyPadding = null;
2369    }
2370  };
2371
2372  /* istanbul ignore file */
2373
2374  var iOSfix = function iOSfix() {
2375    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
2376
2377    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
2378      var offset = document.body.scrollTop;
2379      document.body.style.top = "".concat(offset * -1, "px");
2380      addClass(document.body, swalClasses.iosfix);
2381      lockBodyScroll();
2382      addBottomPaddingForTallPopups(); // #1948
2383    }
2384  };
2385
2386  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {
2387    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);
2388
2389    if (safari) {
2390      var bottomPanelHeight = 44;
2391
2392      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
2393        getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
2394      }
2395    }
2396  };
2397
2398  var lockBodyScroll = function lockBodyScroll() {
2399    // #1246
2400    var container = getContainer();
2401    var preventTouchMove;
2402
2403    container.ontouchstart = function (e) {
2404      preventTouchMove = shouldPreventTouchMove(e.target);
2405    };
2406
2407    container.ontouchmove = function (e) {
2408      if (preventTouchMove) {
2409        e.preventDefault();
2410        e.stopPropagation();
2411      }
2412    };
2413  };
2414
2415  var shouldPreventTouchMove = function shouldPreventTouchMove(target) {
2416    var container = getContainer();
2417
2418    if (target === container) {
2419      return true;
2420    }
2421
2422    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603
2423    !(isScrollable(getContent()) && // #1944
2424    getContent().contains(target))) {
2425      return true;
2426    }
2427
2428    return false;
2429  };
2430
2431  var undoIOSfix = function undoIOSfix() {
2432    if (hasClass(document.body, swalClasses.iosfix)) {
2433      var offset = parseInt(document.body.style.top, 10);
2434      removeClass(document.body, swalClasses.iosfix);
2435      document.body.style.top = '';
2436      document.body.scrollTop = offset * -1;
2437    }
2438  };
2439
2440  /* istanbul ignore file */
2441
2442  var isIE11 = function isIE11() {
2443    return !!window.MSInputMethodContext && !!document.documentMode;
2444  }; // Fix IE11 centering sweetalert2/issues/933
2445
2446
2447  var fixVerticalPositionIE = function fixVerticalPositionIE() {
2448    var container = getContainer();
2449    var popup = getPopup();
2450    container.style.removeProperty('align-items');
2451
2452    if (popup.offsetTop < 0) {
2453      container.style.alignItems = 'flex-start';
2454    }
2455  };
2456
2457  var IEfix = function IEfix() {
2458    if (typeof window !== 'undefined' && isIE11()) {
2459      fixVerticalPositionIE();
2460      window.addEventListener('resize', fixVerticalPositionIE);
2461    }
2462  };
2463  var undoIEfix = function undoIEfix() {
2464    if (typeof window !== 'undefined' && isIE11()) {
2465      window.removeEventListener('resize', fixVerticalPositionIE);
2466    }
2467  };
2468
2469  // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
2470  // elements not within the active modal dialog will not be surfaced if a user opens a screen
2471  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.
2472
2473  var setAriaHidden = function setAriaHidden() {
2474    var bodyChildren = toArray(document.body.children);
2475    bodyChildren.forEach(function (el) {
2476      if (el === getContainer() || contains(el, getContainer())) {
2477        return;
2478      }
2479
2480      if (el.hasAttribute('aria-hidden')) {
2481        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
2482      }
2483
2484      el.setAttribute('aria-hidden', 'true');
2485    });
2486  };
2487  var unsetAriaHidden = function unsetAriaHidden() {
2488    var bodyChildren = toArray(document.body.children);
2489    bodyChildren.forEach(function (el) {
2490      if (el.hasAttribute('data-previous-aria-hidden')) {
2491        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
2492        el.removeAttribute('data-previous-aria-hidden');
2493      } else {
2494        el.removeAttribute('aria-hidden');
2495      }
2496    });
2497  };
2498
2499  /**
2500   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
2501   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
2502   * This is the approach that Babel will probably take to implement private methods/fields
2503   *   https://github.com/tc39/proposal-private-methods
2504   *   https://github.com/babel/babel/pull/7555
2505   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
2506   *   then we can use that language feature.
2507   */
2508  var privateMethods = {
2509    swalPromiseResolve: new WeakMap()
2510  };
2511
2512  /*
2513   * Instance method to close sweetAlert
2514   */
2515
2516  function removePopupAndResetState(instance, container, isToast$$1, onAfterClose) {
2517    if (isToast$$1) {
2518      triggerOnAfterCloseAndDispose(instance, onAfterClose);
2519    } else {
2520      restoreActiveElement().then(function () {
2521        return triggerOnAfterCloseAndDispose(instance, onAfterClose);
2522      });
2523      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
2524        capture: globalState.keydownListenerCapture
2525      });
2526      globalState.keydownHandlerAdded = false;
2527    }
2528
2529    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {
2530      container.parentNode.removeChild(container);
2531    }
2532
2533    if (isModal()) {
2534      undoScrollbar();
2535      undoIOSfix();
2536      undoIEfix();
2537      unsetAriaHidden();
2538    }
2539
2540    removeBodyClasses();
2541  }
2542
2543  function removeBodyClasses() {
2544    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);
2545  }
2546
2547  function close(resolveValue) {
2548    var popup = getPopup();
2549
2550    if (!popup) {
2551      return;
2552    }
2553
2554    var innerParams = privateProps.innerParams.get(this);
2555
2556    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
2557      return;
2558    }
2559
2560    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
2561    removeClass(popup, innerParams.showClass.popup);
2562    addClass(popup, innerParams.hideClass.popup);
2563    var backdrop = getContainer();
2564    removeClass(backdrop, innerParams.showClass.backdrop);
2565    addClass(backdrop, innerParams.hideClass.backdrop);
2566    handlePopupAnimation(this, popup, innerParams);
2567
2568    if (typeof resolveValue !== 'undefined') {
2569      resolveValue.isDismissed = typeof resolveValue.dismiss !== 'undefined';
2570      resolveValue.isConfirmed = typeof resolveValue.dismiss === 'undefined';
2571    } else {
2572      resolveValue = {
2573        isDismissed: true,
2574        isConfirmed: false
2575      };
2576    } // Resolve Swal promise
2577
2578
2579    swalPromiseResolve(resolveValue || {});
2580  }
2581
2582  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {
2583    var container = getContainer(); // If animation is supported, animate
2584
2585    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);
2586    var onClose = innerParams.onClose,
2587        onAfterClose = innerParams.onAfterClose;
2588
2589    if (onClose !== null && typeof onClose === 'function') {
2590      onClose(popup);
2591    }
2592
2593    if (animationIsSupported) {
2594      animatePopup(instance, popup, container, onAfterClose);
2595    } else {
2596      // Otherwise, remove immediately
2597      removePopupAndResetState(instance, container, isToast(), onAfterClose);
2598    }
2599  };
2600
2601  var animatePopup = function animatePopup(instance, popup, container, onAfterClose) {
2602    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), onAfterClose);
2603    popup.addEventListener(animationEndEvent, function (e) {
2604      if (e.target === popup) {
2605        globalState.swalCloseEventFinishedCallback();
2606        delete globalState.swalCloseEventFinishedCallback;
2607      }
2608    });
2609  };
2610
2611  var triggerOnAfterCloseAndDispose = function triggerOnAfterCloseAndDispose(instance, onAfterClose) {
2612    setTimeout(function () {
2613      if (typeof onAfterClose === 'function') {
2614        onAfterClose();
2615      }
2616
2617      instance._destroy();
2618    });
2619  };
2620
2621  function setButtonsDisabled(instance, buttons, disabled) {
2622    var domCache = privateProps.domCache.get(instance);
2623    buttons.forEach(function (button) {
2624      domCache[button].disabled = disabled;
2625    });
2626  }
2627
2628  function setInputDisabled(input, disabled) {
2629    if (!input) {
2630      return false;
2631    }
2632
2633    if (input.type === 'radio') {
2634      var radiosContainer = input.parentNode.parentNode;
2635      var radios = radiosContainer.querySelectorAll('input');
2636
2637      for (var i = 0; i < radios.length; i++) {
2638        radios[i].disabled = disabled;
2639      }
2640    } else {
2641      input.disabled = disabled;
2642    }
2643  }
2644
2645  function enableButtons() {
2646    setButtonsDisabled(this, ['confirmButton', 'cancelButton'], false);
2647  }
2648  function disableButtons() {
2649    setButtonsDisabled(this, ['confirmButton', 'cancelButton'], true);
2650  }
2651  function enableInput() {
2652    return setInputDisabled(this.getInput(), false);
2653  }
2654  function disableInput() {
2655    return setInputDisabled(this.getInput(), true);
2656  }
2657
2658  function showValidationMessage(error) {
2659    var domCache = privateProps.domCache.get(this);
2660    setInnerHtml(domCache.validationMessage, error);
2661    var popupComputedStyle = window.getComputedStyle(domCache.popup);
2662    domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left'));
2663    domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right'));
2664    show(domCache.validationMessage);
2665    var input = this.getInput();
2666
2667    if (input) {
2668      input.setAttribute('aria-invalid', true);
2669      input.setAttribute('aria-describedBy', swalClasses['validation-message']);
2670      focusInput(input);
2671      addClass(input, swalClasses.inputerror);
2672    }
2673  } // Hide block with validation message
2674
2675  function resetValidationMessage$1() {
2676    var domCache = privateProps.domCache.get(this);
2677
2678    if (domCache.validationMessage) {
2679      hide(domCache.validationMessage);
2680    }
2681
2682    var input = this.getInput();
2683
2684    if (input) {
2685      input.removeAttribute('aria-invalid');
2686      input.removeAttribute('aria-describedBy');
2687      removeClass(input, swalClasses.inputerror);
2688    }
2689  }
2690
2691  function getProgressSteps$1() {
2692    var domCache = privateProps.domCache.get(this);
2693    return domCache.progressSteps;
2694  }
2695
2696  var Timer = /*#__PURE__*/function () {
2697    function Timer(callback, delay) {
2698      _classCallCheck(this, Timer);
2699
2700      this.callback = callback;
2701      this.remaining = delay;
2702      this.running = false;
2703      this.start();
2704    }
2705
2706    _createClass(Timer, [{
2707      key: "start",
2708      value: function start() {
2709        if (!this.running) {
2710          this.running = true;
2711          this.started = new Date();
2712          this.id = setTimeout(this.callback, this.remaining);
2713        }
2714
2715        return this.remaining;
2716      }
2717    }, {
2718      key: "stop",
2719      value: function stop() {
2720        if (this.running) {
2721          this.running = false;
2722          clearTimeout(this.id);
2723          this.remaining -= new Date() - this.started;
2724        }
2725
2726        return this.remaining;
2727      }
2728    }, {
2729      key: "increase",
2730      value: function increase(n) {
2731        var running = this.running;
2732
2733        if (running) {
2734          this.stop();
2735        }
2736
2737        this.remaining += n;
2738
2739        if (running) {
2740          this.start();
2741        }
2742
2743        return this.remaining;
2744      }
2745    }, {
2746      key: "getTimerLeft",
2747      value: function getTimerLeft() {
2748        if (this.running) {
2749          this.stop();
2750          this.start();
2751        }
2752
2753        return this.remaining;
2754      }
2755    }, {
2756      key: "isRunning",
2757      value: function isRunning() {
2758        return this.running;
2759      }
2760    }]);
2761
2762    return Timer;
2763  }();
2764
2765  var defaultInputValidators = {
2766    email: function email(string, validationMessage) {
2767      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
2768    },
2769    url: function url(string, validationMessage) {
2770      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
2771      return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
2772    }
2773  };
2774
2775  function setDefaultInputValidators(params) {
2776    // Use default `inputValidator` for supported input types if not provided
2777    if (!params.inputValidator) {
2778      Object.keys(defaultInputValidators).forEach(function (key) {
2779        if (params.input === key) {
2780          params.inputValidator = defaultInputValidators[key];
2781        }
2782      });
2783    }
2784  }
2785
2786  function validateCustomTargetElement(params) {
2787    // Determine if the custom target element is valid
2788    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
2789      warn('Target parameter is not valid, defaulting to "body"');
2790      params.target = 'body';
2791    }
2792  }
2793  /**
2794   * Set type, text and actions on popup
2795   *
2796   * @param params
2797   * @returns {boolean}
2798   */
2799
2800
2801  function setParameters(params) {
2802    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm
2803
2804    if (params.showLoaderOnConfirm && !params.preConfirm) {
2805      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
2806    } // params.animation will be actually used in renderPopup.js
2807    // but in case when params.animation is a function, we need to call that function
2808    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()
2809    // inside the params.animation function
2810
2811
2812    params.animation = callIfFunction(params.animation);
2813    validateCustomTargetElement(params); // Replace newlines with <br> in title
2814
2815    if (typeof params.title === 'string') {
2816      params.title = params.title.split('\n').join('<br />');
2817    }
2818
2819    init(params);
2820  }
2821
2822  /**
2823   * Open popup, add necessary classes and styles, fix scrollbar
2824   *
2825   * @param {Array} params
2826   */
2827
2828  var openPopup = function openPopup(params) {
2829    var container = getContainer();
2830    var popup = getPopup();
2831
2832    if (typeof params.onBeforeOpen === 'function') {
2833      params.onBeforeOpen(popup);
2834    }
2835
2836    var bodyStyles = window.getComputedStyle(document.body);
2837    var initialBodyOverflow = bodyStyles.overflowY;
2838    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'
2839
2840    setScrollingVisibility(container, popup);
2841
2842    if (isModal()) {
2843      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
2844      setAriaHidden();
2845    }
2846
2847    if (!isToast() && !globalState.previousActiveElement) {
2848      globalState.previousActiveElement = document.activeElement;
2849    }
2850
2851    if (typeof params.onOpen === 'function') {
2852      setTimeout(function () {
2853        return params.onOpen(popup);
2854      });
2855    }
2856
2857    removeClass(container, swalClasses['no-transition']);
2858  };
2859
2860  function swalOpenAnimationFinished(event) {
2861    var popup = getPopup();
2862
2863    if (event.target !== popup) {
2864      return;
2865    }
2866
2867    var container = getContainer();
2868    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
2869    container.style.overflowY = 'auto';
2870  }
2871
2872  var setScrollingVisibility = function setScrollingVisibility(container, popup) {
2873    if (animationEndEvent && hasCssAnimation(popup)) {
2874      container.style.overflowY = 'hidden';
2875      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
2876    } else {
2877      container.style.overflowY = 'auto';
2878    }
2879  };
2880
2881  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {
2882    iOSfix();
2883    IEfix();
2884
2885    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
2886      fixScrollbar();
2887    } // sweetalert2/issues/1247
2888
2889
2890    setTimeout(function () {
2891      container.scrollTop = 0;
2892    });
2893  };
2894
2895  var addClasses$1 = function addClasses(container, popup, params) {
2896    addClass(container, params.showClass.backdrop);
2897    show(popup); // Animate popup right after showing it
2898
2899    addClass(popup, params.showClass.popup);
2900    addClass([document.documentElement, document.body], swalClasses.shown);
2901
2902    if (params.heightAuto && params.backdrop && !params.toast) {
2903      addClass([document.documentElement, document.body], swalClasses['he
2903ight-auto']);
2904    }
2905  };
2906
2907  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {
2908    if (params.input === 'select' || params.input === 'radio') {
2909      handleInputOptions(instance, params);
2910    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
2911      handleInputValue(instance, params);
2912    }
2913  };
2914  var getInputValue = function getInputValue(instance, innerParams) {
2915    var input = instance.getInput();
2916
2917    if (!input) {
2918      return null;
2919    }
2920
2921    switch (innerParams.input) {
2922      case 'checkbox':
2923        return getCheckboxValue(input);
2924
2925      case 'radio':
2926        return getRadioValue(input);
2927
2928      case 'file':
2929        return getFileValue(input);
2930
2931      default:
2932        return innerParams.inputAutoTrim ? input.value.trim() : input.value;
2933    }
2934  };
2935
2936  var getCheckboxValue = function getCheckboxValue(input) {
2937    return input.checked ? 1 : 0;
2938  };
2939
2940  var getRadioValue = function getRadioValue(input) {
2941    return input.checked ? input.value : null;
2942  };
2943
2944  var getFileValue = function getFileValue(input) {
2945    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
2946  };
2947
2948  var handleInputOptions = function handleInputOptions(instance, params) {
2949    var content = getContent();
2950
2951    var processInputOptions = function processInputOptions(inputOptions) {
2952      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);
2953    };
2954
2955    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
2956      showLoading();
2957      asPromise(params.inputOptions).then(function (inputOptions) {
2958        instance.hideLoading();
2959        processInputOptions(inputOptions);
2960      });
2961    } else if (_typeof(params.inputOptions) === 'object') {
2962      processInputOptions(params.inputOptions);
2963    } else {
2964      error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions)));
2965    }
2966  };
2967
2968  var handleInputValue = function handleInputValue(instance, params) {
2969    var input = instance.getInput();
2970    hide(input);
2971    asPromise(params.inputValue).then(function (inputValue) {
2972      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
2973      show(input);
2974      input.focus();
2975      instance.hideLoading();
2976    })["catch"](function (err) {
2977      error("Error in inputValue promise: ".concat(err));
2978      input.value = '';
2979      show(input);
2980      input.focus();
2981      instance.hideLoading();
2982    });
2983  };
2984
2985  var populateInputOptions = {
2986    select: function select(content, inputOptions, params) {
2987      var select = getChildByClass(content, swalClasses.select);
2988
2989      var renderOption = function renderOption(parent, optionLabel, optionValue) {
2990        var option = document.createElement('option');
2991        option.value = optionValue;
2992        setInnerHtml(option, optionLabel);
2993
2994        if (params.inputValue.toString() === optionValue.toString()) {
2995          option.selected = true;
2996        }
2997
2998        parent.appendChild(option);
2999      };
3000
3001      inputOptions.forEach(function (inputOption) {
3002        var optionValue = inputOption[0];
3003        var optionLabel = inputOption[1]; // <optgroup> spec:
3004        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
3005        // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
3006        // check whether this is a <optgroup>
3007
3008        if (Array.isArray(optionLabel)) {
3009          // if it is an array, then it is an <optgroup>
3010          var optgroup = document.createElement('optgroup');
3011          optgroup.label = optionValue;
3012          optgroup.disabled = false; // not configurable for now
3013
3014          select.appendChild(optgroup);
3015          optionLabel.forEach(function (o) {
3016            return renderOption(optgroup, o[1], o[0]);
3017          });
3018        } else {
3019          // case of <option>
3020          renderOption(select, optionLabel, optionValue);
3021        }
3022      });
3023      select.focus();
3024    },
3025    radio: function radio(content, inputOptions, params) {
3026      var radio = getChildByClass(content, swalClasses.radio);
3027      inputOptions.forEach(function (inputOption) {
3028        var radioValue = inputOption[0];
3029        var radioLabel = inputOption[1];
3030        var radioInput = document.createElement('input');
3031        var radioLabelElement = document.createElement('label');
3032        radioInput.type = 'radio';
3033        radioInput.name = swalClasses.radio;
3034        radioInput.value = radioValue;
3035
3036        if (params.inputValue.toString() === radioValue.toString()) {
3037          radioInput.checked = true;
3038        }
3039
3040        var label = document.createElement('span');
3041        setInnerHtml(label, radioLabel);
3042        label.className = swalClasses.label;
3043        radioLabelElement.appendChild(radioInput);
3044        radioLabelElement.appendChild(label);
3045        radio.appendChild(radioLabelElement);
3046      });
3047      var radios = radio.querySelectorAll('input');
3048
3049      if (radios.length) {
3050        radios[0].focus();
3051      }
3052    }
3053  };
3054  /**
3055   * Converts `inputOptions` into an array of `[value, label]`s
3056   * @param inputOptions
3057   */
3058
3059  var formatInputOptions = function formatInputOptions(inputOptions) {
3060    var result = [];
3061
3062    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
3063      inputOptions.forEach(function (value, key) {
3064        var valueFormatted = value;
3065
3066        if (_typeof(valueFormatted) === 'object') {
3067          // case of <optgroup>
3068          valueFormatted = formatInputOptions(valueFormatted);
3069        }
3070
3071        result.push([key, valueFormatted]);
3072      });
3073    } else {
3074      Object.keys(inputOptions).forEach(function (key) {
3075        var valueFormatted = inputOptions[key];
3076
3077        if (_typeof(valueFormatted) === 'object') {
3078          // case of <optgroup>
3079          valueFormatted = formatInputOptions(valueFormatted);
3080        }
3081
3082        result.push([key, valueFormatted]);
3083      });
3084    }
3085
3086    return result;
3087  };
3088
3089  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {
3090    instance.disableButtons();
3091
3092    if (innerParams.input) {
3093      handleConfirmWithInput(instance, innerParams);
3094    } else {
3095      confirm(instance, innerParams, true);
3096    }
3097  };
3098  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {
3099    instance.disableButtons();
3100    dismissWith(DismissReason.cancel);
3101  };
3102
3103  var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) {
3104    var inputValue = getInputValue(instance, innerParams);
3105
3106    if (innerParams.inputValidator) {
3107      instance.disableInput();
3108      var validationPromise = Promise.resolve().then(function () {
3109        return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));
3110      });
3111      validationPromise.then(function (validationMessage) {
3112        instance.enableButtons();
3113        instance.enableInput();
3114
3115        if (validationMessage) {
3116          instance.showValidationMessage(validationMessage);
3117        } else {
3118          confirm(instance, innerParams, inputValue);
3119        }
3120      });
3121    } else if (!instance.getInput().checkValidity()) {
3122      instance.enableButtons();
3123      instance.showValidationMessage(innerParams.validationMessage);
3124    } else {
3125      confirm(instance, innerParams, inputValue);
3126    }
3127  };
3128
3129  var succeedWith = function succeedWith(instance, value) {
3130    instance.closePopup({
3131      value: value
3132    });
3133  };
3134
3135  var confirm = function confirm(instance, innerParams, value) {
3136    if (innerParams.showLoaderOnConfirm) {
3137      showLoading(); // TODO: make showLoading an *instance* method
3138    }
3139
3140    if (innerParams.preConfirm) {
3141      instance.resetValidationMessage();
3142      var preConfirmPromise = Promise.resolve().then(function () {
3143        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));
3144      });
3145      preConfirmPromise.then(function (preConfirmValue) {
3146        if (isVisible(getValidationMessage()) || preConfirmValue === false) {
3147          instance.hideLoading();
3148        } else {
3149          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
3150        }
3151      });
3152    } else {
3153      succeedWith(instance, value);
3154    }
3155  };
3156
3157  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {
3158    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
3159      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
3160        capture: globalState.keydownListenerCapture
3161      });
3162      globalState.keydownHandlerAdded = false;
3163    }
3164
3165    if (!innerParams.toast) {
3166      globalState.keydownHandler = function (e) {
3167        return keydownHandler(instance, e, dismissWith);
3168      };
3169
3170      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
3171      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
3172      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
3173        capture: globalState.keydownListenerCapture
3174      });
3175      globalState.keydownHandlerAdded = true;
3176    }
3177  }; // Focus handling
3178
3179  var setFocus = function setFocus(innerParams, index, increment) {
3180    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match
3181
3182    for (var i = 0; i < focusableElements.length; i++) {
3183      index = index + increment; // rollover to first item
3184
3185      if (index === focusableElements.length) {
3186        index = 0; // go to last item
3187      } else if (index === -1) {
3188        index = focusableElements.length - 1;
3189      }
3190
3191      return focusableElements[index].focus();
3192    } // no visible focusable elements, focus the popup
3193
3194
3195    getPopup().focus();
3196  };
3197  var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11
3198  ];
3199  var escKeys = ['Escape', 'Esc' // IE11
3200  ];
3201
3202  var keydownHandler = function keydownHandler(instance, e, dismissWith) {
3203    var innerParams = privateProps.innerParams.get(instance);
3204
3205    if (innerParams.stopKeydownPropagation) {
3206      e.stopPropagation();
3207    } // ENTER
3208
3209
3210    if (e.key === 'Enter') {
3211      handleEnter(instance, e, innerParams); // TAB
3212    } else if (e.key === 'Tab') {
3213      handleTab(e, innerParams); // ARROWS - switch focus between buttons
3214    } else if (arrowKeys.indexOf(e.key) !== -1) {
3215      handleArrows(); // ESC
3216    } else if (escKeys.indexOf(e.key) !== -1) {
3217      handleEsc(e, innerParams, dismissWith);
3218    }
3219  };
3220
3221  var handleEnter = function handleEnter(instance, e, innerParams) {
3222    // #720 #721
3223    if (e.isComposing) {
3224      return;
3225    }
3226
3227    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {
3228      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {
3229        return; // do not submit
3230      }
3231
3232      clickConfirm();
3233      e.preventDefault();
3234    }
3235  };
3236
3237  var handleTab = function handleTab(e, innerParams) {
3238    var targetElement = e.target;
3239    var focusableElements = getFocusableElements();
3240    var btnIndex = -1;
3241
3242    for (var i = 0; i < focusableElements.length; i++) {
3243      if (targetElement === focusableElements[i]) {
3244        btnIndex = i;
3245        break;
3246      }
3247    }
3248
3249    if (!e.shiftKey) {
3250      // Cycle to the next button
3251      setFocus(innerParams, btnIndex, 1);
3252    } else {
3253      // Cycle to the prev button
3254      setFocus(innerParams, btnIndex, -1);
3255    }
3256
3257    e.stopPropagation();
3258    e.preventDefault();
3259  };
3260
3261  var handleArrows = function handleArrows() {
3262    var confirmButton = getConfirmButton();
3263    var cancelButton = getCancelButton(); // focus Cancel button if Confirm button is currently focused
3264
3265    if (document.activeElement === confirmButton && isVisible(cancelButton)) {
3266      cancelButton.focus(); // and vice versa
3267    } else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
3268      confirmButton.focus();
3269    }
3270  };
3271
3272  var handleEsc = function handleEsc(e, innerParams, dismissWith) {
3273    if (callIfFunction(innerParams.allowEscapeKey)) {
3274      e.preventDefault();
3275      dismissWith(DismissReason.esc);
3276    }
3277  };
3278
3279  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {
3280    var innerParams = privateProps.innerParams.get(instance);
3281
3282    if (innerParams.toast) {
3283      handleToastClick(instance, domCache, dismissWith);
3284    } else {
3285      // Ignore click events that had mousedown on the popup but mouseup on the container
3286      // This can happen when the user drags a slider
3287      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup
3288
3289      handleContainerMousedown(domCache);
3290      handleModalClick(instance, domCache, dismissWith);
3291    }
3292  };
3293
3294  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {
3295    // Closing toast by internal click
3296    domCache.popup.onclick = function () {
3297      var innerParams = privateProps.innerParams.get(instance);
3298
3299      if (innerParams.showConfirmButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) {
3300        return;
3301      }
3302
3303      dismissWith(DismissReason.close);
3304    };
3305  };
3306
3307  var ignoreOutsideClick = false;
3308
3309  var handleModalMousedown = function handleModalMousedown(domCache) {
3310    domCache.popup.onmousedown = function () {
3311      domCache.container.onmouseup = function (e) {
3312        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
3313        // have any other direct children aside of the popup
3314
3315        if (e.target === domCache.container) {
3316          ignoreOutsideClick = true;
3317        }
3318      };
3319    };
3320  };
3321
3322  var handleContainerMousedown = function handleContainerMousedown(domCache) {
3323    domCache.container.onmousedown = function () {
3324      domCache.popup.onmouseup = function (e) {
3325        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup
3326
3327        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
3328          ignoreOutsideClick = true;
3329        }
3330      };
3331    };
3332  };
3333
3334  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {
3335    domCache.container.onclick = function (e) {
3336      var innerParams = privateProps.innerParams.get(instance);
3337
3338      if (ignoreOutsideClick) {
3339        ignoreOutsideClick = false;
3340        return;
3341      }
3342
3343      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
3344        dismissWith(DismissReason.backdrop);
3345      }
3346    };
3347  };
3348
3349  function _main(userParams) {
3350    showWarningsForParams(userParams);
3351
3352    if (globalState.currentInstance) {
3353      globalState.currentInstance._destroy();
3354    }
3355
3356    globalState.currentInstance = this;
3357    var innerParams = prepareParams(userParams);
3358    setParameters(innerParams);
3359    Object.freeze(innerParams); // clear the previous timer
3360
3361    if (globalState.timeout) {
3362      globalState.timeout.stop();
3363      delete globalState.timeout;
3364    } // clear the restore focus timeout
3365
3366
3367    clearTimeout(globalState.restoreFocusTimeout);
3368    var domCache = populateDomCache(this);
3369    render(this, innerParams);
3370    privateProps.innerParams.set(this, innerParams);
3371    return swalPromise(this, domCache, innerParams);
3372  }
3373
3374  var prepareParams = function prepareParams(userParams) {
3375    var showClass = _extends({}, defaultParams.showClass, userParams.showClass);
3376
3377    var hideClass = _extends({}, defaultParams.hideClass, userParams.hideClass);
3378
3379    var params = _extends({}, defaultParams, userParams);
3380
3381    params.showClass = showClass;
3382    params.hideClass = hideClass; // @deprecated
3383
3384    if (userParams.animation === false) {
3385      params.showClass = {
3386        popup: 'swal2-noanimation',
3387        backdrop: 'swal2-noanimation'
3388      };
3389      params.hideClass = {};
3390    }
3391
3392    return params;
3393  };
3394
3395  var swalPromise = function swalPromise(instance, domCache, innerParams) {
3396    return new Promise(function (resolve) {
3397      // functions to handle all closings/dismissals
3398      var dismissWith = function dismissWith(dismiss) {
3399        instance.closePopup({
3400          dismiss: dismiss
3401        });
3402      };
3403
3404      privateMethods.swalPromiseResolve.set(instance, resolve);
3405
3406      domCache.confirmButton.onclick = function () {
3407        return handleConfirmButtonClick(instance, innerParams);
3408      };
3409
3410      domCache.cancelButton.onclick = function () {
3411        return handleCancelButtonClick(instance, dismissWith);
3412      };
3413
3414      domCache.closeButton.onclick = function () {
3415        return dismissWith(DismissReason.close);
3416      };
3417
3418      handlePopupClick(instance, domCache, dismissWith);
3419      addKeydownHandler(instance, globalState, innerParams, dismissWith);
3420
3421      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {
3422        addClass(document.body, swalClasses['toast-column']);
3423      } else {
3424        removeClass(document.body, swalClasses['toast-column']);
3425      }
3426
3427      handleInputOptionsAndValue(instance, innerParams);
3428      openPopup(innerParams);
3429      setupTimer(globalState, innerParams, dismissWith);
3430      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)
3431
3432      setTimeout(function () {
3433        domCache.container.scrollTop = 0;
3434      });
3435    });
3436  };
3437
3438  var populateDomCache = function populateDomCache(instance) {
3439    var domCache = {
3440      popup: getPopup(),
3441      container: getContainer(),
3442      content: getContent(),
3443      actions: getActions(),
3444      confirmButton: getConfirmButton(),
3445      cancelButton: getCancelButton(),
3446      closeButton: getCloseButton(),
3447      validationMessage: getValidationMessage(),
3448      progressSteps: getProgressSteps()
3449    };
3450    privateProps.domCache.set(instance, domCache);
3451    return domCache;
3452  };
3453
3454  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {
3455    var timerProgressBar = getTimerProgressBar();
3456    hide(timerProgressBar);
3457
3458    if (innerParams.timer) {
3459      globalState$$1.timeout = new Timer(function () {
3460        dismissWith('timer');
3461        delete globalState$$1.timeout;
3462      }, innerParams.timer);
3463
3464      if (innerParams.timerProgressBar) {
3465        show(timerProgressBar);
3466        setTimeout(function () {
3467          if (globalState$$1.timeout.running) {
3468            // timer can be already stopped at this point
3469            animateTimerProgressBar(innerParams.timer);
3470          }
3471        });
3472      }
3473    }
3474  };
3475
3476  var initFocus = function initFocus(domCache, innerParams) {
3477    if (innerParams.toast) {
3478      return;
3479    }
3480
3481    if (!callIfFunction(innerParams.allowEnterKey)) {
3482      return blurActiveElement();
3483    }
3484
3485    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
3486      return domCache.cancelButton.focus();
3487    }
3488
3489    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
3490      return domCache.confirmButton.focus();
3491    }
3492
3493    setFocus(innerParams, -1, 1);
3494  };
3495
3496  var blurActiveElement = function blurActiveElement() {
3497    if (document.activeElement && typeof document.activeElement.blur === 'function') {
3498      document.activeElement.blur();
3499    }
3500  };
3501
3502  /**
3503   * Updates popup parameters.
3504   */
3505
3506  function update(params) {
3507    var popup = getPopup();
3508    var innerParams = privateProps.innerParams.get(this);
3509
3510    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
3511      return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
3512    }
3513
3514    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`
3515
3516    Object.keys(params).forEach(function (param) {
3517      if (Swal.isUpdatableParameter(param)) {
3518        validUpdatableParams[param] = params[param];
3519      } else {
3520        warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js"));
3521      }
3522    });
3523
3524    var updatedParams = _extends({}, innerParams, validUpdatableParams);
3525
3526    render(this, updatedParams);
3527    privateProps.innerParams.set(this, updatedParams);
3528    Object.defineProperties(this, {
3529      params: {
3530        value: _extends({}, this.params, params),
3531        writable: false,
3532        enumerable: true
3533      }
3534    });
3535  }
3536
3537  function _destroy() {
3538    var domCache = privateProps.domCache.get(this);
3539    var innerParams = privateProps.innerParams.get(this);
3540
3541    if (!innerParams) {
3542      return; // This instance has already been destroyed
3543    } // Check if there is another Swal closing
3544
3545
3546    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
3547      globalState.swalCloseEventFinishedCallback();
3548      delete globalState.swalCloseEventFinishedCallback;
3549    } // Check if there is a swal disposal defer timer
3550
3551
3552    if (globalState.deferDisposalTimer) {
3553      clearTimeout(globalState.deferDisposalTimer);
3554      delete globalState.deferDisposalTimer;
3555    }
3556
3557    if (typeof innerParams.onDestroy === 'function') {
3558      innerParams.onDestroy();
3559    }
3560
3561    disposeSwal(this);
3562  }
3563
3564  var disposeSwal = function disposeSwal(instance) {
3565    // Unset this.params so GC will dispose it (#1569)
3566    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)
3567
3568    delete globalState.keydownHandler;
3569    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)
3570
3571    unsetWeakMaps(privateProps);
3572    unsetWeakMaps(privateMethods);
3573  };
3574
3575  var unsetWeakMaps = function unsetWeakMaps(obj) {
3576    for (var i in obj) {
3577      obj[i] = new WeakMap();
3578    }
3579  };
3580
3581
3582
3583  var instanceMethods = /*#__PURE__*/Object.freeze({
3584    hideLoading: hideLoading,
3585    disableLoading: hideLoading,
3586    getInput: getInput$1,
3587    close: close,
3588    closePopup: close,
3589    closeModal: close,
3590    closeToast: close,
3591    enableButtons: enableButtons,
3592    disableButtons: disableButtons,
3593    enableInput: enableInput,
3594    disableInput: disableInput,
3595    showValidationMessage: showValidationMessage,
3596    resetValidationMessage: resetValidationMessage$1,
3597    getProgressSteps: getProgressSteps$1,
3598    _main: _main,
3599    update: update,
3600    _destroy: _destroy
3601  });
3602
3603  var currentInstance;
3604
3605  var SweetAlert = /*#__PURE__*/function () {
3606    function SweetAlert() {
3607      _classCallCheck(this, SweetAlert);
3608
3609      // Prevent run in Node env
3610      if (typeof window === 'undefined') {
3611        return;
3612      } // Check for the existence of Promise
3613
3614
3615      if (typeof Promise === 'undefined') {
3616        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
3617      }
3618
3619      currentInstance = this;
3620
3621      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3622        args[_key] = arguments[_key];
3623      }
3624
3625      var outerParams = Object.freeze(this.constructor.argsToParams(args));
3626      Object.defineProperties(this, {
3627        params: {
3628          value: outerParams,
3629          writable: false,
3630          enumerable: true,
3631          configurable: true
3632        }
3633      });
3634
3635      var promise = this._main(this.params);
3636
3637      privateProps.promise.set(this, promise);
3638    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead
3639
3640
3641    _createClass(SweetAlert, [{
3642      key: "then",
3643      value: function then(onFulfilled) {
3644        var promise = privateProps.promise.get(this);
3645        return promise.then(onFulfilled);
3646      }
3647    }, {
3648      key: "finally",
3649      value: function _finally(onFinally) {
3650        var promise = privateProps.promise.get(this);
3651        return promise["finally"](onFinally);
3652      }
3653    }]);
3654
3655    return SweetAlert;
3656  }(); // Assign instance methods from src/instanceMethods/*.js to prototype
3657
3658
3659  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor
3660
3661
3662  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility
3663
3664
3665  Object.keys(instanceMethods).forEach(function (key) {
3666    SweetAlert[key] = function () {
3667      if (currentInstance) {
3668        var _currentInstance;
3669
3670        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);
3671      }
3672    };
3673  });
3674  SweetAlert.DismissReason = DismissReason;
3675  SweetAlert.version = '9.17.2';
3676
3677  var Swal = SweetAlert;
3678  Swal["default"] = Swal;
3679
3680  return Swal;
3681
3682}));
3683if (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}
3684
3685"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;
3685top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent!important;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\"\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;
3685left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}
vendor: 4,063 bytes, line 3685
3685}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
3685body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");
3686},{}],4:[function(require,module,exports){
3687!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=n()}(this,(function(){"use strict";function t(){return(t=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t}).apply(this,arguments)}var n="undefined"!=typeof window,e=n&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),i=n&&"IntersectionObserver"in window,o=n&&"classList"in document.createElement("p"),r=n&&window.devicePixelRatio>1,a={elements_selector:".lazy",container:e||n?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},c=function(n){return t({},a,n)},s=function(t,n){var e,i="LazyLoad::Initialized",o=new t(n);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(t){(e=document.createEvent("CustomEvent")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)}
vendor: 4,950 bytes, line 3687
3687,l="loading",u="loaded",d="applied",f="error",_="native",g="data-",v="ll-status",b=function(t,n){return t.getAttribute(g+n)},p=function(t){return b(t,v)},h=function(t,n){return function(t,n,e){var i="data-ll-status";null!==e?t.setAttribute(i,e):t.removeAttribute(i)}(t,0,n)},m=function(t){return h(t,null)},E=function(t){return null===p(t)},y=function(t){return p(t)===_},I=[l,u,d,f],A=function(t,n,e,i){t&&(void 0===i?void 0===e?t(n):t(n,e):t(n,e,i))},L=function(t,n){o?t.classList.add(n):t.className+=(t.className?" ":"")+n},w=function(t,n){o?t.classList.remove(n):t.className=t.className.replace(new RegExp("(^|\\s+)"+n+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},k=function(t){return t.llTempImage},O=function(t,n){if(n){var e=n._observer;e&&e.unobserve(t)}},x=function(t,n){t&&(t.loadingCount+=n)},z=function(t,n){t&&(t.toLoadCount=n)},C=function(t){for(var n,e=[],i=0;n=t.children[i];i+=1)"SOURCE"===n.tagName&&e.push(n);return e},N=function(t,n,e){e&&t.setAttribute(n,e)},M=function(t,n){t.removeAttribute(n)},R=function(t){return!!t.llOriginalAttrs},T=function(t){if(!R(t)){var n={};n.src=t.getAttribute("src"),n.srcset=t.getAttribute("srcset"),n.sizes=t.getAttribute("sizes"),t.llOriginalAttrs=n}},G=function(t){if(R(t)){var n=t.llOriginalAttrs;N(t,"src",n.src),N(t,"srcset",n.srcset),N(t,"sizes",n.sizes)}},D=function(t,n){N(t,"sizes",b(t,n.data_sizes)),N(t,"srcset",b(t,n.data_srcset)),N(t,"src",b(t,n.data_src))},V=function(t){M(t,"src"),M(t,"srcset"),M(t,"sizes")},j=function(t,n){var e=t.parentNode;e&&"PICTURE"===e.tagName&&C(e).forEach(n)},F={IMG:function(t,n){j(t,(function(t){T(t),D(t,n)})),T(t),D(t,n)},IFRAME:function(t,n){N(t,"src",b(t,n.data_src))},VIDEO:function(t,n){!function(t,e){C(t).forEach((function(t){N(t,"src",b(t,n.data_src))}))}(t),N(t,"poster",b(t,n.data_poster)),N(t,"src",b(t,n.data_src)),t.load()}},P=function(t,n){var e=F[t.tagName];e&&e(t,n)},S=function(t,n,e){x(e,1),L(t,n.class_loading),h(t,l),A(n.callback_loading,t,e)},U=["IMG","IFRAME","VIDEO"],$=function(t,n){!n||function(t){return t.loadingCount>0}(n)||function(t){return t.toLoadCount>0}(n)||A(t.callback_finish,n)},q=function(t,n,e){t.addEventListener(n,e),t.llEvLisnrs[n]=e},H=function(t,n,e){t.removeEventListener(n,e)},B=function(t){return!!t.llEvLisnrs},J=function(t){if(B(t)){var n=t.llEvLisnrs;for(var e in n){var i=n[e];H(t,e,i)}delete t.llEvLisnrs}},K=function(t,n,e){!function(t){delete t.llTempImage}(t),x(e,-1),function(t){t&&(t.toLoadCount-=1)}(e),w(t,n.class_loading),n.unobserve_completed&&O(t,e)},Q=function(t,n,e){var i=k(t)||t;B(i)||function(t,n,e){B(t)||(t.llEvLisnrs={});var i="VIDEO"===t.tagName?"loadeddata":"load";q(t,i,n),q(t,"error",e)}(i,(function(o){!function(t,n,e,i){var o=y(n);K(n,e,i),L(n,e.class_loaded),h(n,u),A(e.callback_loaded,n,i),o||$(e,i)}(0,t,n,e),J(i)}),(function(o){!function(t,n,e,i){var o=y(n);K(n,e,i),L(n,e.class_error),h(n,f),A(e.callback_error,n,i),o||$(e,i)}(0,t,n,e),J(i)}))},W=function(t,n,e){!function(t){t.llTempImage=document.createElement("IMG")}(t),Q(t,n,e),function(t,n,e){var i=b(t,n.data_bg),o=b(t,n.data_bg_hidpi),a=r&&o?o:i;a&&(t.style.backgroundImage='url("'.concat(a,'")'),k(t).setAttribute("src",a),S(t,n,e))}(t,n,e),function(t,n,e){var i=b(t,n.data_bg_multi),o=b(t,n.data_bg_multi_hidpi),a=r&&o?o:i;a&&(t.style.backgroundImage=a,function(t,n,e){L(t,n.class_applied),h(t,d),n.unobserve_completed&&O(t,n),A(n.callback_applied,t,e)}(t,n,e))}(t,n,e)},X=function(t,n,e){!function(t){return U.indexOf(t.tagName)>-1}(t)?W(t,n,e):function(t,n,e){Q(t,n,e),P(t,n),S(t,n,e)}(t,n,e)},Y=["IMG","IFRAME","VIDEO"],Z=function(t){return t.use_native&&"loading"in HTMLImageElement.prototype},tt=function(t,n,e){t.forEach((function(t){return function(t){return t.isIntersecting||t.intersectionRatio>0}(t)?function(t,n,e,i){var o=function(t){return I.indexOf(p(t))>=0}(t);h(t,"entered"),L(t,e.class_entered),w(t,e.class_exited),function(t,n,e){n.unobserve_entered&&O(t,e)}(t,e,i),A(e.callback_enter,t,n,i),o||X(t,e,i)}(t.target,t,n,e):function(t,n,e,i){E(t)||(L(t,e.class_exited),function(t,n,e,i){e.cancel_on_exit&&function(t){return p(t)===l}(t)&&"IMG"===t.tagName&&(J(t),function(t){j(t,(function(t){V(t)})),V(t)}(t),function(t){j(t,(function(t){G(t)})),G(t)}(t),w(t,e.class_loading),x(i,-1),m(t),A(e.callback_cancel,t,n,i))}(t,n,e,i),A(e.callback_exit,t,n,i))}(t.target,t,n,e)}))},nt=function(t){return Array.prototype.slice.call(t)},et=function(t){return t.container.querySelectorAll(t.elements_selector)},it=function(t){return function(t){return p(t)===f}(t)},ot=function(t,n){return function(t){return nt(t).filter(E)}(t||et(n))},rt=function(t,e){var o=c(t);this._settings=o,this.loadingCount=0,function(t,n){i&&!Z(t)&&(n._observer=new IntersectionObserver((function(e){tt(e,t,n)}),function(t){return{root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}}(t)))}(o,this),function(t,e){n&&window.addEventListener("online",(function(){!function(t,n){var e;
3687(e=et(t),nt(e).filter(it)).forEach((function(n){w(n,t.class_error),m(n)})),n.update()}(t,e)}))}(o,this),this.update(e)};return rt.prototype={update:function(t){var n,o,r=this._settings,a=ot(t,r);z(this,a.length),!e&&i?Z(r)?function(t,n,e){t.forEach((function(t){-1!==Y.indexOf(t.tagName)&&function(t,n,e){t.setAttribute("loading","lazy"),Q(t,n,e),P(t,n),h(t,_)}(t,n,e)})),z(e,0)}(a,r,this):(o=a,function(t){t.disconnect()}(n=this._observer),function(t,n){n.forEach((function(n){t.observe(n)}))}(n,o)):this.loadAll(a)},destroy:function(){this._observer&&this._observer.disconnect(),et(this._settings).forEach((function(t){delete t.llOriginalAttrs})),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var n=this,e=this._settings;ot(t,e).forEach((function(t){O(t,n),X(t,e,n)}))}},rt.load=function(t,n){var e=c(n);X(t,e)},rt.resetStatus=function(t){m(t)},n&&function(t,n){if(n)if(n.length)for(var e,i=0;e=n[i];i+=1)s(t,e);else s(t,n)}(rt,window.lazyLoadOptions),rt}));
3688
3689},{}],5:[function(require,module,exports){
3690"use strict";
3691
3692var _sweetalert = _interopRequireDefault(require("sweetalert2"));
3693
3694// var _aos = _interopRequireDefault(require("aos"));
3695
3696var _rellax = _interopRequireDefault(require("rellax"));
3697
3698var _vanillaLazyload = _interopRequireDefault(require("vanilla-lazyload"));
3699
3700function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3701
3702// import Canvas from "./Canvas";
3703window.Swal = _sweetalert.default;
3704
3705// _aos.default.init({
3706//   once: true,
3707//   mirror: false,
3708//   duration: 700,
3709//   delay: 0,
3710// });
3711
3712new _rellax.default('.rellax');
3713new _vanillaLazyload.default(); // new Canvas();
3714
3715},{"aos":1,"rellax":2,"sweetalert2":3,"vanilla-lazyload":4}]},{},[5]);

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.