{"version":3,"file":"./assets/js/vendor.bundle.js","mappings":"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ACfjB,EAAKkI,UAAU1B,GACRxG,EAIOwI,CAAK,IAErBh8H,EAAOC,QAAU+zH,I,SCp9EjB,MAAMnH,EAAW,2BACXoP,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGp3H,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAASq3H,EAAUnxH,GACjB,OAAOlG,EAAO,MAAOkG,EAAI,KAO3B,SAASlG,KAAUikB,GAEjB,OADeA,EAAK3e,KAAK/H,IAAM6P,OApBjBlH,EAoBwB3I,GAlBpB,iBAAP2I,EAAwBA,EAE5BA,EAAGkH,OAHM,KADlB,IAAgBlH,KAoB4B0rB,KAAK,IAibjD32B,EAAOC,QAraP,SAAoBuzH,GAQlB,MAMM6I,EAAaxP,EACbj/B,EACG,KADHA,EAEC,MAED0uC,EAAU,CACdh4C,MAAO,sBACPnvE,IAAK,4BAKLonH,kBAAmB,CAAC9nH,EAAOugD,KACzB,MAAMwnE,EAAkB/nH,EAAM,GAAG9P,OAAS8P,EAAMiW,MAC1C+xG,EAAWhoH,EAAM0uC,MAAMq5E,GAIZ,MAAbC,EAMa,MAAbA,IA9Bc,EAAChoH,GAASioH,MAAAA,MAC9B,MAA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","sources":["webpack://landkit/./node_modules/aos/dist/aos.js","webpack://landkit/./node_modules/bigpicture/index.js","webpack://landkit/./node_modules/@popperjs/core/lib/enums.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/math.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/within.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://landkit/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://landkit/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://landkit/./node_modules/@popperjs/core/lib/createPopper.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://landkit/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://landkit/./node_modules/@popperjs/core/lib/popper.js","webpack://landkit/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://landkit/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://landkit/./node_modules/choices.js/public/assets/scripts/choices.js","webpack://landkit/./node_modules/countup.js/dist/countUp.min.js","webpack://landkit/./node_modules/desandro-matches-selector/matches-selector.js","webpack://landkit/./node_modules/dropzone/dist/dropzone.js","webpack://landkit/./node_modules/ev-emitter/ev-emitter.js","webpack://landkit/./node_modules/fizzy-ui-utils/utils.js","webpack://landkit/./node_modules/flickity-as-nav-for/as-nav-for.js","webpack://landkit/./node_modules/flickity-fade/flickity-fade.js","webpack://landkit/./node_modules/flickity-imagesloaded/flickity-imagesloaded.js","webpack://landkit/./node_modules/flickity/js/add-remove-cell.js","webpack://landkit/./node_modules/flickity/js/animate.js","webpack://landkit/./node_modules/flickity/js/cell.js","webpack://landkit/./node_modules/flickity/js/drag.js","webpack://landkit/./node_modules/flickity/js/flickity.js","webpack://landkit/./node_modules/flickity/js/index.js","webpack://landkit/./node_modules/flickity/js/lazyload.js","webpack://landkit/./node_modules/flickity/js/page-dots.js","webpack://landkit/./node_modules/flickity/js/player.js","webpack://landkit/./node_modules/flickity/js/prev-next-button.js","webpack://landkit/./node_modules/flickity/js/slide.js","webpack://landkit/./node_modules/get-size/get-size.js","webpack://landkit/./node_modules/global/window.js","webpack://landkit/./node_modules/highlight.js/lib/core.js","webpack://landkit/./node_modules/highlight.js/lib/languages/javascript.js","webpack://landkit/./node_modules/highlight.js/lib/languages/xml.js","webpack://landkit/./node_modules/imagesloaded/imagesloaded.js","webpack://landkit/./node_modules/isotope-layout/js/isotope.js","webpack://landkit/./node_modules/isotope-layout/js/item.js","webpack://landkit/./node_modules/isotope-layout/js/layout-mode.js","webpack://landkit/./node_modules/isotope-layout/js/layout-modes/fit-rows.js","webpack://landkit/./node_modules/isotope-layout/js/layout-modes/masonry.js","webpack://landkit/./node_modules/isotope-layout/js/layout-modes/vertical.js","webpack://landkit/./node_modules/jarallax/index.js","webpack://landkit/./node_modules/jarallax/src/jarallax-element.esm.js","webpack://landkit/./node_modules/video-worker/src/video-worker.esm.js","webpack://landkit/./node_modules/jarallax/src/jarallax-video.esm.js","webpack://landkit/./node_modules/jarallax/src/jarallax.esm.js","webpack://landkit/./node_modules/lite-ready/liteready.js","webpack://landkit/./node_modules/masonry-layout/masonry.js","webpack://landkit/./node_modules/outlayer/item.js","webpack://landkit/./node_modules/outlayer/outlayer.js","webpack://landkit/./node_modules/quill/dist/quill.js","webpack://landkit/./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack://landkit/./node_modules/typed.js/lib/typed.js","webpack://landkit/./node_modules/unidragger/unidragger.js","webpack://landkit/./node_modules/unipointer/unipointer.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.AOS=t()}(this,function(){\"use strict\";var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},t=\"Expected a function\",n=NaN,o=\"[object Symbol]\",i=/^\\s+|\\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,u=\"object\"==typeof e&&e&&e.Object===Object&&e,d=\"object\"==typeof self&&self&&self.Object===Object&&self,l=u||d||Function(\"return this\")(),f=Object.prototype.toString,m=Math.max,p=Math.min,b=function(){return l.Date.now()};function v(e,n,o){var i,a,r,c,s,u,d=0,l=!1,f=!1,v=!0;if(\"function\"!=typeof e)throw new TypeError(t);function y(t){var n=i,o=a;return i=a=void 0,d=t,c=e.apply(o,n)}function h(e){var t=e-u;return void 0===u||t>=n||t<0||f&&e-d>=r}function k(){var e=b();if(h(e))return x(e);s=setTimeout(k,function(e){var t=n-(e-u);return f?p(t,r-(e-d)):t}(e))}function x(e){return s=void 0,v&&i?y(e):(i=a=void 0,c)}function O(){var e=b(),t=h(e);if(i=arguments,a=this,u=e,t){if(void 0===s)return function(e){return d=e,s=setTimeout(k,n),l?y(e):c}(u);if(f)return s=setTimeout(k,n),y(u)}return void 0===s&&(s=setTimeout(k,n)),c}return n=w(n)||0,g(o)&&(l=!!o.leading,r=(f=\"maxWait\"in o)?m(w(o.maxWait)||0,n):r,v=\"trailing\"in o?!!o.trailing:v),O.cancel=function(){void 0!==s&&clearTimeout(s),d=0,i=u=a=s=void 0},O.flush=function(){return void 0===s?c:x(b())},O}function g(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function w(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&f.call(e)==o}(e))return n;if(g(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(i,\"\");var u=r.test(e);return u||c.test(e)?s(e.slice(2),u?2:8):a.test(e)?n:+e}var y=function(e,n,o){var i=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(t);return g(o)&&(i=\"leading\"in o?!!o.leading:i,a=\"trailing\"in o?!!o.trailing:a),v(e,n,{leading:i,maxWait:n,trailing:a})},h=\"Expected a function\",k=NaN,x=\"[object Symbol]\",O=/^\\s+|\\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,z=parseInt,C=\"object\"==typeof e&&e&&e.Object===Object&&e,A=\"object\"==typeof self&&self&&self.Object===Object&&self,q=C||A||Function(\"return this\")(),L=Object.prototype.toString,T=Math.max,M=Math.min,S=function(){return q.Date.now()};function D(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function H(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&L.call(e)==x}(e))return k;if(D(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=D(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(O,\"\");var n=E.test(e);return n||N.test(e)?z(e.slice(2),n?2:8):j.test(e)?k:+e}var $=function(e,t,n){var o,i,a,r,c,s,u=0,d=!1,l=!1,f=!0;if(\"function\"!=typeof e)throw new TypeError(h);function m(t){var n=o,a=i;return o=i=void 0,u=t,r=e.apply(a,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||l&&e-u>=a}function b(){var e=S();if(p(e))return v(e);c=setTimeout(b,function(e){var n=t-(e-s);return l?M(n,a-(e-u)):n}(e))}function v(e){return c=void 0,f&&o?m(e):(o=i=void 0,r)}function g(){var e=S(),n=p(e);if(o=arguments,i=this,s=e,n){if(void 0===c)return function(e){return u=e,c=setTimeout(b,t),d?m(e):r}(s);if(l)return c=setTimeout(b,t),m(s)}return void 0===c&&(c=setTimeout(b,t)),r}return t=H(t)||0,D(n)&&(d=!!n.leading,a=(l=\"maxWait\"in n)?T(H(n.maxWait)||0,t):a,f=\"trailing\"in n?!!n.trailing:f),g.cancel=function(){void 0!==c&&clearTimeout(c),u=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?r:v(S())},g},W=function(){};function P(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes);if(function e(t){var n=void 0,o=void 0;for(n=0;n<t.length;n+=1){if((o=t[n]).dataset&&o.dataset.aos)return!0;if(o.children&&e(o.children))return!0}return!1}(t.concat(n)))return W()})}function Y(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}var _={isSupported:function(){return!!Y()},ready:function(e,t){var n=window.document,o=new(Y())(P);W=t,o.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}},B=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},F=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}}(),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},K=/(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,G=/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,J=/(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,Q=/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;function R(){return navigator.userAgent||navigator.vendor||window.opera||\"\"}var U=new(function(){function e(){B(this,e)}return F(e,[{key:\"phone\",value:function(){var e=R();return!(!K.test(e)&&!G.test(e.substr(0,4)))}},{key:\"mobile\",value:function(){var e=R();return!(!J.test(e)&&!Q.test(e.substr(0,4)))}},{key:\"tablet\",value:function(){return this.mobile()&&!this.phone()}},{key:\"ie11\",value:function(){return\"-ms-scroll-limit\"in document.documentElement.style&&\"-ms-ime-align\"in document.documentElement.style}}]),e}()),V=function(e,t){var n=void 0;return U.ie11()?(n=document.createEvent(\"CustomEvent\")).initCustomEvent(e,!0,!0,{detail:t}):n=new CustomEvent(e,{detail:t}),document.dispatchEvent(n)},X=function(e){return e.forEach(function(e,t){return function(e,t){var n=e.options,o=e.position,i=e.node,a=(e.data,function(){e.animated&&(function(e,t){t&&t.forEach(function(t){return e.classList.remove(t)})}(i,n.animatedClassNames),V(\"aos:out\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!1)});n.mirror&&t>=o.out&&!n.once?a():t>=o.in?e.animated||(function(e,t){t&&t.forEach(function(t){return e.classList.add(t)})}(i,n.animatedClassNames),V(\"aos:in\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!0):e.animated&&!n.once&&a()}(e,window.pageYOffset)})},Z=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}},ee=function(e,t,n){var o=e.getAttribute(\"data-aos-\"+t);if(void 0!==o){if(\"true\"===o)return!0;if(\"false\"===o)return!1}return o||n},te=function(e,t){return e.forEach(function(e,n){var o=ee(e.node,\"mirror\",t.mirror),i=ee(e.node,\"once\",t.once),a=ee(e.node,\"id\"),r=t.useClassNames&&e.node.getAttribute(\"data-aos\"),c=[t.animatedClassName].concat(r?r.split(\" \"):[]).filter(function(e){return\"string\"==typeof e});t.initClassName&&e.node.classList.add(t.initClassName),e.position={in:function(e,t,n){var o=window.innerHeight,i=ee(e,\"anchor\"),a=ee(e,\"anchor-placement\"),r=Number(ee(e,\"offset\",a?0:t)),c=a||n,s=e;i&&document.querySelectorAll(i)&&(s=document.querySelectorAll(i)[0]);var u=Z(s).top-o;switch(c){case\"top-bottom\":break;case\"center-bottom\":u+=s.offsetHeight/2;break;case\"bottom-bottom\":u+=s.offsetHeight;break;case\"top-center\":u+=o/2;break;case\"center-center\":u+=o/2+s.offsetHeight/2;break;case\"bottom-center\":u+=o/2+s.offsetHeight;break;case\"top-top\":u+=o;break;case\"bottom-top\":u+=o+s.offsetHeight;break;case\"center-top\":u+=o+s.offsetHeight/2}return u+r}(e.node,t.offset,t.anchorPlacement),out:o&&function(e,t){window.innerHeight;var n=ee(e,\"anchor\"),o=ee(e,\"offset\",t),i=e;return n&&document.querySelectorAll(n)&&(i=document.querySelectorAll(n)[0]),Z(i).top+i.offsetHeight-o}(e.node,t.offset)},e.options={once:i,mirror:o,animatedClassNames:c,id:a}}),e},ne=function(){var e=document.querySelectorAll(\"[data-aos]\");return Array.prototype.map.call(e,function(e){return{node:e}})},oe=[],ie=!1,ae={offset:120,delay:0,easing:\"ease\",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:\"top-bottom\",startEvent:\"DOMContentLoaded\",animatedClassName:\"aos-animate\",initClassName:\"aos-init\",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50},re=function(){return document.all&&!window.atob},ce=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(ie=!0),ie&&(oe=te(oe,ae),X(oe),window.addEventListener(\"scroll\",y(function(){X(oe,ae.once)},ae.throttleDelay)))},se=function(){if(oe=ne(),de(ae.disable)||re())return ue();ce()},ue=function(){oe.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\"),ae.initClassName&&e.node.classList.remove(ae.initClassName),ae.animatedClassName&&e.node.classList.remove(ae.animatedClassName)})},de=function(e){return!0===e||\"mobile\"===e&&U.mobile()||\"phone\"===e&&U.phone()||\"tablet\"===e&&U.tablet()||\"function\"==typeof e&&!0===e()};return{init:function(e){return ae=I(ae,e),oe=ne(),ae.disableMutationObserver||_.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 '),ae.disableMutationObserver=!0),ae.disableMutationObserver||_.ready(\"[data-aos]\",se),de(ae.disable)||re()?ue():(document.querySelector(\"body\").setAttribute(\"data-aos-easing\",ae.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",ae.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",ae.delay),-1===[\"DOMContentLoaded\",\"load\"].indexOf(ae.startEvent)?document.addEventListener(ae.startEvent,function(){ce(!0)}):window.addEventListener(\"load\",function(){ce(!0)}),\"DOMContentLoaded\"===ae.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1&&ce(!0),window.addEventListener(\"resize\",$(ce,ae.debounceDelay,!0)),window.addEventListener(\"orientationchange\",$(ce,ae.debounceDelay,!0)),oe)},refresh:ce,refreshHard:se}});\n","// BigPicture.js | license MIT | henrygd.me/bigpicture\n\n// trigger element used to open popup\nvar el;\n\n// set to true after first interaction\nvar initialized;\n\n// container element holding html needed for script\nvar container;\n\n// currently active display element (image, video, youtube / vimeo iframe container)\nvar displayElement;\n\n// popup image element\nvar displayImage;\n\n// popup video element\nvar displayVideo;\n\n// popup audio element\nvar displayAudio;\n\n// container element to hold youtube / vimeo iframe\nvar iframeContainer;\n\n// iframe to hold youtube / vimeo player\nvar iframeSiteVid;\n\n// store requested image source\nvar imgSrc;\n\n// button that closes the container\nvar closeButton;\n\n// youtube / vimeo video id\nvar siteVidID;\n\n// keeps track of loading icon display state\nvar isLoading;\n\n// timeout to check video status while loading\nvar checkMediaTimeout;\n\n// loading icon element\nvar loadingIcon;\n\n// caption element\nvar caption;\n\n// caption content element\nvar captionText;\n\n// store caption content\nvar captionContent;\n\n// hide caption button element\nvar captionHideButton;\n\n// open state for container element\nvar isOpen;\n\n// gallery open state\nvar galleryOpen;\n\n// used during close animation to avoid triggering timeout twice\nvar isClosing;\n\n// array of prev viewed image urls to check if cached before showing loading icon\nvar imgCache = [];\n\n// store whether image requested is remote or local\nvar remoteImage;\n\n// store animation opening callbacks\nvar animationStart;\nvar animationEnd;\n\n// store changeGalleryImage callback\nvar onChangeImage;\n\n// gallery left / right icons\nvar rightArrowBtn;\n\nvar leftArrowBtn;\n\n// position of gallery\nvar galleryPosition;\n\n// hold active gallery els / image src\nvar galleryEls;\n\n// counter element\nvar galleryCounter;\n\n// store images in gallery that are being loaded\nvar preloadedImages = {};\n\n// whether device supports touch events\nvar supportsTouch;\n\n// options object\nvar opts;\n\n// Save bytes in the minified version\nvar appendEl = 'appendChild';\nvar createEl = 'createElement';\nvar removeEl = 'removeChild';\n\nfunction BigPicture (options) {\n\t// initialize called on initial open to create elements / style / event handlers\n\tinitialized || initialize();\n\n\t// clear currently loading stuff\n\tif (isLoading) {\n\t\tclearTimeout(checkMediaTimeout);\n\t\tremoveContainer();\n\t}\n\n\topts = options;\n\n\t// store video id if youtube / vimeo video is requested\n\tsiteVidID = options.ytSrc || options.vimeoSrc;\n\n\t// store optional callbacks\n\tanimationStart = options.animationStart;\n\tanimationEnd = options.animationEnd;\n\tonChangeImage = options.onChangeImage;\n\n\t// set trigger element\n\tel = options.el;\n\n\t// wipe existing remoteImage state\n\tremoteImage = false;\n\n\t// set caption if provided\n\tcaptionContent = el.getAttribute('data-caption');\n\n\tif (options.gallery) {\n\t\tmakeGallery(options.gallery, options.position);\n\t} else if (siteVidID || options.iframeSrc) {\n\t\t// if vimeo, youtube, or iframe video\n\t\t// toggleLoadingIcon(true)\n\t\tdisplayElement = iframeContainer;\n\t\tcreateIframe();\n\t} else if (options.imgSrc) {\n\t\t// if remote image\n\t\tremoteImage = true;\n\t\timgSrc = options.imgSrc;\n\t\t!~imgCache.indexOf(imgSrc) && toggleLoadingIcon(true);\n\t\tdisplayElement = displayImage;\n\t\tdisplayElement.src = imgSrc;\n\t} else if (options.audio) {\n\t\t// if direct video link\n\t\ttoggleLoadingIcon(true);\n\t\tdisplayElement = displayAudio;\n\t\tdisplayElement.src = options.audio;\n\t\tcheckMedia('audio file');\n\t} else if (options.vidSrc) {\n\t\t// if direct video link\n\t\ttoggleLoadingIcon(true);\n\t\tif (options.dimensions) {\n\t\t\tchangeCSS(displayVideo, (\"width:\" + (options.dimensions[0]) + \"px\"));\n\t\t}\n\t\tmakeVidSrc(options.vidSrc);\n\t\tcheckMedia('video');\n\t} else {\n\t\t// local image / background image already loaded on page\n\t\tdisplayElement = displayImage;\n\t\t// get img source or element background image\n\t\tdisplayElement.src =\n\t\t\tel.tagName === 'IMG'\n\t\t\t\t? el.src\n\t\t\t\t: window\n\t\t\t\t\t\t.getComputedStyle(el)\n\t\t\t\t\t\t.backgroundImage.replace(/^url|[(|)|'|\"]/g, '');\n\t}\n\n\t// add container to page\n\tcontainer[appendEl](displayElement);\n\tdocument.body[appendEl](container);\n\treturn {\n\t\tclose: close,\n\t\tnext: function () { return updateGallery(1); },\n\t\tprev: function () { return updateGallery(-1); },\n\t}\n}\n\n// create all needed methods / store dom elements on first use\nfunction initialize() {\n\tvar startX;\n\t// return close button elements\n\tfunction createCloseButton(className) {\n\t\tvar el = document[createEl]('button');\n\t\tel.className = className;\n\t\tel.innerHTML =\n\t\t\t'<svg viewBox=\"0 0 48 48\"><path d=\"M28 24L47 5a3 3 0 1 0-4-4L24 20 5 1a3 3 0 1 0-4 4l19 19L1 43a3 3 0 1 0 4 4l19-19 19 19a3 3 0 0 0 4 0v-4L28 24z\"/></svg>';\n\t\treturn el\n\t}\n\n\tfunction createArrowSymbol(direction, style) {\n\t\tvar el = document[createEl]('button');\n\t\tel.className = 'bp-lr';\n\t\tel.innerHTML =\n\t\t\t'<svg viewBox=\"0 0 129 129\" height=\"70\" fill=\"#fff\"><path d=\"M88.6 121.3c.8.8 1.8 1.2 2.9 1.2s2.1-.4 2.9-1.2a4.1 4.1 0 0 0 0-5.8l-51-51 51-51a4.1 4.1 0 0 0-5.8-5.8l-54 53.9a4.1 4.1 0 0 0 0 5.8l54 53.9z\"/></svg>';\n\t\tchangeCSS(el, style);\n\t\tel.onclick = function (e) {\n\t\t\te.stopPropagation();\n\t\t\tupdateGallery(direction);\n\t\t};\n\t\treturn el\n\t}\n\n\t// add style - if you want to tweak, run through beautifier\n\tvar style = document[createEl]('STYLE');\n\tstyle.innerHTML =\n\t\t'#bp_caption,#bp_container{bottom:0;left:0;right:0;position:fixed;opacity:0}#bp_container>*,#bp_loader{position:absolute;right:0;z-index:10}#bp_container,#bp_caption,#bp_container svg{pointer-events:none}#bp_container{top:0;z-index:9999;background:rgba(0,0,0,.7);opacity:0;transition:opacity .35s}#bp_loader{top:0;left:0;bottom:0;display:flex;align-items:center;cursor:wait;background:0;z-index:9}#bp_loader svg{width:50%;max-width:300px;max-height:50%;margin:auto;animation:bpturn 1s infinite linear}#bp_aud,#bp_container img,#bp_sv,#bp_vid{user-select:none;max-height:96%;max-width:96%;top:0;bottom:0;left:0;margin:auto;box-shadow:0 0 3em rgba(0,0,0,.4);z-index:-1}#bp_sv{background:#111}#bp_sv svg{width:66px}#bp_caption{font-size:.9em;padding:1.3em;background:rgba(15,15,15,.94);color:#fff;text-align:center;transition:opacity .3s}#bp_aud{width:650px;top:calc(50% - 20px);bottom:auto;box-shadow:none}#bp_count{left:0;right:auto;padding:14px;color:rgba(255,255,255,.7);font-size:22px;cursor:default}#bp_container button{position:absolute;border:0;outline:0;background:0;cursor:pointer;transition:all .1s}#bp_container>.bp-x{padding:0;height:41px;width:41px;border-radius:100%;top:8px;right:14px;opacity:.8;line-height:1}#bp_container>.bp-x:focus,#bp_container>.bp-x:hover{background:rgba(255,255,255,.2)}.bp-x svg,.bp-xc svg{height:21px;width:20px;fill:#fff;vertical-align:top;}.bp-xc svg{width:16px}#bp_container .bp-xc{left:2%;bottom:100%;padding:9px 20px 7px;background:#d04444;border-radius:2px 2px 0 0;opacity:.85}#bp_container .bp-xc:focus,#bp_container .bp-xc:hover{opacity:1}.bp-lr{top:50%;top:calc(50% - 130px);padding:99px 0;width:6%;background:0;border:0;opacity:.4;transition:opacity .1s}.bp-lr:focus,.bp-lr:hover{opacity:.8}@keyframes bpf{50%{transform:translatex(15px)}100%{transform:none}}@keyframes bpl{50%{transform:translatex(-15px)}100%{transform:none}}@keyframes bpfl{0%{opacity:0;transform:translatex(70px)}100%{opacity:1;transform:none}}@keyframes bpfr{0%{opacity:0;transform:translatex(-70px)}100%{opacity:1;transform:none}}@keyframes bpfol{0%{opacity:1;transform:none}100%{opacity:0;transform:translatex(-70px)}}@keyframes bpfor{0%{opacity:1;transform:none}100%{opacity:0;transform:translatex(70px)}}@keyframes bpturn{0%{transform:none}100%{transform:rotate(360deg)}}@media (max-width:600px){.bp-lr{font-size:15vw}}';\n\tdocument.head[appendEl](style);\n\n\t// create container element\n\tcontainer = document[createEl]('DIV');\n\tcontainer.id = 'bp_container';\n\tcontainer.onclick = close;\n\tcloseButton = createCloseButton('bp-x');\n\tcontainer[appendEl](closeButton);\n\t// gallery swipe listeners\n\tif ('ontouchstart' in window) {\n\t\tsupportsTouch = true;\n\t\tcontainer.ontouchstart = function (ref) {\n\t\t\tvar changedTouches = ref.changedTouches;\n\n\t\t\tstartX = changedTouches[0].pageX;\n\t\t};\n\t\tcontainer.ontouchmove = function (e) {\n\t\t\te.preventDefault();\n\t\t};\n\t\tcontainer.ontouchend = function (ref) {\n\t\t\tvar changedTouches = ref.changedTouches;\n\n\t\t\tif (!galleryOpen) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar distX = changedTouches[0].pageX - startX;\n\t\t\t// swipe right\n\t\t\tdistX < -30 && updateGallery(1);\n\t\t\t// swipe left\n\t\t\tdistX > 30 && updateGallery(-1);\n\t\t};\n\t}\n\n\t// create display image element\n\tdisplayImage = document[createEl]('IMG');\n\n\t// create display video element\n\tdisplayVideo = document[createEl]('VIDEO');\n\tdisplayVideo.id = 'bp_vid';\n\tdisplayVideo.setAttribute('playsinline', true);\n\tdisplayVideo.controls = true;\n\tdisplayVideo.loop = true;\n\n\t// create audio element\n\tdisplayAudio = document[createEl]('audio');\n\tdisplayAudio.id = 'bp_aud';\n\tdisplayAudio.controls = true;\n\tdisplayAudio.loop = true;\n\n\t// create gallery counter\n\tgalleryCounter = document[createEl]('span');\n\tgalleryCounter.id = 'bp_count';\n\n\t// create caption elements\n\tcaption = document[createEl]('DIV');\n\tcaption.id = 'bp_caption';\n\tcaptionHideButton = createCloseButton('bp-xc');\n\tcaptionHideButton.onclick = toggleCaption.bind(null, false);\n\tcaption[appendEl](captionHideButton);\n\tcaptionText = document[createEl]('SPAN');\n\tcaption[appendEl](captionText);\n\tcontainer[appendEl](caption);\n\n\t// left / right arrow icons\n\trightArrowBtn = createArrowSymbol(1, 'transform:scalex(-1)');\n\tleftArrowBtn = createArrowSymbol(-1, 'left:0;right:auto');\n\n\t// create loading icon element\n\tloadingIcon = document[createEl]('DIV');\n\tloadingIcon.id = 'bp_loader';\n\tloadingIcon.innerHTML =\n\t\t'<svg viewbox=\"0 0 32 32\" fill=\"#fff\" opacity=\".8\"><path d=\"M16 0a16 16 0 0 0 0 32 16 16 0 0 0 0-32m0 4a12 12 0 0 1 0 24 12 12 0 0 1 0-24\" fill=\"#000\" opacity=\".5\"/><path d=\"M16 0a16 16 0 0 1 16 16h-4A12 12 0 0 0 16 4z\"/></svg>';\n\t// create youtube / vimeo container\n\tiframeContainer = document[createEl]('DIV');\n\tiframeContainer.id = 'bp_sv';\n\n\t// create iframe to hold youtube / vimeo player\n\tiframeSiteVid = document[createEl]('IFRAME');\n\tiframeSiteVid.setAttribute('allowfullscreen', true);\n\tiframeSiteVid.allow = 'autoplay; fullscreen';\n\tiframeSiteVid.onload = function () { return iframeContainer[removeEl](loadingIcon); };\n\tchangeCSS(\n\t\tiframeSiteVid,\n\t\t'border:0;position:absolute;height:100%;width:100%;left:0;top:0'\n\t);\n\tiframeContainer[appendEl](iframeSiteVid);\n\n\t// display image bindings for image load and error\n\tdisplayImage.onload = open;\n\tdisplayImage.onerror = open.bind(null, 'image');\n\n\twindow.addEventListener('resize', function () {\n\t\t// adjust loader position on window resize\n\t\tgalleryOpen || (isLoading && toggleLoadingIcon(true));\n\t\t// adjust iframe dimensions\n\t\tdisplayElement === iframeContainer && updateIframeDimensions();\n\t});\n\n\t// close container on escape key press and arrow buttons for gallery\n\tdocument.addEventListener('keyup', function (ref) {\n\t\tvar keyCode = ref.keyCode;\n\n\t\tkeyCode === 27 && isOpen && close();\n\t\tif (galleryOpen) {\n\t\t\tkeyCode === 39 && updateGallery(1);\n\t\t\tkeyCode === 37 && updateGallery(-1);\n\t\t\tkeyCode === 38 && updateGallery(10);\n\t\t\tkeyCode === 40 && updateGallery(-10);\n\t\t}\n\t});\n\t// prevent scrolling with arrow keys if gallery open\n\tdocument.addEventListener('keydown', function (e) {\n\t\tvar usedKeys = [37, 38, 39, 40];\n\t\tif (galleryOpen && ~usedKeys.indexOf(e.keyCode)) {\n\t\t\te.preventDefault();\n\t\t}\n\t});\n\n\t// trap focus within conainer while open\n\tdocument.addEventListener(\n\t\t'focus',\n\t\tfunction (e) {\n\t\t\tif (isOpen && !container.contains(e.target)) {\n\t\t\t\te.stopPropagation();\n\t\t\t\tcloseButton.focus();\n\t\t\t}\n\t\t},\n\t\ttrue\n\t);\n\n\t// all done\n\tinitialized = true;\n}\n\n// return transform style to make full size display el match trigger el size\nfunction getRect() {\n\tvar ref = el.getBoundingClientRect();\n\tvar top = ref.top;\n\tvar left = ref.left;\n\tvar width = ref.width;\n\tvar height = ref.height;\n\tvar leftOffset = left - (container.clientWidth - width) / 2;\n\tvar centerTop = top - (container.clientHeight - height) / 2;\n\tvar scaleWidth = el.clientWidth / displayElement.clientWidth;\n\tvar scaleHeight = el.clientHeight / displayElement.clientHeight;\n\treturn (\"transform:translate3D(\" + leftOffset + \"px, \" + centerTop + \"px, 0) scale3D(\" + scaleWidth + \", \" + scaleHeight + \", 0)\")\n}\n\nfunction makeVidSrc(source) {\n\tif (Array.isArray(source)) {\n\t\tdisplayElement = displayVideo.cloneNode();\n\t\tsource.forEach(function (src) {\n\t\t\tvar source = document[createEl]('SOURCE');\n\t\t\tsource.src = src;\n\t\t\tsource.type = \"video/\" + (src.match(/.(\\w+)$/)[1]);\n\t\t\tdisplayElement[appendEl](source);\n\t\t});\n\t} else {\n\t\tdisplayElement = displayVideo;\n\t\tdisplayElement.src = source;\n\t}\n}\n\nfunction makeGallery(gallery, position) {\n\tvar galleryAttribute = opts.galleryAttribute || 'data-bp';\n\tif (Array.isArray(gallery)) {\n\t\t// is array of images\n\t\tgalleryPosition = position || 0;\n\t\tgalleryEls = gallery;\n\t\tcaptionContent = gallery[galleryPosition].caption;\n\t} else {\n\t\t// is element selector or nodelist\n\t\tgalleryEls = [].slice.call(\n\t\t\ttypeof gallery === 'string'\n\t\t\t\t? document.querySelectorAll((gallery + \" [\" + galleryAttribute + \"]\"))\n\t\t\t\t: gallery\n\t\t);\n\t\t// find initial gallery position\n\t\tvar elIndex = galleryEls.indexOf(el);\n\t\tgalleryPosition =\n\t\t\tposition === 0 || position ? position : elIndex !== -1 ? elIndex : 0;\n\t\t// make gallery object w/ els / src / caption\n\t\tgalleryEls = galleryEls.map(function (el) { return ({\n\t\t\tel: el,\n\t\t\tsrc: el.getAttribute(galleryAttribute),\n\t\t\tcaption: el.getAttribute('data-caption'),\n\t\t}); });\n\t}\n\t// show loading icon if needed\n\tremoteImage = true;\n\t// set initial src to imgSrc so it will be cached in open func\n\timgSrc = galleryEls[galleryPosition].src;\n\t!~imgCache.indexOf(imgSrc) && toggleLoadingIcon(true);\n\tif (galleryEls.length > 1) {\n\t\t// if length is greater than one, add gallery stuff\n\t\tcontainer[appendEl](galleryCounter);\n\t\tgalleryCounter.innerHTML = (galleryPosition + 1) + \"/\" + (galleryEls.length);\n\t\tif (!supportsTouch) {\n\t\t\t// add arrows if device doesn't support touch\n\t\t\tcontainer[appendEl](rightArrowBtn);\n\t\t\tcontainer[appendEl](leftArrowBtn);\n\t\t}\n\t} else {\n\t\t// gallery is one, just show without clutter\n\t\tgalleryEls = false;\n\t}\n\tdisplayElement = displayImage;\n\t// set initial image src\n\tdisplayElement.src = imgSrc;\n}\n\nfunction updateGallery(movement) {\n\tvar galleryLength = galleryEls.length - 1;\n\n\t// only allow one change at a time\n\tif (isLoading) {\n\t\treturn\n\t}\n\n\t// return if requesting out of range image\n\tvar isEnd =\n\t\t(movement > 0 && galleryPosition === galleryLength) ||\n\t\t(movement < 0 && !galleryPosition);\n\tif (isEnd) {\n\t\t// if beginning or end of gallery, run end animation\n\t\tif (!opts.loop) {\n\t\t\tchangeCSS(displayImage, '');\n\t\t\tsetTimeout(\n\t\t\t\tchangeCSS,\n\t\t\t\t9,\n\t\t\t\tdisplayImage,\n\t\t\t\t(\"animation:\" + (movement > 0 ? 'bpl' : 'bpf') + \" .3s;transition:transform .35s\")\n\t\t\t);\n\t\t\treturn\n\t\t}\n\t\t// if gallery is looped, adjust position to beginning / end\n\t\tgalleryPosition = movement > 0 ? -1 : galleryLength + 1;\n\t}\n\n\t// normalize position\n\tgalleryPosition = Math.max(\n\t\t0,\n\t\tMath.min(galleryPosition + movement, galleryLength)\n\t)\n\n\t// load images before and after for quicker scrolling through pictures\n\t;[galleryPosition - 1, galleryPosition, galleryPosition + 1].forEach(\n\t\tfunction (position) {\n\t\t\t// normalize position\n\t\t\tposition = Math.max(0, Math.min(position, galleryLength));\n\t\t\t// cancel if image has already been preloaded\n\t\t\tif (preloadedImages[position]) { return }\n\t\t\tvar src = galleryEls[position].src;\n\t\t\t// create image for preloadedImages\n\t\t\tvar img = document[createEl]('IMG');\n\t\t\timg.addEventListener('load', addToImgCache.bind(null, src));\n\t\t\timg.src = src;\n\t\t\tpreloadedImages[position] = img;\n\t\t}\n\t);\n\t// if image is loaded, show it\n\tif (preloadedImages[galleryPosition].complete) {\n\t\treturn changeGalleryImage(movement)\n\t}\n\t// if not, show loading icon and change when loaded\n\tisLoading = true;\n\tchangeCSS(loadingIcon, 'opacity:.4;');\n\tcontainer[appendEl](loadingIcon);\n\tpreloadedImages[galleryPosition].onload = function () {\n\t\tgalleryOpen && changeGalleryImage(movement);\n\t};\n\t// if error, store error object in el array\n\tpreloadedImages[galleryPosition].onerror = function () {\n\t\tgalleryEls[galleryPosition] = {\n\t\t\terror: 'Error loading image',\n\t\t};\n\t\tgalleryOpen && changeGalleryImage(movement);\n\t};\n}\n\nfunction changeGalleryImage(movement) {\n\tif (isLoading) {\n\t\tcontainer[removeEl](loadingIcon);\n\t\tisLoading = false;\n\t}\n\tvar activeEl = galleryEls[galleryPosition];\n\tif (activeEl.error) {\n\t\t// show alert if error\n\t\talert(activeEl.error);\n\t} else {\n\t\t// add new image, animate images in and out w/ css animation\n\t\tvar oldimg = container.querySelector('img:last-of-type');\n\t\tdisplayImage = displayElement = preloadedImages[galleryPosition];\n\t\tchangeCSS(\n\t\t\tdisplayImage,\n\t\t\t(\"animation:\" + (movement > 0 ? 'bpfl' : 'bpfr') + \" .35s;transition:transform .35s\")\n\t\t);\n\t\tchangeCSS(oldimg, (\"animation:\" + (movement > 0 ? 'bpfol' : 'bpfor') + \" .35s both\"));\n\t\tcontainer[appendEl](displayImage);\n\t\t// update el for closing animation\n\t\tif (activeEl.el) {\n\t\t\tel = activeEl.el;\n\t\t}\n\t}\n\t// update counter\n\tgalleryCounter.innerHTML = (galleryPosition + 1) + \"/\" + (galleryEls.length);\n\t// show / hide caption\n\ttoggleCaption(galleryEls[galleryPosition].caption);\n\t// execute onChangeImage callback\n\tonChangeImage && onChangeImage([displayImage, galleryEls[galleryPosition]]);\n}\n\n// create video iframe\nfunction createIframe() {\n\tvar url;\n\tvar prefix = 'https://';\n\tvar suffix = 'autoplay=1';\n\n\t// create appropriate url\n\tif (opts.ytSrc) {\n\t\turl = prefix + \"www.youtube\" + (opts.ytNoCookie ? '-nocookie' : '') + \".com/embed/\" + siteVidID + \"?html5=1&rel=0&playsinline=1&\" + suffix;\n\t} else if (opts.vimeoSrc) {\n\t\turl = prefix + \"player.vimeo.com/video/\" + siteVidID + \"?\" + suffix;\n\t} else if (opts.iframeSrc) {\n\t\turl = opts.iframeSrc;\n\t}\n\n\t// add loading spinner to iframe container\n\tchangeCSS(loadingIcon, '');\n\tiframeContainer[appendEl](loadingIcon);\n\n\t// set iframe src to url\n\tiframeSiteVid.src = url;\n\n\tupdateIframeDimensions();\n\n\tsetTimeout(open, 9);\n}\n\nfunction updateIframeDimensions() {\n\tvar height;\n\tvar width;\n\n\t// handle height / width / aspect / max width for iframe\n\tvar windowHeight = window.innerHeight * 0.95;\n\tvar windowWidth = window.innerWidth * 0.95;\n\tvar windowAspect = windowHeight / windowWidth;\n\n\tvar ref = opts.dimensions || [1920, 1080];\n\tvar dimensionWidth = ref[0];\n\tvar dimensionHeight = ref[1];\n\n\tvar iframeAspect = dimensionHeight / dimensionWidth;\n\n\tif (iframeAspect > windowAspect) {\n\t\theight = Math.min(dimensionHeight, windowHeight);\n\t\twidth = height / iframeAspect;\n\t} else {\n\t\twidth = Math.min(dimensionWidth, windowWidth);\n\t\theight = width * iframeAspect;\n\t}\n\n\tiframeContainer.style.cssText += \"width:\" + width + \"px;height:\" + height + \"px;\";\n}\n\n// timeout to check video status while loading\nfunction checkMedia(errMsg) {\n\tif (~[1, 4].indexOf(displayElement.readyState)) {\n\t\topen();\n\t\t// short timeout to to make sure controls show in safari 11\n\t\tsetTimeout(function () {\n\t\t\tdisplayElement.play();\n\t\t}, 99);\n\t} else if (displayElement.error) {\n\t\topen(errMsg);\n\t} else {\n\t\tcheckMediaTimeout = setTimeout(checkMedia, 35, errMsg);\n\t}\n}\n\n// hide / show loading icon\nfunction toggleLoadingIcon(bool) {\n\t// don't show loading icon if noLoader is specified\n\tif (opts.noLoader) {\n\t\treturn\n\t}\n\t// bool is true if we want to show icon, false if we want to remove\n\t// change style to match trigger element dimensions if we want to show\n\tbool &&\n\t\tchangeCSS(\n\t\t\tloadingIcon,\n\t\t\t(\"top:\" + (el.offsetTop) + \"px;left:\" + (el.offsetLeft) + \"px;height:\" + (el.clientHeight) + \"px;width:\" + (el.clientWidth) + \"px\")\n\t\t);\n\t// add or remove loader from DOM\n\tel.parentElement[bool ? appendEl : removeEl](loadingIcon);\n\tisLoading = bool;\n}\n\n// hide & show caption\nfunction toggleCaption(captionContent) {\n\tif (captionContent) {\n\t\tcaptionText.innerHTML = captionContent;\n\t}\n\tchangeCSS(\n\t\tcaption,\n\t\t(\"opacity:\" + (captionContent ? \"1;pointer-events:auto\" : '0'))\n\t);\n}\n\nfunction addToImgCache(url) {\n\t!~imgCache.indexOf(url) && imgCache.push(url);\n}\n\n// animate open of image / video; display caption if needed\nfunction open(err) {\n\t// hide loading spinner\n\tisLoading && toggleLoadingIcon();\n\n\t// execute animationStart callback\n\tanimationStart && animationStart();\n\n\t// check if we have an error string instead of normal event\n\tif (typeof err === 'string') {\n\t\tremoveContainer();\n\t\treturn opts.onError\n\t\t\t? opts.onError()\n\t\t\t: alert((\"Error: The requested \" + err + \" could not be loaded.\"))\n\t}\n\n\t// if remote image is loaded, add url to imgCache array\n\tremoteImage && addToImgCache(imgSrc);\n\n\t// transform displayEl to match trigger el\n\tdisplayElement.style.cssText += getRect();\n\n\t// fade in container\n\tchangeCSS(container, \"opacity:1;pointer-events:auto\");\n\n\t// set animationEnd callback to run after animation ends (cleared if container closed)\n\tif (animationEnd) {\n\t\tanimationEnd = setTimeout(animationEnd, 410);\n\t}\n\n\tisOpen = true;\n\n\tgalleryOpen = !!galleryEls;\n\n\t// enlarge displayEl, fade in caption if hasCaption\n\tsetTimeout(function () {\n\t\tdisplayElement.style.cssText += 'transition:transform .35s;transform:none';\n\t\tcaptionContent && setTimeout(toggleCaption, 250, captionContent);\n\t}, 60);\n}\n\n// close active display element\nfunction close(e) {\n\tvar target = e ? e.target : container;\n\tvar clickEls = [\n\t\tcaption,\n\t\tcaptionHideButton,\n\t\tdisplayVideo,\n\t\tdisplayAudio,\n\t\tcaptionText,\n\t\tleftArrowBtn,\n\t\trightArrowBtn,\n\t\tloadingIcon ];\n\n\t// blur to hide close button focus style\n\ttarget.blur();\n\n\t// don't close if one of the clickEls was clicked or container is already closing\n\tif (isClosing || ~clickEls.indexOf(target)) {\n\t\treturn\n\t}\n\n\t// animate closing\n\tdisplayElement.style.cssText += getRect();\n\tchangeCSS(container, 'pointer-events:auto');\n\n\t// timeout to remove els from dom; use variable to avoid calling more than once\n\tsetTimeout(removeContainer, 350);\n\n\t// clear animationEnd timeout\n\tclearTimeout(animationEnd);\n\n\tisOpen = false;\n\tisClosing = true;\n}\n\n// remove container / display element from the DOM\nfunction removeContainer() {\n\t// clear src of displayElement (or iframe if display el is iframe container)\n\t// needs to be done before removing container in IE\n\tvar srcEl =\n\t\tdisplayElement === iframeContainer ? iframeSiteVid : displayElement;\n\tsrcEl.removeAttribute('src');\n\n\t// remove container from DOM & clear inline style\n\tdocument.body[removeEl](container);\n\tcontainer[removeEl](displayElement);\n\tchangeCSS(container, '');\n\tchangeCSS(displayElement, '');\n\n\t// remove caption\n\ttoggleCaption(false);\n\n\tif (galleryOpen) {\n\t\t// remove all gallery stuff\n\t\tvar images = container.querySelectorAll('img');\n\t\tfor (var i = 0; i < images.length; i++) {\n\t\t\tcontainer[removeEl](images[i]);\n\t\t}\n\t\tisLoading && container[removeEl](loadingIcon);\n\t\tcontainer[removeEl](galleryCounter);\n\t\tgalleryOpen = galleryEls = false;\n\t\tpreloadedImages = {};\n\t\tsupportsTouch || container[removeEl](rightArrowBtn);\n\t\tsupportsTouch || container[removeEl](leftArrowBtn);\n\t\t// in case displayimage changed, we need to update event listeners\n\t\tdisplayImage.onload = open;\n\t\tdisplayImage.onerror = open.bind(null, 'image');\n\t}\n\n\t// run close callback\n\topts.onClose && opts.onClose();\n\n\tisClosing = isLoading = false;\n}\n\n// style helper functions\nfunction changeCSS(ref, newStyle) {\n\tvar style = ref.style;\n\n\tstyle.cssText = newStyle;\n}\n\nmodule.exports = BigPicture;\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","// import { isHTMLElement } from './instanceOf';\nexport default function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1; // FIXME:\n // `offsetWidth` returns an integer while `getBoundingClientRect`\n // returns a float. This results in `scaleX` or `scaleY` being\n // non-1 when it should be for elements that aren't a full pixel in\n // width or height.\n // if (isHTMLElement(element) && includeScale) {\n // const offsetHeight = element.offsetHeight;\n // const offsetWidth = element.offsetWidth;\n // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // // Fallback to 1 in case both values are `0`\n // if (offsetWidth > 0) {\n // scaleX = rect.width / offsetWidth || 1;\n // }\n // if (offsetHeight > 0) {\n // scaleY = rect.height / offsetHeight || 1;\n // }\n // }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n};\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n};\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n};\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n};\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n};\n\nconst getElement = obj => {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj);\n }\n\n return null;\n};\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n });\n};\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n};\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n};\n\nconst noop = () => {};\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\nconst reflow = element => {\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n};\n\nconst getjQuery = () => {\n const {\n jQuery\n } = window;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n};\n\nconst DOMContentLoadedCallbacks = [];\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n DOMContentLoadedCallbacks.forEach(callback => callback());\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\n\nconst isRTL = () => document.documentElement.dir === 'rtl';\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\n }\n\n const listLength = list.length;\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\n\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst customEventsRegex = /^(mouseenter|mouseleave)/i;\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target;\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n } // To please ESLint\n\n\n return null;\n };\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events);\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]];\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event;\n }\n }\n\n return null;\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string';\n const originalHandler = delegation ? delegationFn : handler;\n let typeEvent = getTypeEvent(originalTypeEvent);\n const isNative = nativeEvents.has(typeEvent);\n\n if (!isNative) {\n typeEvent = originalTypeEvent;\n }\n\n return [delegation, originalHandler, typeEvent];\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n if (!handler) {\n handler = delegationFn;\n delegationFn = null;\n } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn);\n } else {\n handler = wrapFn(handler);\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\n const events = getEvent(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff;\n return;\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);\n fn.delegationSelector = delegation ? handler : null;\n fn.originalHandler = originalHandler;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, delegation);\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(handlerKey => {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false);\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getEvent(element);\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return;\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\n return;\n }\n\n if (isNamespace) {\n Object.keys(events).forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n });\n }\n\n const storeElementEvent = events[typeEvent] || {};\n Object.keys(storeElementEvent).forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\n }\n });\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n const isNative = nativeEvents.has(typeEvent);\n let jQueryEvent;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n let evt = null;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents');\n evt.initEvent(typeEvent, bubbles, true);\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n });\n } // merge custom information in our event\n\n\n if (typeof args !== 'undefined') {\n Object.keys(args).forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key];\n }\n\n });\n });\n }\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.1.3';\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(propertyName => {\n this[propertyName] = null;\n });\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$d = 'alert';\nconst DATA_KEY$c = 'bs.alert';\nconst EVENT_KEY$c = `.${DATA_KEY$c}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$c}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$c}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$d;\n } // Public\n\n\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n\n if (closeEvent.defaultPrevented) {\n return;\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n } // Private\n\n\n _destroyElement() {\n this._element.remove();\n\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nenableDismissTrigger(Alert, 'close');\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$c = 'button';\nconst DATA_KEY$b = 'bs.button';\nconst EVENT_KEY$b = `.${DATA_KEY$b}`;\nconst DATA_API_KEY$7 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$b}${DATA_API_KEY$7}`;\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$c;\n } // Public\n\n\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nfunction normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n Object.keys(element.dataset).filter(key => key.startsWith('bs')).forEach(key => {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst NODE_TEXT = 3;\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode;\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor);\n }\n\n ancestor = ancestor.parentNode;\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n }\n\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$b = 'carousel';\nconst DATA_KEY$a = 'bs.carousel';\nconst EVENT_KEY$a = `.${DATA_KEY$a}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst ARROW_LEFT_KEY = 'ArrowLeft';\nconst ARROW_RIGHT_KEY = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst SWIPE_THRESHOLD = 40;\nconst Default$a = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n};\nconst DefaultType$a = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n};\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n};\nconst EVENT_SLIDE = `slide${EVENT_KEY$a}`;\nconst EVENT_SLID = `slid${EVENT_KEY$a}`;\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY$a}`;\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY$a}`;\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY$a}`;\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$a}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$a}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$a}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$a}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$a}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$a}`;\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$a}${DATA_API_KEY$6}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SELECTOR_ACTIVE$1 = '.active';\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_INDICATOR = '[data-bs-target]';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this.touchStartX = 0;\n this.touchDeltaX = 0;\n this._config = this._getConfig(config);\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n this._pointerEvent = Boolean(window.PointerEvent);\n\n this._addEventListeners();\n } // Getters\n\n\n static get Default() {\n return Default$a;\n }\n\n static get NAME() {\n return NAME$b;\n } // Public\n\n\n next() {\n this._slide(ORDER_NEXT);\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n\n prev() {\n this._slide(ORDER_PREV);\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n const activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n\n this._slide(order, this._items[index]);\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$a,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$b, config, DefaultType$a);\n return config;\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n const direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0;\n\n if (!direction) {\n return;\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event));\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event));\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n }\n\n _addTouchEventListeners() {\n const hasPointerPenTouch = event => {\n return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n };\n\n const start = event => {\n if (hasPointerPenTouch(event)) {\n this.touchStartX = event.clientX;\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX;\n }\n };\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX;\n };\n\n const end = event => {\n if (hasPointerPenTouch(event)) {\n this.touchDeltaX = event.clientX - this.touchStartX;\n }\n\n this._handleSwipe();\n\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n this.pause();\n\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n }\n };\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault());\n });\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event));\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event));\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n const direction = KEY_TO_DIRECTION[event.key];\n\n if (direction) {\n event.preventDefault();\n\n this._slide(direction);\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT;\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget);\n\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE$2);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder);\n\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n const activeElementIndex = this._getItemIndex(activeElement);\n\n const nextElement = element || this._getItemByOrder(order, activeElement);\n\n const nextElementIndex = this._getItemIndex(nextElement);\n\n const isCycling = Boolean(this._interval);\n const isNext = order === ORDER_NEXT;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n\n const eventDirectionName = this._orderToDirection(order);\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n if (this._isSliding) {\n return;\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n };\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n setTimeout(triggerSlidEvent, 0);\n };\n\n this._queueCallback(completeCallBack, activeElement, true);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n triggerSlidEvent();\n }\n\n if (isCycling) {\n this.cycle();\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction;\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order;\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n } // Static\n\n\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config);\n let {\n _config\n } = data;\n\n if (typeof config === 'object') {\n _config = { ..._config,\n ...config\n };\n }\n\n const action = typeof config === 'string' ? config : _config.slide;\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`);\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n const config = { ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n };\n const slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex);\n }\n\n event.preventDefault();\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\n }\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$a = 'collapse';\nconst DATA_KEY$9 = 'bs.collapse';\nconst EVENT_KEY$9 = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst Default$9 = {\n toggle: true,\n parent: null\n};\nconst DefaultType$9 = {\n toggle: 'boolean',\n parent: '(null|element)'\n};\nconst EVENT_SHOW$5 = `show${EVENT_KEY$9}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$9}`;\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$9}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$9}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$9}${DATA_API_KEY$5}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._isTransitioning = false;\n this._config = this._getConfig(config);\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i];\n const selector = getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElem => foundElem === this._element);\n\n if (selector !== null && filterElement.length) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default$9;\n }\n\n static get NAME() {\n return NAME$a;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let actives = [];\n let activesData;\n\n if (this._config.parent) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); // remove children if greater depth\n }\n\n const container = SelectorEngine.findOne(this._selector);\n\n if (actives.length) {\n const tempActiveData = actives.find(elem => container !== elem);\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.getOrCreateInstance(elemActive, {\n toggle: false\n }).hide();\n }\n\n if (!activesData) {\n Data.set(elemActive, DATA_KEY$9, null);\n }\n });\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$5);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$5);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n\n const triggerArrayLength = this._triggerArray.length;\n\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i];\n const elem = getElementFromSelector(trigger);\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$5);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$9,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n };\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = getElement(config.parent);\n typeCheckConfig(NAME$a, config, DefaultType$9);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => {\n const selected = getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n });\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = getSelectorFromElement(this);\n const selectorElements = SelectorEngine.find(selector);\n selectorElements.forEach(element => {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n });\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$9 = 'dropdown';\nconst DATA_KEY$8 = 'bs.dropdown';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst SPACE_KEY = 'Space';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY = 'ArrowUp';\nconst ARROW_DOWN_KEY = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`);\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$8}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$8}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$8}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$8}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$8}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_NAVBAR = 'navbar';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]';\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst Default$8 = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n};\nconst DefaultType$8 = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n};\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n } // Getters\n\n\n static get Default() {\n return Default$8;\n }\n\n static get DefaultType() {\n return DefaultType$8;\n }\n\n static get NAME() {\n return NAME$9;\n } // Public\n\n\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n const parent = Dropdown.getParentFromElement(this._element); // Totally disable Popper for Dropdowns in Navbar\n\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\n } else {\n this._createPopper(parent);\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', noop));\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n\n this._element.classList.add(CLASS_NAME_SHOW$6);\n\n EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return;\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n };\n\n this._completeHide(relatedTarget);\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n\n super.dispose();\n }\n\n update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n\n\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', noop));\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n\n this._element.setAttribute('aria-expanded', 'false');\n\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);\n }\n\n _getConfig(config) {\n config = { ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n };\n typeCheckConfig(NAME$9, config, this.constructor.DefaultType);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$9.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n\n return config;\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n let referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n const popperConfig = this._getPopperConfig();\n\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false);\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$6);\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\n\n if (!items.length) {\n return;\n } // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n\n\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1)) {\n return;\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const context = Dropdown.getInstance(toggles[i]);\n\n if (!context || context._config.autoClose === false) {\n continue;\n }\n\n if (!context._isShown()) {\n continue;\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n };\n\n if (event) {\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n\n\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n }\n\n context._completeHide(relatedTarget);\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY$2 && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW$6);\n\n if (!isActive && event.key === ESCAPE_KEY$2) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isDisabled(this)) {\n return;\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n\n if (event.key === ESCAPE_KEY$2) {\n instance.hide();\n return;\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show();\n }\n\n instance._selectMenuItem(event);\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n }\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n\n hide() {\n const width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);\n }\n\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n const scrollbarWidth = this.getWidth();\n\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n this._saveInitialAttribute(element, styleProp);\n\n const calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n\n _saveInitialAttribute(element, styleProp) {\n const actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue);\n }\n }\n\n _resetElementAttributes(selector, styleProp) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator.removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n } else {\n SelectorEngine.find(selector, this._element).forEach(callBack);\n }\n }\n\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst Default$7 = {\n className: 'modal-backdrop',\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n};\nconst DefaultType$7 = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n};\nconst NAME$8 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$8}`;\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n } // Private\n\n\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n\n _getConfig(config) {\n config = { ...Default$7,\n ...(typeof config === 'object' ? config : {})\n }; // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n }\n\n _append() {\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.append(this._getElement());\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n\n dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst Default$6 = {\n trapElement: null,\n // The element to trap focus inside of\n autofocus: true\n};\nconst DefaultType$6 = {\n trapElement: 'element',\n autofocus: 'boolean'\n};\nconst NAME$7 = 'focustrap';\nconst DATA_KEY$7 = 'bs.focustrap';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst EVENT_FOCUSIN$1 = `focusin${EVENT_KEY$7}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\n\nclass FocusTrap {\n constructor(config) {\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n activate() {\n const {\n trapElement,\n autofocus\n } = this._config;\n\n if (this._isActive) {\n return;\n }\n\n if (autofocus) {\n trapElement.focus();\n }\n\n EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop\n\n EventHandler.on(document, EVENT_FOCUSIN$1, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n\n deactivate() {\n if (!this._isActive) {\n return;\n }\n\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$7);\n } // Private\n\n\n _handleFocusin(event) {\n const {\n target\n } = event;\n const {\n trapElement\n } = this._config;\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return;\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement);\n\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n\n _getConfig(config) {\n config = { ...Default$6,\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n }\n\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$6 = 'modal';\nconst DATA_KEY$6 = 'bs.modal';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n focus: true\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n};\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$3 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$6}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$6}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY$6}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n } // Getters\n\n\n static get Default() {\n return Default$5;\n }\n\n static get NAME() {\n return NAME$6;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(() => this._showElement(relatedTarget));\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n const isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n this._focustrap.deactivate();\n\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\n }\n\n dispose() {\n [window, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$6));\n\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n }\n\n handleUpdate() {\n this._adjustDialog();\n } // Private\n\n\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _getConfig(config) {\n config = { ...Default$5,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$6, config, DefaultType$5);\n return config;\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated();\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW$4);\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY$1) {\n event.preventDefault();\n this.hide();\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY$1) {\n this._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\n } else {\n EventHandler.off(window, EVENT_RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n this._resetAdjustments();\n\n this._scrollBar.reset();\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n });\n }\n\n _showBackdrop(callback) {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (this._config.backdrop === true) {\n this.hide();\n } else if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const {\n classList,\n scrollHeight,\n style\n } = this._element;\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(() => {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n this._queueCallback(() => {\n style.overflowY = '';\n }, this._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n const scrollbarWidth = this._scrollBar.getWidth();\n\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](relatedTarget);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler.one(target, EVENT_SHOW$3, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n }); // avoid conflict when clicking moddal toggler while another one is open\n\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide();\n }\n\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$5 = 'offcanvas';\nconst DATA_KEY$5 = 'bs.offcanvas';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$5}${DATA_API_KEY$2}`;\nconst ESCAPE_KEY = 'Escape';\nconst Default$4 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$4 = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$2 = `show${EVENT_KEY$5}`;\nconst EVENT_SHOWN$2 = `shown${EVENT_KEY$5}`;\nconst EVENT_HIDE$2 = `hide${EVENT_KEY$5}`;\nconst EVENT_HIDDEN$2 = `hidden${EVENT_KEY$5}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$5}${DATA_API_KEY$2}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n\n this._addEventListeners();\n } // Getters\n\n\n static get NAME() {\n return NAME$5;\n }\n\n static get Default() {\n return Default$4;\n } // Public\n\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$2, {\n relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n this._element.style.visibility = 'visible';\n\n this._backdrop.show();\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.classList.add(CLASS_NAME_SHOW$3);\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.activate();\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN$2, {\n relatedTarget\n });\n };\n\n this._queueCallback(completeCallBack, this._element, true);\n }\n\n hide() {\n if (!this._isShown) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$2);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._focustrap.deactivate();\n\n this._element.blur();\n\n this._isShown = false;\n\n this._element.classList.remove(CLASS_NAME_SHOW$3);\n\n this._backdrop.hide();\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._element.style.visibility = 'hidden';\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN$2);\n };\n\n this._queueCallback(completeCallback, this._element, true);\n }\n\n dispose() {\n this._backdrop.dispose();\n\n this._focustrap.deactivate();\n\n super.dispose();\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$4,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n };\n typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n });\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide();\n }\n });\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n EventHandler.one(target, EVENT_HIDDEN$2, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n }); // avoid conflict when clicking a toggler of an offcanvas, while another is open\n\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n\n if (allReadyOpen && allReadyOpen !== target) {\n Offcanvas.getInstance(allReadyOpen).hide();\n }\n\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$1, () => SelectorEngine.find(OPEN_SELECTOR).forEach(el => Offcanvas.getOrCreateInstance(el).show()));\nenableDismissTrigger(Offcanvas);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));\n }\n\n return true;\n }\n\n const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp); // Check if a regular expression validates the attribute.\n\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attributeName)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i];\n const elementName = element.nodeName.toLowerCase();\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n attributeList.forEach(attribute => {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n });\n }\n\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$4 = 'tooltip';\nconst DATA_KEY$4 = 'bs.tooltip';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst CLASS_PREFIX$1 = 'bs-tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst DefaultType$3 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n};\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n};\nconst Event$2 = {\n HIDE: `hide${EVENT_KEY$4}`,\n HIDDEN: `hidden${EVENT_KEY$4}`,\n SHOW: `show${EVENT_KEY$4}`,\n SHOWN: `shown${EVENT_KEY$4}`,\n INSERTED: `inserted${EVENT_KEY$4}`,\n CLICK: `click${EVENT_KEY$4}`,\n FOCUSIN: `focusin${EVENT_KEY$4}`,\n FOCUSOUT: `focusout${EVENT_KEY$4}`,\n MOUSEENTER: `mouseenter${EVENT_KEY$4}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY$4}`\n};\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst HOVER_STATE_SHOW = 'show';\nconst HOVER_STATE_OUT = 'out';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n super(element); // private\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this._config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n static get Default() {\n return Default$3;\n }\n\n static get NAME() {\n return NAME$4;\n }\n\n static get Event() {\n return Event$2;\n }\n\n static get DefaultType() {\n return DefaultType$3;\n } // Public\n\n\n enable() {\n this._isEnabled = true;\n }\n\n disable() {\n this._isEnabled = false;\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n }\n\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this.tip) {\n this.tip.remove();\n }\n\n this._disposePopper();\n\n super.dispose();\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW);\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n } // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n\n\n if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper();\n\n this.tip.remove();\n this.tip = null;\n }\n\n const tip = this.getTipElement();\n const tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n\n const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;\n\n const attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n const {\n container\n } = this._config;\n Data.set(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED);\n }\n\n if (this._popper) {\n this._popper.update();\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n const customClass = this._resolvePossibleFunction(this._config.customClass);\n\n if (customClass) {\n tip.classList.add(...customClass.split(' '));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop);\n });\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState;\n this._hoverState = null;\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this);\n }\n };\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n }\n\n hide() {\n if (!this._popper) {\n return;\n }\n\n const tip = this.getTipElement();\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW) {\n tip.remove();\n }\n\n this._cleanTipClass();\n\n this._element.removeAttribute('aria-describedby');\n\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN);\n\n this._disposePopper();\n };\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop));\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE$2);\n\n this._queueCallback(complete, this.tip, isAnimated);\n\n this._hoverState = '';\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n\n\n isWithContent() {\n return Boolean(this.getTitle());\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n const element = document.createElement('div');\n element.innerHTML = this._config.template;\n const tip = element.children[0];\n this.setContent(tip);\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n this.tip = tip;\n return this.tip;\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);\n }\n\n _sanitizeAndSetContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n\n if (!content && templateElement) {\n templateElement.remove();\n return;\n } // we use append for html objects to maintain js events\n\n\n this.setElementContent(templateElement, content);\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (isElement(content)) {\n content = getElement(content); // content is a DOM node or a jQuery\n\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.append(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n }\n\n getTitle() {\n const title = this._element.getAttribute('data-bs-original-title') || this._config.title;\n\n return this._resolvePossibleFunction(title);\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n\n\n _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n\n _getOffset() {\n const {\n offset\n } = this._config;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10));\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n\n return offset;\n }\n\n _resolvePossibleFunction(content) {\n return typeof content === 'function' ? content.call(this._element) : content;\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data);\n }\n }\n };\n return { ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n };\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`);\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event));\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;\n EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event));\n EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event));\n }\n });\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n\n if (this._config.selector) {\n this._config = { ...this._config,\n trigger: 'manual',\n selector: ''\n };\n } else {\n this._fixTitle();\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title');\n\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title');\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$2) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context._config.delay.show);\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context._config.delay.hide);\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n config = { ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config.container = config.container === false ? document.body : getElement(config.container);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n }\n\n _getDelegateConfig() {\n const config = {};\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key];\n }\n } // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n\n\n return config;\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement();\n const basicClassPrefixRegex = new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`, 'g');\n const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));\n }\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX$1;\n }\n\n _handlePopperPlacementChange(popperData) {\n const {\n state\n } = popperData;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$3 = 'popover';\nconst DATA_KEY$3 = 'bs.popover';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst CLASS_PREFIX = 'bs-popover';\nconst Default$2 = { ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>'\n};\nconst DefaultType$2 = { ...Tooltip.DefaultType,\n content: '(string|element|function)'\n};\nconst Event$1 = {\n HIDE: `hide${EVENT_KEY$3}`,\n HIDDEN: `hidden${EVENT_KEY$3}`,\n SHOW: `show${EVENT_KEY$3}`,\n SHOWN: `shown${EVENT_KEY$3}`,\n INSERTED: `inserted${EVENT_KEY$3}`,\n CLICK: `click${EVENT_KEY$3}`,\n FOCUSIN: `focusin${EVENT_KEY$3}`,\n FOCUSOUT: `focusout${EVENT_KEY$3}`,\n MOUSEENTER: `mouseenter${EVENT_KEY$3}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY$3}`\n};\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n\n static get NAME() {\n return NAME$3;\n }\n\n static get Event() {\n return Event$1;\n }\n\n static get DefaultType() {\n return DefaultType$2;\n } // Overrides\n\n\n isWithContent() {\n return this.getTitle() || this._getContent();\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);\n\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);\n } // Private\n\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n};\nconst DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n};\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_SCROLL = `scroll${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY$2}${DATA_API_KEY$1}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`;\nconst SELECTOR_DROPDOWN$1 = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst METHOD_OFFSET = 'offset';\nconst METHOD_POSITION = 'position';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;\n this._config = this._getConfig(config);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process());\n this.refresh();\n\n this._process();\n } // Getters\n\n\n static get Default() {\n return Default$1;\n }\n\n static get NAME() {\n return NAME$2;\n } // Public\n\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target);\n targets.map(element => {\n const targetSelector = getSelectorFromElement(element);\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;\n\n if (target) {\n const targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {\n this._offsets.push(item[0]);\n\n this._targets.push(item[1]);\n });\n }\n\n dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY$2);\n super.dispose();\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default$1,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n };\n config.target = getElement(config.target) || document.documentElement;\n typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n }\n\n _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset;\n\n const scrollHeight = this._getScrollHeight();\n\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n const queries = SELECTOR_LINK_ITEMS.split(',').map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`);\n const link = SelectorEngine.findOne(queries.join(','), this._config.target);\n link.classList.add(CLASS_NAME_ACTIVE$1);\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1);\n } else {\n SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1)); // Handle special case when .nav-link is inside .nav-item\n\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE$1));\n });\n });\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n\n _clear() {\n SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target).filter(node => node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE$1));\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy));\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(ScrollSpy);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME$1 = 'tab';\nconst DATA_KEY$1 = 'bs.tab';\nconst EVENT_KEY$1 = `.${DATA_KEY$1}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;\nconst EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;\nconst EVENT_SHOW$1 = `show${EVENT_KEY$1}`;\nconst EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\nconst CLASS_NAME_ACTIVE = 'active';\nconst CLASS_NAME_FADE$1 = 'fade';\nconst CLASS_NAME_SHOW$1 = 'show';\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active';\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]';\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$1;\n } // Public\n\n\n show() {\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n return;\n }\n\n let previous;\n const target = getElementFromSelector(this._element);\n\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n previous = SelectorEngine.find(itemSelector, listElement);\n previous = previous[previous.length - 1];\n }\n\n const hideEvent = previous ? EventHandler.trigger(previous, EVENT_HIDE$1, {\n relatedTarget: this._element\n }) : null;\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, {\n relatedTarget: previous\n });\n\n if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {\n return;\n }\n\n this._activate(this._element, listElement);\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN$1, {\n relatedTarget: this._element\n });\n EventHandler.trigger(this._element, EVENT_SHOWN$1, {\n relatedTarget: previous\n });\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n } // Private\n\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container) : SelectorEngine.children(container, SELECTOR_ACTIVE);\n const active = activeElements[0];\n const isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE$1);\n\n const complete = () => this._transitionComplete(element, active, callback);\n\n if (active && isTransitioning) {\n active.classList.remove(CLASS_NAME_SHOW$1);\n\n this._queueCallback(complete, element, true);\n } else {\n complete();\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE);\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n reflow(element);\n\n if (element.classList.contains(CLASS_NAME_FADE$1)) {\n element.classList.add(CLASS_NAME_SHOW$1);\n }\n\n let parent = element.parentNode;\n\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode;\n }\n\n if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN);\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE));\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n}\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (isDisabled(this)) {\n return;\n }\n\n const data = Tab.getOrCreateInstance(this);\n data.show();\n});\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Tab);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast';\nconst DATA_KEY = 'bs.toast';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\nconst EVENT_SHOW = `show${EVENT_KEY}`;\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\nconst CLASS_NAME_FADE = 'fade';\nconst CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility\n\nconst CLASS_NAME_SHOW = 'show';\nconst CLASS_NAME_SHOWING = 'showing';\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n};\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n};\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element);\n this._config = this._getConfig(config);\n this._timeout = null;\n this._hasMouseInteraction = false;\n this._hasKeyboardInteraction = false;\n\n this._setListeners();\n } // Getters\n\n\n static get DefaultType() {\n return DefaultType;\n }\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._clearTimeout();\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING);\n\n EventHandler.trigger(this._element, EVENT_SHOWN);\n\n this._maybeScheduleHide();\n };\n\n this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated\n\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOW);\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n this._queueCallback(complete, this._element, this._config.animation);\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE); // @deprecated\n\n\n this._element.classList.remove(CLASS_NAME_SHOWING);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n this._queueCallback(complete, this._element, this._config.animation);\n }\n\n dispose() {\n this._clearTimeout();\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n\n super.dispose();\n } // Private\n\n\n _getConfig(config) {\n config = { ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n };\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n }\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return;\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return;\n }\n\n this._timeout = setTimeout(() => {\n this.hide();\n }, this._config.delay);\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout':\n this._hasMouseInteraction = isInteracting;\n break;\n\n case 'focusin':\n case 'focusout':\n this._hasKeyboardInteraction = isInteracting;\n break;\n }\n\n if (isInteracting) {\n this._clearTimeout();\n\n return;\n }\n\n const nextElement = event.relatedTarget;\n\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return;\n }\n\n this._maybeScheduleHide();\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config](this);\n }\n });\n }\n\n}\n\nenableDismissTrigger(Toast);\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Toast);\n\nexport { Alert, Button, Carousel, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast, Tooltip };\n//# sourceMappingURL=bootstrap.esm.js.map\n","/*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n\telse\n\t\troot[\"Choices\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/public/assets/scripts/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\ttry {\n\t\treturn (key in target) // Properties are safe to merge if they don't exist in the target yet,\n\t\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n\t} catch (unused) {\n\t\t// Counterintuitively, it's safe to merge any property on a target that causes the `in` operator to throw.\n\t\t// This happens when trying to copy an object in the source over a plain string in the target.\n\t\treturn false\n\t}\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);\n/* global window */\n\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (true) {\n root = module;\n} else {}\n\nvar result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(root);\n/* harmony default export */ __webpack_exports__[\"a\"] = (result);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(5), __webpack_require__(6)(module)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io)\n * \n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n */\n!function(e,t){ true?module.exports=t():undefined}(this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):\"[object Array]\"===Object.prototype.toString.call(e)}},function(e,t,n){function r(e){return(r=\"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})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=n(2),a=n(8),s=n(0),c=function(){function e(t,n){var r=n.location,o=void 0===r?0:r,i=n.distance,s=void 0===i?100:i,c=n.threshold,h=void 0===c?.6:c,l=n.maxPatternLength,u=void 0===l?32:l,f=n.caseSensitive,d=void 0!==f&&f,v=n.tokenSeparator,p=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,m=n.minMatchCharLength,k=void 0===m?1:m,S=n.id,x=void 0===S?null:S,b=n.keys,M=void 0===b?[]:b,_=n.shouldSort,L=void 0===_||_,w=n.getFn,A=void 0===w?a:w,C=n.sortFn,I=void 0===C?function(e,t){return e.score-t.score}:C,O=n.tokenize,j=void 0!==O&&O,P=n.matchAllTokens,F=void 0!==P&&P,T=n.includeMatches,z=void 0!==T&&T,E=n.includeScore,K=void 0!==E&&E,$=n.verbose,J=void 0!==$&&$;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.options={location:o,distance:s,threshold:h,maxPatternLength:u,isCaseSensitive:d,tokenSeparator:p,findAllMatches:y,minMatchCharLength:k,id:x,keys:M,includeMatches:z,includeScore:K,shouldSort:L,getFn:A,sortFn:I,verbose:J,tokenize:j,matchAllTokens:F},this.setCollection(t)}var t,n,c;return t=e,(n=[{key:\"setCollection\",value:function(e){return this.list=e,e}},{key:\"search\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\\nSearch pattern: \"'.concat(e,'\"'));var n=this._prepareSearchers(e),r=n.tokenSearchers,o=n.fullSearcher,i=this._search(r,o),a=i.weights,s=i.results;return this._computeScore(a,s),this.options.shouldSort&&this._sort(s),t.limit&&\"number\"==typeof t.limit&&(s=s.slice(0,t.limit)),this._format(s)}},{key:\"_prepareSearchers\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),r=0,o=n.length;r<o;r+=1)t.push(new i(n[r],this.options));return{tokenSearchers:t,fullSearcher:new i(e,this.options)}}},{key:\"_search\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,r={},o=[];if(\"string\"==typeof n[0]){for(var i=0,a=n.length;i<a;i+=1)this._analyze({key:\"\",value:n[i],record:i,index:i},{resultMap:r,results:o,tokenSearchers:e,fullSearcher:t});return{weights:null,results:o}}for(var s={},c=0,h=n.length;c<h;c+=1)for(var l=n[c],u=0,f=this.options.keys.length;u<f;u+=1){var d=this.options.keys[u];if(\"string\"!=typeof d){if(s[d.name]={weight:1-d.weight||1},d.weight<=0||d.weight>1)throw new Error(\"Key weight has to be > 0 and <= 1\");d=d.name}else s[d]={weight:1};this._analyze({key:d,value:this.options.getFn(l,d),record:l,index:c},{resultMap:r,results:o,tokenSearchers:e,fullSearcher:t})}return{weights:s,results:o}}},{key:\"_analyze\",value:function(e,t){var n=e.key,r=e.arrayIndex,o=void 0===r?-1:r,i=e.value,a=e.record,c=e.index,h=t.tokenSearchers,l=void 0===h?[]:h,u=t.fullSearcher,f=void 0===u?[]:u,d=t.resultMap,v=void 0===d?{}:d,p=t.results,g=void 0===p?[]:p;if(null!=i){var y=!1,m=-1,k=0;if(\"string\"==typeof i){this._log(\"\\nKey: \".concat(\"\"===n?\"-\":n));var S=f.search(i);if(this._log('Full text: \"'.concat(i,'\", score: ').concat(S.score)),this.options.tokenize){for(var x=i.split(this.options.tokenSeparator),b=[],M=0;M<l.length;M+=1){var _=l[M];this._log('\\nPattern: \"'.concat(_.pattern,'\"'));for(var L=!1,w=0;w<x.length;w+=1){var A=x[w],C=_.search(A),I={};C.isMatch?(I[A]=C.score,y=!0,L=!0,b.push(C.score)):(I[A]=1,this.options.matchAllTokens||b.push(1)),this._log('Token: \"'.concat(A,'\", score: ').concat(I[A]))}L&&(k+=1)}m=b[0];for(var O=b.length,j=1;j<O;j+=1)m+=b[j];m/=O,this._log(\"Token score average:\",m)}var P=S.score;m>-1&&(P=(P+m)/2),this._log(\"Score average:\",P);var F=!this.options.tokenize||!this.options.matchAllTokens||k>=l.length;if(this._log(\"\\nCheck Matches: \".concat(F)),(y||S.isMatch)&&F){var T=v[c];T?T.output.push({key:n,arrayIndex:o,value:i,score:P,matchedIndices:S.matchedIndices}):(v[c]={item:a,output:[{key:n,arrayIndex:o,value:i,score:P,matchedIndices:S.matchedIndices}]},g.push(v[c]))}}else if(s(i))for(var z=0,E=i.length;z<E;z+=1)this._analyze({key:n,arrayIndex:z,value:i[z],record:a,index:c},{resultMap:v,results:g,tokenSearchers:l,fullSearcher:f})}}},{key:\"_computeScore\",value:function(e,t){this._log(\"\\n\\nComputing score:\\n\");for(var n=0,r=t.length;n<r;n+=1){for(var o=t[n].output,i=o.length,a=1,s=1,c=0;c<i;c+=1){var h=e?e[o[c].key].weight:1,l=(1===h?o[c].score:o[c].score||.001)*h;1!==h?s=Math.min(s,l):(o[c].nScore=l,a*=l)}t[n].score=1===s?a:s,this._log(t[n])}}},{key:\"_sort\",value:function(e){this._log(\"\\n\\nSorting....\"),e.sort(this.options.sortFn)}},{key:\"_format\",value:function(e){var t=[];if(this.options.verbose){var n=[];this._log(\"\\n\\nOutput:\\n\\n\",JSON.stringify(e,function(e,t){if(\"object\"===r(t)&&null!==t){if(-1!==n.indexOf(t))return;n.push(t)}return t})),n=null}var o=[];this.options.includeMatches&&o.push(function(e,t){var n=e.output;t.matches=[];for(var r=0,o=n.length;r<o;r+=1){var i=n[r];if(0!==i.matchedIndices.length){var a={indices:i.matchedIndices,value:i.value};i.key&&(a.key=i.key),i.hasOwnProperty(\"arrayIndex\")&&i.arrayIndex>-1&&(a.arrayIndex=i.arrayIndex),t.matches.push(a)}}}),this.options.includeScore&&o.push(function(e,t){t.score=e.score});for(var i=0,a=e.length;i<a;i+=1){var s=e[i];if(this.options.id&&(s.item=this.options.getFn(s.item,this.options.id)[0]),o.length){for(var c={item:s.item},h=0,l=o.length;h<l;h+=1)o[h](s,c);t.push(c)}else t.push(s.item)}return t}},{key:\"_log\",value:function(){var e;this.options.verbose&&(e=console).log.apply(e,arguments)}}])&&o(t.prototype,n),c&&o(t,c),e}();e.exports=c},function(e,t,n){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=n(3),i=n(4),a=n(7),s=function(){function e(t,n){var r=n.location,o=void 0===r?0:r,i=n.distance,s=void 0===i?100:i,c=n.threshold,h=void 0===c?.6:c,l=n.maxPatternLength,u=void 0===l?32:l,f=n.isCaseSensitive,d=void 0!==f&&f,v=n.tokenSeparator,p=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,m=n.minMatchCharLength,k=void 0===m?1:m;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.options={location:o,distance:s,threshold:h,maxPatternLength:u,isCaseSensitive:d,tokenSeparator:p,findAllMatches:y,minMatchCharLength:k},this.pattern=this.options.isCaseSensitive?t:t.toLowerCase(),this.pattern.length<=u&&(this.patternAlphabet=a(this.pattern))}var t,n,s;return t=e,(n=[{key:\"search\",value:function(e){if(this.options.isCaseSensitive||(e=e.toLowerCase()),this.pattern===e)return{isMatch:!0,score:0,matchedIndices:[[0,e.length-1]]};var t=this.options,n=t.maxPatternLength,r=t.tokenSeparator;if(this.pattern.length>n)return o(e,this.pattern,r);var a=this.options,s=a.location,c=a.distance,h=a.threshold,l=a.findAllMatches,u=a.minMatchCharLength;return i(e,this.pattern,this.patternAlphabet,{location:s,distance:c,threshold:h,findAllMatches:l,minMatchCharLength:u})}}])&&r(t.prototype,n),s&&r(t,s),e}();e.exports=s},function(e,t){var n=/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;e.exports=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,\"\\\\$&\").replace(r,\"|\")),i=e.match(o),a=!!i,s=[];if(a)for(var c=0,h=i.length;c<h;c+=1){var l=i[c];s.push([e.indexOf(l),l.length-1])}return{score:a?.5:1,isMatch:a,matchedIndices:s}}},function(e,t,n){var r=n(5),o=n(6);e.exports=function(e,t,n,i){for(var a=i.location,s=void 0===a?0:a,c=i.distance,h=void 0===c?100:c,l=i.threshold,u=void 0===l?.6:l,f=i.findAllMatches,d=void 0!==f&&f,v=i.minMatchCharLength,p=void 0===v?1:v,g=s,y=e.length,m=u,k=e.indexOf(t,g),S=t.length,x=[],b=0;b<y;b+=1)x[b]=0;if(-1!==k){var M=r(t,{errors:0,currentLocation:k,expectedLocation:g,distance:h});if(m=Math.min(M,m),-1!==(k=e.lastIndexOf(t,g+S))){var _=r(t,{errors:0,currentLocation:k,expectedLocation:g,distance:h});m=Math.min(_,m)}}k=-1;for(var L=[],w=1,A=S+y,C=1<<S-1,I=0;I<S;I+=1){for(var O=0,j=A;O<j;){r(t,{errors:I,currentLocation:g+j,expectedLocation:g,distance:h})<=m?O=j:A=j,j=Math.floor((A-O)/2+O)}A=j;var P=Math.max(1,g-j+1),F=d?y:Math.min(g+j,y)+S,T=Array(F+2);T[F+1]=(1<<I)-1;for(var z=F;z>=P;z-=1){var E=z-1,K=n[e.charAt(E)];if(K&&(x[E]=1),T[z]=(T[z+1]<<1|1)&K,0!==I&&(T[z]|=(L[z+1]|L[z])<<1|1|L[z+1]),T[z]&C&&(w=r(t,{errors:I,currentLocation:E,expectedLocation:g,distance:h}))<=m){if(m=w,(k=E)<=g)break;P=Math.max(1,2*g-k)}}if(r(t,{errors:I+1,currentLocation:g,expectedLocation:g,distance:h})>m)break;L=T}return{isMatch:k>=0,score:0===w?.001:w,matchedIndices:o(x,p)}}},function(e,t){e.exports=function(e,t){var n=t.errors,r=void 0===n?0:n,o=t.currentLocation,i=void 0===o?0:o,a=t.expectedLocation,s=void 0===a?0:a,c=t.distance,h=void 0===c?100:c,l=r/e.length,u=Math.abs(s-i);return h?l+u/h:u?1:l}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],r=-1,o=-1,i=0,a=e.length;i<a;i+=1){var s=e[i];s&&-1===r?r=i:s||-1===r||((o=i-1)-r+1>=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,r=0;r<n;r+=1)t[e.charAt(r)]=0;for(var o=0;o<n;o+=1)t[e.charAt(o)]|=1<<n-o-1;return t}},function(e,t,n){var r=n(0);e.exports=function(e,t){return function e(t,n,o){if(n){var i=n.indexOf(\".\"),a=n,s=null;-1!==i&&(a=n.slice(0,i),s=n.slice(i+1));var c=t[a];if(null!=c)if(s||\"string\"!=typeof c&&\"number\"!=typeof c)if(r(c))for(var h=0,l=c.length;h<l;h+=1)e(c[h],s,o);else s&&e(c,s,o);else o.push(c.toString())}else o.push(t);return o}(e,t,[])}}])});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return symbolObservablePonyfill; });\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(7);\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/fuse.js/dist/fuse.js\nvar dist_fuse = __webpack_require__(2);\nvar fuse_default = /*#__PURE__*/__webpack_require__.n(dist_fuse);\n\n// EXTERNAL MODULE: ./node_modules/deepmerge/dist/cjs.js\nvar cjs = __webpack_require__(0);\nvar cjs_default = /*#__PURE__*/__webpack_require__.n(cjs);\n\n// EXTERNAL MODULE: ./node_modules/symbol-observable/es/index.js\nvar es = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changedâ€. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[es[\"a\" /* default */]] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[es[\"a\" /* default */]] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) { var warningMessage; }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n// CONCATENATED MODULE: ./src/scripts/reducers/items.js\nvar defaultState = [];\nfunction items_items(state, action) {\n if (state === void 0) {\n state = defaultState;\n }\n\n switch (action.type) {\n case 'ADD_ITEM':\n {\n // Add object to items array\n var newState = [].concat(state, [{\n id: action.id,\n choiceId: action.choiceId,\n groupId: action.groupId,\n value: action.value,\n label: action.label,\n active: true,\n highlighted: false,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null\n }]);\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.active = false;\n }\n\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM':\n {\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.highlighted = action.highlighted;\n }\n\n return item;\n });\n }\n\n default:\n {\n return state;\n }\n }\n}\n// CONCATENATED MODULE: ./src/scripts/reducers/groups.js\nvar groups_defaultState = [];\nfunction groups(state, action) {\n if (state === void 0) {\n state = groups_defaultState;\n }\n\n switch (action.type) {\n case 'ADD_GROUP':\n {\n return [].concat(state, [{\n id: action.id,\n value: action.value,\n active: action.active,\n disabled: action.disabled\n }]);\n }\n\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n\n default:\n {\n return state;\n }\n }\n}\n// CONCATENATED MODULE: ./src/scripts/reducers/choices.js\nvar choices_defaultState = [];\nfunction choices_choices(state, action) {\n if (state === void 0) {\n state = choices_defaultState;\n }\n\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return [].concat(state, [{\n id: action.id,\n elementId: action.elementId,\n groupId: action.groupId,\n value: action.value,\n label: action.label || action.value,\n disabled: action.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null\n }]);\n }\n\n case 'ADD_ITEM':\n {\n // If all choices need to be activated\n if (action.activateOptions) {\n return state.map(function (obj) {\n var choice = obj;\n choice.active = action.active;\n return choice;\n });\n } // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n\n\n if (action.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = true;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM':\n {\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (action.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = false;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES':\n {\n return state.map(function (obj) {\n var choice = obj; // Set active state based on whether choice is\n // within filtered results\n\n choice.active = action.results.some(function (_ref) {\n var item = _ref.item,\n score = _ref.score;\n\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n\n return false;\n });\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES':\n {\n return state.map(function (obj) {\n var choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES':\n {\n return choices_defaultState;\n }\n\n default:\n {\n return state;\n }\n }\n}\n// CONCATENATED MODULE: ./src/scripts/reducers/general.js\nvar general_defaultState = {\n loading: false\n};\n\nvar general = function general(state, action) {\n if (state === void 0) {\n state = general_defaultState;\n }\n\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return {\n loading: action.isLoading\n };\n }\n\n default:\n {\n return state;\n }\n }\n};\n\n/* harmony default export */ var reducers_general = (general);\n// CONCATENATED MODULE: ./src/scripts/lib/utils.js\n/**\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\nvar getRandomNumber = function getRandomNumber(min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n/**\n * @param {number} length\n * @returns {string}\n */\n\nvar generateChars = function generateChars(length) {\n return Array.from({\n length: length\n }, function () {\n return getRandomNumber(0, 36).toString(36);\n }).join('');\n};\n/**\n * @param {HTMLInputElement | HTMLSelectElement} element\n * @param {string} prefix\n * @returns {string}\n */\n\nvar generateId = function generateId(element, prefix) {\n var id = element.id || element.name && element.name + \"-\" + generateChars(2) || generateChars(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = prefix + \"-\" + id;\n return id;\n};\n/**\n * @param {any} obj\n * @returns {string}\n */\n\nvar getType = function getType(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n/**\n * @param {string} type\n * @param {any} obj\n * @returns {boolean}\n */\n\nvar isType = function isType(type, obj) {\n return obj !== undefined && obj !== null && getType(obj) === type;\n};\n/**\n * @param {HTMLElement} element\n * @param {HTMLElement} [wrapper={HTMLDivElement}]\n * @returns {HTMLElement}\n */\n\nvar utils_wrap = function wrap(element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n\n return wrapper.appendChild(element);\n};\n/**\n * @param {Element} startEl\n * @param {string} selector\n * @param {1 | -1} direction\n * @returns {Element | undefined}\n */\n\nvar getAdjacentEl = function getAdjacentEl(startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n if (!(startEl instanceof Element) || typeof selector !== 'string') {\n return undefined;\n }\n\n var prop = (direction > 0 ? 'next' : 'previous') + \"ElementSibling\";\n var sibling = startEl[prop];\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling[prop];\n }\n\n return sibling;\n};\n/**\n * @param {Element} element\n * @param {Element} parent\n * @param {-1 | 1} direction\n * @returns {boolean}\n */\n\nvar isScrolledIntoView = function isScrolledIntoView(element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n if (!element) {\n return false;\n }\n\n var isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n/**\n * @param {any} value\n * @returns {any}\n */\n\nvar sanitise = function sanitise(value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n return value.replace(/&/g, '&').replace(/>/g, '&rt;').replace(/</g, '<').replace(/\"/g, '"');\n};\n/**\n * @returns {() => (str: string) => Element}\n */\n\nvar strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n\n return firldChild;\n };\n}();\n/**\n * @param {{ label?: string, value: string }} a\n * @param {{ label?: string, value: string }} b\n * @returns {number}\n */\n\nvar sortByAlpha = function sortByAlpha(_ref, _ref2) {\n var value = _ref.value,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? value : _ref$label;\n var value2 = _ref2.value,\n _ref2$label = _ref2.label,\n label2 = _ref2$label === void 0 ? value2 : _ref2$label;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\n/**\n * @param {{ score: number }} a\n * @param {{ score: number }} b\n */\n\nvar sortByScore = function sortByScore(a, b) {\n return a.score - b.score;\n};\n/**\n * @param {HTMLElement} element\n * @param {string} type\n * @param {object} customArgs\n */\n\nvar dispatchEvent = function dispatchEvent(element, type, customArgs) {\n if (customArgs === void 0) {\n customArgs = null;\n }\n\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\n/**\n * @param {array} array\n * @param {any} value\n * @param {string} [key=\"value\"]\n * @returns {boolean}\n */\n\nvar existsInArray = function existsInArray(array, value, key) {\n if (key === void 0) {\n key = 'value';\n }\n\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n};\n/**\n * @param {any} obj\n * @returns {any}\n */\n\nvar cloneObject = function cloneObject(obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n/**\n * Returns an array of keys present on the first but missing on the second object\n * @param {object} a\n * @param {object} b\n * @returns {string[]}\n */\n\nvar diff = function diff(a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};\n// CONCATENATED MODULE: ./src/scripts/reducers/index.js\n\n\n\n\n\n\nvar appReducer = combineReducers({\n items: items_items,\n groups: groups,\n choices: choices_choices,\n general: reducers_general\n});\n\nvar reducers_rootReducer = function rootReducer(passedState, action) {\n var state = passedState; // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n\n if (action.type === 'CLEAR_ALL') {\n state = undefined;\n } else if (action.type === 'RESET_TO') {\n return cloneObject(action.state);\n }\n\n return appReducer(state, action);\n};\n\n/* harmony default export */ var reducers = (reducers_rootReducer);\n// CONCATENATED MODULE: ./src/scripts/store/store.js\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n/**\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n * @typedef {import('../../../types/index').Choices.Group} Group\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\nvar store_Store =\n/*#__PURE__*/\nfunction () {\n function Store() {\n this._store = createStore(reducers, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n * @param {Function} onChange Function to trigger when state changes\n * @return\n */\n\n\n var _proto = Store.prototype;\n\n _proto.subscribe = function subscribe(onChange) {\n this._store.subscribe(onChange);\n }\n /**\n * Dispatch event to store (wrapped Redux method)\n * @param {{ type: string, [x: string]: any }} action Action to trigger\n * @return\n */\n ;\n\n _proto.dispatch = function dispatch(action) {\n this._store.dispatch(action);\n }\n /**\n * Get store object (wrapping Redux method)\n * @returns {object} State\n */\n ;\n\n /**\n * Get loading state from store\n * @returns {boolean} Loading State\n */\n _proto.isLoading = function isLoading() {\n return this.state.general.loading;\n }\n /**\n * Get single choice by it's ID\n * @param {string} id\n * @returns {Choice | undefined} Found choice\n */\n ;\n\n _proto.getChoiceById = function getChoiceById(id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n }\n /**\n * Get group by group id\n * @param {number} id Group ID\n * @returns {Group | undefined} Group data\n */\n ;\n\n _proto.getGroupById = function getGroupById(id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n\n _createClass(Store, [{\n key: \"state\",\n get: function get() {\n return this._store.getState();\n }\n /**\n * Get items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"items\",\n get: function get() {\n return this.state.items;\n }\n /**\n * Get active items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"activeItems\",\n get: function get() {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n }\n /**\n * Get highlighted items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"highlightedActiveItems\",\n get: function get() {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n }\n /**\n * Get choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"choices\",\n get: function get() {\n return this.state.choices;\n }\n /**\n * Get active choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"activeChoices\",\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n }\n /**\n * Get selectable choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"selectableChoices\",\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n }\n /**\n * Get choices that can be searched (excluding placeholders)\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"searchableChoices\",\n get: function get() {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n }\n /**\n * Get placeholder choice from store\n * @returns {Choice | undefined} Found placeholder\n */\n\n }, {\n key: \"placeholderChoice\",\n get: function get() {\n return [].concat(this.choices).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n }\n /**\n * Get groups from store\n * @returns {Group[]} Group objects\n */\n\n }, {\n key: \"groups\",\n get: function get() {\n return this.state.groups;\n }\n /**\n * Get active groups from store\n * @returns {Group[]} Group objects\n */\n\n }, {\n key: \"activeGroups\",\n get: function get() {\n var groups = this.groups,\n choices = this.choices;\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n }\n }]);\n\n return Store;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/components/dropdown.js\nfunction dropdown_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction dropdown_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropdown_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropdown_defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\nvar Dropdown =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {{\n * element: HTMLElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * }} args\n */\n function Dropdown(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n /**\n * Bottom position of dropdown in viewport coordinates\n * @returns {number} Vertical position\n */\n\n\n var _proto = Dropdown.prototype;\n\n /**\n * Find element that matches passed selector\n * @param {string} selector\n * @returns {HTMLElement | null}\n */\n _proto.getChild = function getChild(selector) {\n return this.element.querySelector(selector);\n }\n /**\n * Show dropdown to user by adding active state class\n * @returns {this}\n */\n ;\n\n _proto.show = function show() {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n }\n /**\n * Hide dropdown from user\n * @returns {this}\n */\n ;\n\n _proto.hide = function hide() {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n\n dropdown_createClass(Dropdown, [{\n key: \"distanceFromTopWindow\",\n get: function get() {\n return this.element.getBoundingClientRect().bottom;\n }\n }]);\n\n return Dropdown;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/constants.js\n\n/**\n * @typedef {import('../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../types/index').Choices.Options} Options\n */\n\n/** @type {ClassNames} */\n\nvar DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\n/** @type {Options} */\n\nvar DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function addItemText(value) {\n return \"Press Enter to add <b>\\\"\" + sanitise(value) + \"\\\"</b>\";\n },\n maxItemText: function maxItemText(maxItemCount) {\n return \"Only \" + maxItemCount + \" values can be added\";\n },\n valueComparer: function valueComparer(value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: DEFAULT_CLASSNAMES\n};\nvar EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice'\n};\nvar ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL'\n};\nvar KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nvar TEXT_TYPE = 'text';\nvar SELECT_ONE_TYPE = 'select-one';\nvar SELECT_MULTIPLE_TYPE = 'select-multiple';\nvar SCROLLING_SPEED = 4;\n// CONCATENATED MODULE: ./src/scripts/components/container.js\n\n\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar container_Container =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {{\n * element: HTMLElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * position\n * }} args\n */\n function Container(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames,\n position = _ref.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n var _proto = Container.prototype;\n\n _proto.addEventListeners = function addEventListeners() {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n\n _proto.removeEventListeners = function removeEventListeners() {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n }\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n * @param {number} dropdownPos\n * @returns {boolean}\n */\n ;\n\n _proto.shouldFlip = function shouldFlip(dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n } // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n\n\n var shouldFlip = false;\n\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \" + (dropdownPos + 1) + \"px)\").matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n }\n /**\n * @param {string} activeDescendantID\n */\n ;\n\n _proto.setActiveDescendant = function setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n _proto.removeActiveDescendant = function removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n /**\n * @param {number} dropdownPos\n */\n ;\n\n _proto.open = function open(dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n\n _proto.close = function close() {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false; // A dropdown flips if it does not have space within the page\n\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n\n _proto.focus = function focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n _proto.addFocusState = function addFocusState() {\n this.element.classList.add(this.classNames.focusState);\n };\n\n _proto.removeFocusState = function removeFocusState() {\n this.element.classList.remove(this.classNames.focusState);\n };\n\n _proto.enable = function enable() {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n\n if (this.type === SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n\n this.isDisabled = false;\n };\n\n _proto.disable = function disable() {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n\n if (this.type === SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n\n this.isDisabled = true;\n }\n /**\n * @param {HTMLElement} element\n */\n ;\n\n _proto.wrap = function wrap(element) {\n utils_wrap(element, this.element);\n }\n /**\n * @param {Element} element\n */\n ;\n\n _proto.unwrap = function unwrap(element) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element); // Remove this element\n\n this.element.parentNode.removeChild(this.element);\n };\n\n _proto.addLoadingState = function addLoadingState() {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n\n _proto.removeLoadingState = function removeLoadingState() {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n\n _proto._onFocus = function _onFocus() {\n this.isFocussed = true;\n };\n\n _proto._onBlur = function _onBlur() {\n this.isFocussed = false;\n };\n\n return Container;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/components/input.js\nfunction input_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction input_createClass(Constructor, protoProps, staticProps) { if (protoProps) input_defineProperties(Constructor.prototype, protoProps); if (staticProps) input_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar input_Input =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {{\n * element: HTMLInputElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * preventPaste: boolean\n * }} args\n */\n function Input(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames,\n preventPaste = _ref.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element === document.activeElement;\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n /**\n * @param {string} placeholder\n */\n\n\n var _proto = Input.prototype;\n\n _proto.addEventListeners = function addEventListeners() {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n\n _proto.removeEventListeners = function removeEventListeners() {\n this.element.removeEventListener('input', this._onInput, {\n passive: true\n });\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.removeEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n\n _proto.enable = function enable() {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n\n _proto.disable = function disable() {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n\n _proto.focus = function focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n _proto.blur = function blur() {\n if (this.isFocussed) {\n this.element.blur();\n }\n }\n /**\n * Set value of input to blank\n * @param {boolean} setWidth\n * @returns {this}\n */\n ;\n\n _proto.clear = function clear(setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n }\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n ;\n\n _proto.setWidth = function setWidth() {\n // Resize input to contents or placeholder\n var _this$element = this.element,\n style = _this$element.style,\n value = _this$element.value,\n placeholder = _this$element.placeholder;\n style.minWidth = placeholder.length + 1 + \"ch\";\n style.width = value.length + 1 + \"ch\";\n }\n /**\n * @param {string} activeDescendantID\n */\n ;\n\n _proto.setActiveDescendant = function setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n _proto.removeActiveDescendant = function removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n _proto._onInput = function _onInput() {\n if (this.type !== SELECT_ONE_TYPE) {\n this.setWidth();\n }\n }\n /**\n * @param {Event} event\n */\n ;\n\n _proto._onPaste = function _onPaste(event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n\n _proto._onFocus = function _onFocus() {\n this.isFocussed = true;\n };\n\n _proto._onBlur = function _onBlur() {\n this.isFocussed = false;\n };\n\n input_createClass(Input, [{\n key: \"placeholder\",\n set: function set(placeholder) {\n this.element.placeholder = placeholder;\n }\n /**\n * @returns {string}\n */\n\n }, {\n key: \"value\",\n get: function get() {\n return sanitise(this.element.value);\n }\n /**\n * @param {string} value\n */\n ,\n set: function set(value) {\n this.element.value = value;\n }\n }]);\n\n return Input;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/components/list.js\n\n/**\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\n\nvar list_List =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {{ element: HTMLElement }} args\n */\n function List(_ref) {\n var element = _ref.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n\n var _proto = List.prototype;\n\n _proto.clear = function clear() {\n this.element.innerHTML = '';\n }\n /**\n * @param {Element | DocumentFragment} node\n */\n ;\n\n _proto.append = function append(node) {\n this.element.appendChild(node);\n }\n /**\n * @param {string} selector\n * @returns {Element | null}\n */\n ;\n\n _proto.getChild = function getChild(selector) {\n return this.element.querySelector(selector);\n }\n /**\n * @returns {boolean}\n */\n ;\n\n _proto.hasChildren = function hasChildren() {\n return this.element.hasChildNodes();\n };\n\n _proto.scrollToTop = function scrollToTop() {\n this.element.scrollTop = 0;\n }\n /**\n * @param {Element} element\n * @param {1 | -1} direction\n */\n ;\n\n _proto.scrollToChildElement = function scrollToChildElement(element, direction) {\n var _this = this;\n\n if (!element) {\n return;\n }\n\n var listHeight = this.element.offsetHeight; // Scroll position of dropdown\n\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent\n\n var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position\n\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n /**\n * @param {number} scrollPos\n * @param {number} strength\n * @param {number} destination\n */\n ;\n\n _proto._scrollDown = function _scrollDown(scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n }\n /**\n * @param {number} scrollPos\n * @param {number} strength\n * @param {number} destination\n */\n ;\n\n _proto._scrollUp = function _scrollUp(scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n }\n /**\n * @param {*} destination\n * @param {*} direction\n */\n ;\n\n _proto._animateScroll = function _animateScroll(destination, direction) {\n var _this2 = this;\n\n var strength = SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this2._animateScroll(destination, direction);\n });\n }\n };\n\n return List;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/components/wrapped-element.js\nfunction wrapped_element_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction wrapped_element_createClass(Constructor, protoProps, staticProps) { if (protoProps) wrapped_element_defineProperties(Constructor.prototype, protoProps); if (staticProps) wrapped_element_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar wrapped_element_WrappedElement =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {{\n * element: HTMLInputElement | HTMLSelectElement,\n * classNames: ClassNames,\n * }} args\n */\n function WrappedElement(_ref) {\n var element = _ref.element,\n classNames = _ref.classNames;\n this.element = element;\n this.classNames = classNames;\n\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n var _proto = WrappedElement.prototype;\n\n _proto.conceal = function conceal() {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true; // Remove element from tab index\n\n this.element.tabIndex = -1; // Backup original styles if any\n\n var origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('data-choice', 'active');\n };\n\n _proto.reveal = function reveal() {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex'); // Recover original styles if any\n\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n\n this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n _proto.enable = function enable() {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n\n _proto.disable = function disable() {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n\n _proto.triggerEvent = function triggerEvent(eventType, data) {\n dispatchEvent(this.element, eventType, data);\n };\n\n wrapped_element_createClass(WrappedElement, [{\n key: \"isActive\",\n get: function get() {\n return this.element.dataset.choice === 'active';\n }\n }, {\n key: \"dir\",\n get: function get() {\n return this.element.dir;\n }\n }, {\n key: \"value\",\n get: function get() {\n return this.element.value;\n },\n set: function set(value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n }\n }]);\n\n return WrappedElement;\n}();\n\n\n// CONCATENATED MODULE: ./src/scripts/components/wrapped-input.js\nfunction wrapped_input_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction wrapped_input_createClass(Constructor, protoProps, staticProps) { if (protoProps) wrapped_input_defineProperties(Constructor.prototype, protoProps); if (staticProps) wrapped_input_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n\n/**\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\nvar WrappedInput =\n/*#__PURE__*/\nfunction (_WrappedElement) {\n _inheritsLoose(WrappedInput, _WrappedElement);\n\n /**\n * @param {{\n * element: HTMLInputElement,\n * classNames: ClassNames,\n * delimiter: string\n * }} args\n */\n function WrappedInput(_ref) {\n var _this;\n\n var element = _ref.element,\n classNames = _ref.classNames,\n delimiter = _ref.delimiter;\n _this = _WrappedElement.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.delimiter = delimiter;\n return _this;\n }\n /**\n * @returns {string}\n */\n\n\n wrapped_input_createClass(WrappedInput, [{\n key: \"value\",\n get: function get() {\n return this.element.value;\n }\n /**\n * @param {Item[]} items\n */\n ,\n set: function set(items) {\n var itemValues = items.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var joinedValues = itemValues.join(this.delimiter);\n this.element.setAttribute('value', joinedValues);\n this.element.value = joinedValues;\n }\n }]);\n\n return WrappedInput;\n}(wrapped_element_WrappedElement);\n\n\n// CONCATENATED MODULE: ./src/scripts/components/wrapped-select.js\nfunction wrapped_select_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction wrapped_select_createClass(Constructor, protoProps, staticProps) { if (protoProps) wrapped_select_defineProperties(Constructor.prototype, protoProps); if (staticProps) wrapped_select_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction wrapped_select_inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n\n/**\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../../types/index').Choices.Item} Item\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\n\nvar WrappedSelect =\n/*#__PURE__*/\nfunction (_WrappedElement) {\n wrapped_select_inheritsLoose(WrappedSelect, _WrappedElement);\n\n /**\n * @param {{\n * element: HTMLSelectElement,\n * classNames: ClassNames,\n * delimiter: string\n * template: function\n * }} args\n */\n function WrappedSelect(_ref) {\n var _this;\n\n var element = _ref.element,\n classNames = _ref.classNames,\n template = _ref.template;\n _this = _WrappedElement.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.template = template;\n return _this;\n }\n\n var _proto = WrappedSelect.prototype;\n\n /**\n * @param {DocumentFragment} fragment\n */\n _proto.appendDocFragment = function appendDocFragment(fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n\n wrapped_select_createClass(WrappedSelect, [{\n key: \"placeholderOption\",\n get: function get() {\n return this.element.querySelector('option[value=\"\"]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n }\n /**\n * @returns {Element[]}\n */\n\n }, {\n key: \"optionGroups\",\n get: function get() {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n }\n /**\n * @returns {Item[] | Choice[]}\n */\n\n }, {\n key: \"options\",\n get: function get() {\n return Array.from(this.element.options);\n }\n /**\n * @param {Item[] | Choice[]} options\n */\n ,\n set: function set(options) {\n var _this2 = this;\n\n var fragment = document.createDocumentFragment();\n\n var addOptionToFragment = function addOptionToFragment(data) {\n // Create a standard select option\n var option = _this2.template(data); // Append it to fragment\n\n\n fragment.appendChild(option);\n }; // Add each list item to list\n\n\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n }\n }]);\n\n return WrappedSelect;\n}(wrapped_element_WrappedElement);\n\n\n// CONCATENATED MODULE: ./src/scripts/components/index.js\n\n\n\n\n\n\n\n// CONCATENATED MODULE: ./src/scripts/templates.js\n/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n * @typedef {import('../../types/index').Choices.Templates} Templates\n * @typedef {import('../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../types/index').Choices.Options} Options\n * @typedef {import('../../types/index').Choices.Item} Item\n * @typedef {import('../../types/index').Choices.Choice} Choice\n * @typedef {import('../../types/index').Choices.Group} Group\n */\nvar TEMPLATES =\n/** @type {Templates} */\n{\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {\"ltr\" | \"rtl\" | \"auto\"} dir\n * @param {boolean} isSelectElement\n * @param {boolean} isSelectOneElement\n * @param {boolean} searchEnabled\n * @param {\"select-one\" | \"select-multiple\" | \"text\"} passedElementType\n */\n containerOuter: function containerOuter(_ref, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType) {\n var _containerOuter = _ref.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: _containerOuter\n });\n div.dataset.type = passedElementType;\n\n if (dir) {\n div.dir = dir;\n }\n\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n */\n containerInner: function containerInner(_ref2) {\n var _containerInner = _ref2.containerInner;\n return Object.assign(document.createElement('div'), {\n className: _containerInner\n });\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {boolean} isSelectOneElement\n */\n itemList: function itemList(_ref3, isSelectOneElement) {\n var list = _ref3.list,\n listSingle = _ref3.listSingle,\n listItems = _ref3.listItems;\n return Object.assign(document.createElement('div'), {\n className: list + \" \" + (isSelectOneElement ? listSingle : listItems)\n });\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {string} value\n */\n placeholder: function placeholder(_ref4, value) {\n var _placeholder = _ref4.placeholder;\n return Object.assign(document.createElement('div'), {\n className: _placeholder,\n innerHTML: value\n });\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {Item} item\n * @param {boolean} removeItemButton\n */\n item: function item(_ref5, _ref6, removeItemButton) {\n var _item = _ref5.item,\n button = _ref5.button,\n highlightedState = _ref5.highlightedState,\n itemSelectable = _ref5.itemSelectable,\n placeholder = _ref5.placeholder;\n var id = _ref6.id,\n value = _ref6.value,\n label = _ref6.label,\n customProperties = _ref6.customProperties,\n active = _ref6.active,\n disabled = _ref6.disabled,\n highlighted = _ref6.highlighted,\n isPlaceholder = _ref6.placeholder;\n var div = Object.assign(document.createElement('div'), {\n className: _item,\n innerHTML: label\n });\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), {\n type: 'button',\n className: button,\n innerHTML: REMOVE_ITEM_TEXT\n });\n removeButton.setAttribute('aria-label', REMOVE_ITEM_TEXT + \": '\" + value + \"'\");\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n\n return div;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {boolean} isSelectOneElement\n */\n choiceList: function choiceList(_ref7, isSelectOneElement) {\n var list = _ref7.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n\n div.setAttribute('role', 'listbox');\n return div;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {Group} group\n */\n choiceGroup: function choiceGroup(_ref8, _ref9) {\n var group = _ref8.group,\n groupHeading = _ref8.groupHeading,\n itemDisabled = _ref8.itemDisabled;\n var id = _ref9.id,\n value = _ref9.value,\n disabled = _ref9.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: group + \" \" + (disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n div.appendChild(Object.assign(document.createElement('div'), {\n className: groupHeading,\n innerHTML: value\n }));\n return div;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {Choice} choice\n * @param {Options['itemSelectText']} selectText\n */\n choice: function choice(_ref10, _ref11, selectText) {\n var item = _ref10.item,\n itemChoice = _ref10.itemChoice,\n itemSelectable = _ref10.itemSelectable,\n selectedState = _ref10.selectedState,\n itemDisabled = _ref10.itemDisabled,\n placeholder = _ref10.placeholder;\n var id = _ref11.id,\n value = _ref11.value,\n label = _ref11.label,\n groupId = _ref11.groupId,\n elementId = _ref11.elementId,\n isDisabled = _ref11.disabled,\n isSelected = _ref11.selected,\n isPlaceholder = _ref11.placeholder;\n var div = Object.assign(document.createElement('div'), {\n id: elementId,\n innerHTML: label,\n className: item + \" \" + itemChoice\n });\n\n if (isSelected) {\n div.classList.add(selectedState);\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.setAttribute('role', groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n\n return div;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n * @param {string} placeholderValue\n */\n input: function input(_ref12, placeholderValue) {\n var _input = _ref12.input,\n inputCloned = _ref12.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'text',\n className: _input + \" \" + inputCloned,\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n\n /**\n * @param {Partial<ClassNames>} classNames\n */\n dropdown: function dropdown(_ref13) {\n var list = _ref13.list,\n listDropdown = _ref13.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n\n /**\n *\n * @param {Partial<ClassNames>} classNames\n * @param {string} innerHTML\n * @param {\"no-choices\" | \"no-results\" | \"\"} type\n */\n notice: function notice(_ref14, innerHTML, type) {\n var item = _ref14.item,\n itemChoice = _ref14.itemChoice,\n noResults = _ref14.noResults,\n noChoices = _ref14.noChoices;\n\n if (type === void 0) {\n type = '';\n }\n\n var classes = [item, itemChoice];\n\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n\n return Object.assign(document.createElement('div'), {\n innerHTML: innerHTML,\n className: classes.join(' ')\n });\n },\n\n /**\n * @param {Item} option\n */\n option: function option(_ref15) {\n var label = _ref15.label,\n value = _ref15.value,\n customProperties = _ref15.customProperties,\n active = _ref15.active,\n disabled = _ref15.disabled;\n var opt = new Option(label, value, false, active);\n\n if (customProperties) {\n opt.dataset.customProperties = customProperties;\n }\n\n opt.disabled = disabled;\n return opt;\n }\n};\n/* harmony default export */ var templates = (TEMPLATES);\n// CONCATENATED MODULE: ./src/scripts/actions/choices.js\n/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\n\n/**\n * @argument {Choice} choice\n * @returns {Action & Choice}\n */\n\nvar choices_addChoice = function addChoice(_ref) {\n var value = _ref.value,\n label = _ref.label,\n id = _ref.id,\n groupId = _ref.groupId,\n disabled = _ref.disabled,\n elementId = _ref.elementId,\n customProperties = _ref.customProperties,\n placeholder = _ref.placeholder,\n keyCode = _ref.keyCode;\n return {\n type: ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n/**\n * @argument {Choice[]} results\n * @returns {Action & { results: Choice[] }}\n */\n\nvar choices_filterChoices = function filterChoices(results) {\n return {\n type: ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\n/**\n * @argument {boolean} active\n * @returns {Action & { active: boolean }}\n */\n\nvar choices_activateChoices = function activateChoices(active) {\n if (active === void 0) {\n active = true;\n }\n\n return {\n type: ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\n/**\n * @returns {Action}\n */\n\nvar choices_clearChoices = function clearChoices() {\n return {\n type: ACTION_TYPES.CLEAR_CHOICES\n };\n};\n// CONCATENATED MODULE: ./src/scripts/actions/items.js\n\n/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\n/**\n * @param {Item} item\n * @returns {Action & Item}\n */\n\nvar items_addItem = function addItem(_ref) {\n var value = _ref.value,\n label = _ref.label,\n id = _ref.id,\n choiceId = _ref.choiceId,\n groupId = _ref.groupId,\n customProperties = _ref.customProperties,\n placeholder = _ref.placeholder,\n keyCode = _ref.keyCode;\n return {\n type: ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n/**\n * @param {string} id\n * @param {string} choiceId\n * @returns {Action & { id: string, choiceId: string }}\n */\n\nvar items_removeItem = function removeItem(id, choiceId) {\n return {\n type: ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\n/**\n * @param {string} id\n * @param {boolean} highlighted\n * @returns {Action & { id: string, highlighted: boolean }}\n */\n\nvar items_highlightItem = function highlightItem(id, highlighted) {\n return {\n type: ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};\n// CONCATENATED MODULE: ./src/scripts/actions/groups.js\n\n/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Group} Group\n */\n\n/**\n * @param {Group} group\n * @returns {Action & Group}\n */\n\nvar groups_addGroup = function addGroup(_ref) {\n var value = _ref.value,\n id = _ref.id,\n active = _ref.active,\n disabled = _ref.disabled;\n return {\n type: ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};\n// CONCATENATED MODULE: ./src/scripts/actions/misc.js\n/**\n * @typedef {import('redux').Action} Action\n */\n\n/**\n * @returns {Action}\n */\nvar clearAll = function clearAll() {\n return {\n type: 'CLEAR_ALL'\n };\n};\n/**\n * @param {any} state\n * @returns {Action & { state: object }}\n */\n\nvar resetTo = function resetTo(state) {\n return {\n type: 'RESET_TO',\n state: state\n };\n};\n/**\n * @param {boolean} isLoading\n * @returns {Action & { isLoading: boolean }}\n */\n\nvar setIsLoading = function setIsLoading(isLoading) {\n return {\n type: 'SET_IS_LOADING',\n isLoading: isLoading\n };\n};\n// CONCATENATED MODULE: ./src/scripts/choices.js\nfunction choices_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction choices_createClass(Constructor, protoProps, staticProps) { if (protoProps) choices_defineProperties(Constructor.prototype, protoProps); if (staticProps) choices_defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\n\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\n/**\n * @typedef {import('../../types/index').Choices.Choice} Choice\n * @typedef {import('../../types/index').Choices.Item} Item\n * @typedef {import('../../types/index').Choices.Group} Group\n * @typedef {import('../../types/index').Choices.Options} Options\n */\n\n/** @type {Partial<Options>} */\n\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson<josh@joshuajohnson.co.uk>\n */\n\nvar choices_Choices =\n/*#__PURE__*/\nfunction () {\n choices_createClass(Choices, null, [{\n key: \"defaults\",\n get: function get() {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n\n get templates() {\n return TEMPLATES;\n }\n\n });\n }\n /**\n * @param {string | HTMLInputElement | HTMLSelectElement} element\n * @param {Partial<Options>} userConfig\n */\n\n }]);\n\n function Choices(element, userConfig) {\n var _this = this;\n\n if (element === void 0) {\n element = '[data-choice]';\n }\n\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n /** @type {Partial<Options>} */\n this.config = cjs_default.a.all([DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function arrayMerge(_, sourceArray) {\n return [].concat(sourceArray);\n }\n });\n var invalidConfigOptions = diff(this.config, DEFAULT_CONFIG);\n\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n\n this._isTextElement = passedElement.type === TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n\n if (!['auto', 'always'].includes(this.config.renderSelectedChoices)) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n\n if (this._isTextElement) {\n this.passedElement = new WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function template(data) {\n return _this._templates.option(data);\n }\n });\n }\n\n this.initialised = false;\n this._store = new store_Store();\n this._initialState = {};\n this._currentState = {};\n this._prevState = {};\n this._currentValue = '';\n this._canSearch = this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = generateId(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n * @type {HTMLElement['dir']}\n */\n\n this._direction = this.passedElement.dir;\n\n if (!this._direction) {\n var _window$getComputedSt = window.getComputedStyle(this.passedElement.element),\n elementDirection = _window$getComputedSt.direction;\n\n var _window$getComputedSt2 = window.getComputedStyle(document.documentElement),\n documentDirection = _window$getComputedSt2.direction;\n\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n\n this._idNames = {\n itemChoice: 'item-choice'\n }; // Assign preset groups from passed element\n\n this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element\n\n this._presetOptions = this.passedElement.options; // Assign preset choices from passed object\n\n this._presetChoices = this.config.choices; // Assign preset items from passed object first\n\n this._presetItems = this.config.items; // Add any values passed from attribute\n\n if (this.passedElement.value) {\n this._presetItems = this._presetItems.concat(this.passedElement.value.split(this.config.delimiter));\n } // Create array of choices from option elements\n\n\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (o) {\n _this._presetChoices.push({\n value: o.value,\n label: o.innerHTML,\n selected: o.selected,\n disabled: o.disabled || o.parentNode.disabled,\n placeholder: o.value === '' || o.hasAttribute('placeholder'),\n customProperties: o.getAttribute('data-custom-properties')\n });\n });\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onAKey = this._onAKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently\n\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised');\n }\n\n this.initialised = true;\n return;\n } // Let's go\n\n\n this.init();\n }\n\n var _proto = Choices.prototype;\n\n _proto.init = function init() {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n\n this._createElements();\n\n this._createStructure(); // Set initial state (We need to clone the state because some reducers\n // modify the inner objects properties in the state) 🤢\n\n\n this._initialState = cloneObject(this._store.state);\n\n this._store.subscribe(this._render);\n\n this._render();\n\n this._addEventListeners();\n\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function\n\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n\n _proto.destroy = function destroy() {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n\n this._templates = null;\n this.initialised = false;\n };\n\n _proto.enable = function enable() {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n };\n\n _proto.disable = function disable() {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n };\n\n _proto.highlightItem = function highlightItem(item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n\n if (!item) {\n return this;\n }\n\n var id = item.id,\n _item$groupId = item.groupId,\n groupId = _item$groupId === void 0 ? -1 : _item$groupId,\n _item$value = item.value,\n value = _item$value === void 0 ? '' : _item$value,\n _item$label = item.label,\n label = _item$label === void 0 ? '' : _item$label;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(items_highlightItem(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n\n return this;\n };\n\n _proto.unhighlightItem = function unhighlightItem(item) {\n if (!item) {\n return this;\n }\n\n var id = item.id,\n _item$groupId2 = item.groupId,\n groupId = _item$groupId2 === void 0 ? -1 : _item$groupId2,\n _item$value2 = item.value,\n value = _item$value2 === void 0 ? '' : _item$value2,\n _item$label2 = item.label,\n label = _item$label2 === void 0 ? '' : _item$label2;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(items_highlightItem(id, false));\n\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n\n _proto.highlightAll = function highlightAll() {\n var _this2 = this;\n\n this._store.items.forEach(function (item) {\n return _this2.highlightItem(item);\n });\n\n return this;\n };\n\n _proto.unhighlightAll = function unhighlightAll() {\n var _this3 = this;\n\n this._store.items.forEach(function (item) {\n return _this3.unhighlightItem(item);\n });\n\n return this;\n };\n\n _proto.removeActiveItemsByValue = function removeActiveItemsByValue(value) {\n var _this4 = this;\n\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this4._removeItem(item);\n });\n\n return this;\n };\n\n _proto.removeActiveItems = function removeActiveItems(excludedId) {\n var _this5 = this;\n\n this._store.activeItems.filter(function (_ref) {\n var id = _ref.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this5._removeItem(item);\n });\n\n return this;\n };\n\n _proto.removeHighlightedItems = function removeHighlightedItems(runEvent) {\n var _this6 = this;\n\n if (runEvent === void 0) {\n runEvent = false;\n }\n\n this._store.highlightedActiveItems.forEach(function (item) {\n _this6._removeItem(item); // If this action was performed by the user\n // trigger the event\n\n\n if (runEvent) {\n _this6._triggerChange(item.value);\n }\n });\n\n return this;\n };\n\n _proto.showDropdown = function showDropdown(preventInputFocus) {\n var _this7 = this;\n\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this7.dropdown.show();\n\n _this7.containerOuter.open(_this7.dropdown.distanceFromTopWindow);\n\n if (!preventInputFocus && _this7._canSearch) {\n _this7.input.focus();\n }\n\n _this7.passedElement.triggerEvent(EVENTS.showDropdown, {});\n });\n return this;\n };\n\n _proto.hideDropdown = function hideDropdown(preventInputBlur) {\n var _this8 = this;\n\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this8.dropdown.hide();\n\n _this8.containerOuter.close();\n\n if (!preventInputBlur && _this8._canSearch) {\n _this8.input.removeActiveDescendant();\n\n _this8.input.blur();\n }\n\n _this8.passedElement.triggerEvent(EVENTS.hideDropdown, {});\n });\n return this;\n };\n\n _proto.getValue = function getValue(valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n }\n /**\n * @param {string[] | import('../../types/index').Choices.Item[]} items\n */\n ;\n\n _proto.setValue = function setValue(items) {\n var _this9 = this;\n\n if (!this.initialised) {\n return this;\n }\n\n items.forEach(function (value) {\n return _this9._setChoiceOrItem(value);\n });\n return this;\n };\n\n _proto.setChoiceByValue = function setChoiceByValue(value) {\n var _this10 = this;\n\n if (!this.initialised || this._isTextElement) {\n return this;\n } // If only one value has been passed, convert to array\n\n\n var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and\n\n choiceValue.forEach(function (val) {\n return _this10._findAndSelectChoiceByValue(val);\n });\n return this;\n }\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @template {Choice[] | ((instance: Choices) => object[] | Promise<object[]>)} T\n * @param {T} [choicesArrayOrFetcher]\n * @param {string} [value = 'value'] - name of `value` field\n * @param {string} [label = 'label'] - name of 'label' field\n * @param {boolean} [replaceChoices = false] - whether to replace of add choices\n * @returns {this | Promise<this>}\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n ;\n\n _proto.setChoices = function setChoices(choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this11 = this;\n\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n\n if (value === void 0) {\n value = 'value';\n }\n\n if (label === void 0) {\n label = 'label';\n }\n\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n } // Clear choices if needed\n\n\n if (replaceChoices) {\n this.clearChoices();\n }\n\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher = choicesArrayOrFetcher(this);\n\n if (typeof Promise === 'function' && fetcher instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line compat/compat\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this11._handleLoadingState(true);\n }).then(function () {\n return fetcher;\n }).then(function (data) {\n return _this11.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this11.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this11._handleLoadingState(false);\n }).then(function () {\n return _this11;\n });\n } // function returned something else than promise, let's check if it's an array of choices\n\n\n if (!Array.isArray(fetcher)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \" + typeof fetcher);\n } // recursion with results, it's sync and choices were cleared already\n\n\n return this.setChoices(fetcher, value, label, false);\n }\n\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n\n this.containerOuter.removeLoadingState();\n\n this._startLoading();\n\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this11._addGroup({\n id: parseInt(groupOrChoice.id, 10) || null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n _this11._addChoice({\n value: groupOrChoice[value],\n label: groupOrChoice[label],\n isSelected: groupOrChoice.selected,\n isDisabled: groupOrChoice.disabled,\n customProperties: groupOrChoice.customProperties,\n placeholder: groupOrChoice.placeholder\n });\n }\n });\n\n this._stopLoading();\n\n return this;\n };\n\n _proto.clearChoices = function clearChoices() {\n this._store.dispatch(choices_clearChoices());\n\n return this;\n };\n\n _proto.clearStore = function clearStore() {\n this._store.dispatch(clearAll());\n\n return this;\n };\n\n _proto.clearInput = function clearInput() {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n\n this._store.dispatch(choices_activateChoices(true));\n }\n\n return this;\n };\n\n _proto._render = function _render() {\n if (this._store.isLoading()) {\n return;\n }\n\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n };\n\n _proto._renderChoices = function _renderChoices() {\n var _this12 = this;\n\n var _this$_store = this._store,\n activeGroups = _this$_store.activeGroups,\n activeChoices = _this$_store.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this12.choiceList.scrollToTop();\n });\n } // If we have grouped options\n\n\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n } // If we have choices to show\n\n\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them\n\n\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n\n this._highlightChoice();\n } else {\n // ...otherwise show a notice\n this.choiceList.append(this._getTemplate('notice', canAddItem.notice));\n }\n } else {\n // Otherwise show a notice\n var dropdownItem;\n var notice;\n\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n };\n\n _proto._renderItems = function _renderItems() {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear(); // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n\n var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them\n\n\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n\n _proto._createGroupsFragment = function _createGroupsFragment(groups, choices, fragment) {\n var _this13 = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n var getGroupChoices = function getGroupChoices(group) {\n return choices.filter(function (choice) {\n if (_this13._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n\n return choice.groupId === group.id && (_this13.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n }; // If sorting is enabled, filter groups\n\n\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this13._getTemplate('choiceGroup', group);\n\n fragment.appendChild(dropdownGroup);\n\n _this13._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n\n _proto._createChoicesFragment = function _createChoicesFragment(choices, fragment, withinGroup) {\n var _this14 = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n if (withinGroup === void 0) {\n withinGroup = false;\n }\n\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n var _this$config = this.config,\n renderSelectedChoices = _this$config.renderSelectedChoices,\n searchResultLimit = _this$config.searchResultLimit,\n renderChoiceLimit = _this$config.renderChoiceLimit;\n var filter = this._isSearching ? sortByScore : this.config.sorter;\n\n var appendChoice = function appendChoice(choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this14._isSelectOneElement || !choice.selected : true;\n\n if (shouldRender) {\n var dropdownItem = _this14._getTemplate('choice', choice, _this14.config.itemSelectText);\n\n fragment.appendChild(dropdownItem);\n }\n };\n\n var rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n } // Split array into placeholders and \"normal\" choices\n\n\n var _rendererableChoices$ = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _rendererableChoices$.placeholderChoices,\n normalChoices = _rendererableChoices$.normalChoices; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n var choiceLimit = rendererableChoices.length; // Prepend placeholeder\n\n var sortedChoices = this._isSelectOneElement ? [].concat(placeholderChoices, normalChoices) : normalChoices;\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n } // Add each choice to dropdown within range\n\n\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return fragment;\n };\n\n _proto._createItemsFragment = function _createItemsFragment(items, fragment) {\n var _this15 = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n // Create fragment to add elements to\n var _this$config2 = this.config,\n shouldSortItems = _this$config2.shouldSortItems,\n sorter = _this$config2.sorter,\n removeItemButton = _this$config2.removeItemButton; // If sorting is enabled, filter items\n\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items;\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n var addItemToFragment = function addItemToFragment(item) {\n // Create new list element\n var listItem = _this15._getTemplate('item', item, removeItemButton); // Append it to list\n\n\n fragment.appendChild(listItem);\n }; // Add each list item to list\n\n\n items.forEach(addItemToFragment);\n return fragment;\n };\n\n _proto._triggerChange = function _triggerChange(value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(EVENTS.change, {\n value: value\n });\n };\n\n _proto._selectPlaceholderChoice = function _selectPlaceholderChoice() {\n var placeholderChoice = this._store.placeholderChoice;\n\n if (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n\n this._triggerChange(placeholderChoice.value);\n }\n };\n\n _proto._handleButtonAction = function _handleButtonAction(activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n\n var itemId = element.parentNode.getAttribute('data-id');\n var itemToRemove = activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n }); // Remove item associated with button\n\n this._removeItem(itemToRemove);\n\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n };\n\n _proto._handleItemAction = function _handleItemAction(activeItems, element, hasShiftKey) {\n var _this16 = this;\n\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n\n var passedId = element.getAttribute('data-id'); // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n\n activeItems.forEach(function (item) {\n if (item.id === parseInt(passedId, 10) && !item.highlighted) {\n _this16.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this16.unhighlightItem(item);\n }\n }); // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n\n this.input.focus();\n };\n\n _proto._handleChoiceAction = function _handleChoiceAction(activeItems, element) {\n if (!activeItems || !element) {\n return;\n } // If we are clicking on an option\n\n\n var id = element.dataset.id;\n\n var choice = this._store.getChoiceById(id);\n\n if (!choice) {\n return;\n }\n\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : null;\n var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode\n\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(EVENTS.choice, {\n choice: choice\n });\n\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput(); // We want to close the dropdown if we are dealing with a single select box\n\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n _proto._handleBackspace = function _handleBackspace(activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n }); // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n\n this._removeItem(lastItem);\n\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n\n this.removeHighlightedItems(true);\n }\n };\n\n _proto._startLoading = function _startLoading() {\n this._store.dispatch(setIsLoading(true));\n };\n\n _proto._stopLoading = function _stopLoading() {\n this._store.dispatch(setIsLoading(false));\n };\n\n _proto._handleLoadingState = function _handleLoadingState(setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n\n var placeholderItem = this.itemList.getChild(\".\" + this.config.classNames.placeholder);\n\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n this.itemList.append(placeholderItem);\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n\n _proto._handleSearch = function _handleSearch(value) {\n if (!value || !this.input.isFocussed) {\n return;\n }\n\n var choices = this._store.choices;\n var _this$config3 = this.config,\n searchFloor = _this$config3.searchFloor,\n searchChoices = _this$config3.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n }); // Check that we have a value to search and the input was an alphanumeric character\n\n if (value && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event\n\n this.passedElement.triggerEvent(EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n\n this._store.dispatch(choices_activateChoices(true));\n }\n };\n\n _proto._canAddItem = function _canAddItem(activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n var isDuplicateValue = existsInArray(activeItems, value);\n\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice: notice\n };\n };\n\n _proto._searchChoices = function _searchChoices(value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n\n if (newValue.length < 1 && newValue === currentValue + \" \") {\n return 0;\n } // If new value matches the desired length and is not the same as the current value with a space\n\n\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n var keys = [].concat(this.config.searchFields);\n var options = Object.assign(this.config.fuseOptions, {\n keys: keys\n });\n var fuse = new fuse_default.a(haystack, options);\n var results = fuse.search(needle);\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n\n this._store.dispatch(choices_filterChoices(results));\n\n return results.length;\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _document = document,\n documentElement = _document.documentElement; // capture events - can cancel event processing or propagation\n\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation`\n\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n\n this.input.addEventListeners();\n };\n\n _proto._removeEventListeners = function _removeEventListeners() {\n var _document2 = document,\n documentElement = _document2.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n }\n /**\n * @param {KeyboardEvent} event\n */\n ;\n\n _proto._onKeyDown = function _onKeyDown(event) {\n var _keyDownActions;\n\n var target = event.target,\n keyCode = event.keyCode,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n var BACK_KEY = KEY_CODES.BACK_KEY,\n DELETE_KEY = KEY_CODES.DELETE_KEY,\n ENTER_KEY = KEY_CODES.ENTER_KEY,\n A_KEY = KEY_CODES.A_KEY,\n ESC_KEY = KEY_CODES.ESC_KEY,\n UP_KEY = KEY_CODES.UP_KEY,\n DOWN_KEY = KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = KEY_CODES.PAGE_DOWN_KEY;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If a user is typing and the dropdown is not active\n\n if (!this._isTextElement && /[a-zA-Z0-9-_ ]/.test(keyString)) {\n this.showDropdown();\n } // Map keys to key actions\n\n\n var keyDownActions = (_keyDownActions = {}, _keyDownActions[A_KEY] = this._onAKey, _keyDownActions[ENTER_KEY] = this._onEnterKey, _keyDownActions[ESC_KEY] = this._onEscapeKey, _keyDownActions[UP_KEY] = this._onDirectionKey, _keyDownActions[PAGE_UP_KEY] = this._onDirectionKey, _keyDownActions[DOWN_KEY] = this._onDirectionKey, _keyDownActions[PAGE_DOWN_KEY] = this._onDirectionKey, _keyDownActions[DELETE_KEY] = this._onDeleteKey, _keyDownActions[BACK_KEY] = this._onDeleteKey, _keyDownActions); // If keycode has a function, run it\n\n if (keyDownActions[keyCode]) {\n keyDownActions[keyCode]({\n event: event,\n target: target,\n keyCode: keyCode,\n metaKey: metaKey,\n activeItems: activeItems,\n hasFocusedInput: hasFocusedInput,\n hasActiveDropdown: hasActiveDropdown,\n hasItems: hasItems,\n hasCtrlDownKeyPressed: hasCtrlDownKeyPressed\n });\n }\n };\n\n _proto._onKeyUp = function _onKeyUp(_ref2) {\n var target = _ref2.target,\n keyCode = _ref2.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n var backKey = KEY_CODES.BACK_KEY,\n deleteKey = KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var userHasRemovedValue = (keyCode === backKey || keyCode === deleteKey) && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n\n this._store.dispatch(choices_activateChoices(true));\n } else if (canSearch) {\n this._handleSearch(this.input.value);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n };\n\n _proto._onAKey = function _onAKey(_ref3) {\n var hasItems = _ref3.hasItems,\n hasCtrlDownKeyPressed = _ref3.hasCtrlDownKeyPressed;\n\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n\n _proto._onEnterKey = function _onEnterKey(_ref4) {\n var event = _ref4.event,\n target = _ref4.target,\n activeItems = _ref4.activeItems,\n hasActiveDropdown = _ref4.hasActiveDropdown;\n var enterKey = KEY_CODES.ENTER_KEY;\n var targetWasButton = target.hasAttribute('data-button');\n\n if (this._isTextElement && target.value) {\n var value = this.input.value;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n if (canAddItem.response) {\n this.hideDropdown(true);\n\n this._addItem({\n value: value\n });\n\n this._triggerChange(value);\n\n this.clearInput();\n }\n }\n\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\" + this.config.classNames.highlightedState);\n\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n\n _proto._onEscapeKey = function _onEscapeKey(_ref5) {\n var hasActiveDropdown = _ref5.hasActiveDropdown;\n\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n _proto._onDirectionKey = function _onDirectionKey(_ref6) {\n var event = _ref6.event,\n hasActiveDropdown = _ref6.hasActiveDropdown,\n keyCode = _ref6.keyCode,\n metaKey = _ref6.metaKey;\n var downKey = KEY_CODES.DOWN_KEY,\n pageUpKey = KEY_CODES.PAGE_UP_KEY,\n pageDownKey = KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options\n\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl;\n\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier + \":last-of-type\");\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\" + this.config.classNames.highlightedState);\n\n if (currentEl) {\n nextEl = getAdjacentEl(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!isScrolledIntoView(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n\n this._highlightChoice(nextEl);\n } // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n\n\n event.preventDefault();\n }\n };\n\n _proto._onDeleteKey = function _onDeleteKey(_ref7) {\n var event = _ref7.event,\n target = _ref7.target,\n hasFocusedInput = _ref7.hasFocusedInput,\n activeItems = _ref7.activeItems;\n\n // If backspace or delete key is pressed and the input has no value\n if (hasFocusedInput && !target.value && !this._isSelectOneElement) {\n this._handleBackspace(activeItems);\n\n event.preventDefault();\n }\n };\n\n _proto._onTouchMove = function _onTouchMove() {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n\n _proto._onTouchEnd = function _onTouchEnd(event) {\n var _ref8 = event || event.touches[0],\n target = _ref8.target;\n\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n } // Prevents focus event firing\n\n\n event.stopPropagation();\n }\n\n this._wasTap = true;\n }\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n * @param {MouseEvent} event\n */\n ;\n\n _proto._onMouseDown = function _onMouseDown(event) {\n var target = event.target;\n\n if (!(target instanceof HTMLElement)) {\n return;\n } // If we have our mouse down on the scrollbar and are on IE11...\n\n\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice =\n /** @type {HTMLElement} */\n this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n\n if (target === this.input.element) {\n return;\n }\n\n var item = target.closest('[data-button],[data-item],[data-choice]');\n\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n\n event.preventDefault();\n }\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n ;\n\n _proto._onMouseOver = function _onMouseOver(_ref9) {\n var target = _ref9.target;\n\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n\n _proto._onClick = function _onClick(_ref10) {\n var target = _ref10.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n\n _proto._onFocus = function _onFocus(_ref11) {\n var _this17 = this,\n _focusActions;\n\n var target = _ref11.target;\n var focusWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (!focusWasWithinContainer) {\n return;\n }\n\n var focusActions = (_focusActions = {}, _focusActions[TEXT_TYPE] = function () {\n if (target === _this17.input.element) {\n _this17.containerOuter.addFocusState();\n }\n }, _focusActions[SELECT_ONE_TYPE] = function () {\n _this17.containerOuter.addFocusState();\n\n if (target === _this17.input.element) {\n _this17.showDropdown(true);\n }\n }, _focusActions[SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this17.input.element) {\n _this17.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n\n\n _this17.containerOuter.addFocusState();\n }\n }, _focusActions);\n focusActions[this.passedElement.element.type]();\n };\n\n _proto._onBlur = function _onBlur(_ref12) {\n var _this18 = this;\n\n var target = _ref12.target;\n var blurWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var _blurActions;\n\n var activeItems = this._store.activeItems;\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_blurActions = {}, _blurActions[TEXT_TYPE] = function () {\n if (target === _this18.input.element) {\n _this18.containerOuter.removeFocusState();\n\n if (hasHighlightedItems) {\n _this18.unhighlightAll();\n }\n\n _this18.hideDropdown(true);\n }\n }, _blurActions[SELECT_ONE_TYPE] = function () {\n _this18.containerOuter.removeFocusState();\n\n if (target === _this18.input.element || target === _this18.containerOuter.element && !_this18._canSearch) {\n _this18.hideDropdown(true);\n }\n }, _blurActions[SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this18.input.element) {\n _this18.containerOuter.removeFocusState();\n\n _this18.hideDropdown(true);\n\n if (hasHighlightedItems) {\n _this18.unhighlightAll();\n }\n }\n }, _blurActions);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n\n _proto._onFormReset = function _onFormReset() {\n this._store.dispatch(resetTo(this._initialState));\n };\n\n _proto._highlightChoice = function _highlightChoice(el) {\n var _this19 = this;\n\n if (el === void 0) {\n el = null;\n }\n\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n\n if (!choices.length) {\n return;\n }\n\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\" + this.config.classNames.highlightedState)); // Remove any highlighted choices\n\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this19.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(EVENTS.highlightChoice, {\n el: passedEl\n });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n\n _proto._addItem = function _addItem(_ref13) {\n var value = _ref13.value,\n _ref13$label = _ref13.label,\n label = _ref13$label === void 0 ? null : _ref13$label,\n _ref13$choiceId = _ref13.choiceId,\n choiceId = _ref13$choiceId === void 0 ? -1 : _ref13$choiceId,\n _ref13$groupId = _ref13.groupId,\n groupId = _ref13$groupId === void 0 ? -1 : _ref13$groupId,\n _ref13$customProperti = _ref13.customProperties,\n customProperties = _ref13$customProperti === void 0 ? null : _ref13$customProperti,\n _ref13$placeholder = _ref13.placeholder,\n placeholder = _ref13$placeholder === void 0 ? false : _ref13$placeholder,\n _ref13$keyCode = _ref13.keyCode,\n keyCode = _ref13$keyCode === void 0 ? null : _ref13$keyCode;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var passedKeyCode = keyCode;\n var passedCustomProperties = customProperties;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it\n\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n } // If an appended value has been passed, append it\n\n\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch(items_addItem({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: passedKeyCode\n }));\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n } // Trigger change event\n\n\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n groupValue: group && group.value ? group.value : undefined,\n keyCode: passedKeyCode\n });\n return this;\n };\n\n _proto._removeItem = function _removeItem(item) {\n if (!item || !isType('Object', item)) {\n return this;\n }\n\n var id = item.id,\n value = item.value,\n label = item.label,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(items_removeItem(id, choiceId));\n\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group.value\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id: id,\n value: value,\n label: label\n });\n }\n\n return this;\n };\n\n _proto._addChoice = function _addChoice(_ref14) {\n var value = _ref14.value,\n _ref14$label = _ref14.label,\n label = _ref14$label === void 0 ? null : _ref14$label,\n _ref14$isSelected = _ref14.isSelected,\n isSelected = _ref14$isSelected === void 0 ? false : _ref14$isSelected,\n _ref14$isDisabled = _ref14.isDisabled,\n isDisabled = _ref14$isDisabled === void 0 ? false : _ref14$isDisabled,\n _ref14$groupId = _ref14.groupId,\n groupId = _ref14$groupId === void 0 ? -1 : _ref14$groupId,\n _ref14$customProperti = _ref14.customProperties,\n customProperties = _ref14$customProperti === void 0 ? null : _ref14$customProperti,\n _ref14$placeholder = _ref14.placeholder,\n placeholder = _ref14$placeholder === void 0 ? false : _ref14$placeholder,\n _ref14$keyCode = _ref14.keyCode,\n keyCode = _ref14$keyCode === void 0 ? null : _ref14$keyCode;\n\n if (typeof value === 'undefined' || value === null) {\n return;\n } // Generate unique id\n\n\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = this._baseId + \"-\" + this._idNames.itemChoice + \"-\" + choiceId;\n\n this._store.dispatch(choices_addChoice({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n\n _proto._addGroup = function _addGroup(_ref15) {\n var _this20 = this;\n\n var group = _ref15.group,\n id = _ref15.id,\n _ref15$valueKey = _ref15.valueKey,\n valueKey = _ref15$valueKey === void 0 ? 'value' : _ref15$valueKey,\n _ref15$labelKey = _ref15.labelKey,\n labelKey = _ref15$labelKey === void 0 ? 'label' : _ref15$labelKey;\n var groupChoices = isType('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch(groups_addGroup({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n\n var addGroupChoices = function addGroupChoices(choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n\n _this20._addChoice({\n value: choice[valueKey],\n label: isType('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch(groups_addGroup({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n\n _proto._getTemplate = function _getTemplate(template) {\n var _this$_templates$temp;\n\n if (!template) {\n return null;\n }\n\n var classNames = this.config.classNames;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return (_this$_templates$temp = this._templates[template]).call.apply(_this$_templates$temp, [this, classNames].concat(args));\n };\n\n _proto._createTemplates = function _createTemplates() {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, strToEl);\n }\n\n this._templates = cjs_default()(TEMPLATES, userTemplates);\n };\n\n _proto._createElements = function _createElements() {\n this.containerOuter = new container_Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new container_Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new input_Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new list_List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new list_List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n\n _proto._createStructure = function _createStructure() {\n // Hide original element\n this.passedElement.conceal(); // Wrap input in container preserving DOM ordering\n\n this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container\n\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n\n this._startLoading();\n\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n\n this._stopLoading();\n }\n\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n\n _proto._addPredefinedGroups = function _addPredefinedGroups(groups) {\n var _this21 = this;\n\n // If we have a placeholder option\n var placeholderChoice = this.passedElement.placeholderOption;\n\n if (placeholderChoice && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n\n groups.forEach(function (group) {\n return _this21._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n\n _proto._addPredefinedChoices = function _addPredefinedChoices(choices) {\n var _this22 = this;\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var value = choice.value,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n\n if (_this22._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this22._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this22._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n\n _this22._addChoice({\n value: value,\n label: label,\n isSelected: isSelected,\n isDisabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder\n });\n }\n } else {\n _this22._addChoice({\n value: value,\n label: label,\n isSelected: choice.selected,\n isDisabled: choice.disabled,\n customProperties: customProperties,\n placeholder: placeholder\n });\n }\n });\n }\n /**\n * @param {Item[]} items\n */\n ;\n\n _proto._addPredefinedItems = function _addPredefinedItems(items) {\n var _this23 = this;\n\n items.forEach(function (item) {\n if (typeof item === 'object' && item.value) {\n _this23._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n\n if (typeof item === 'string') {\n _this23._addItem({\n value: item\n });\n }\n });\n };\n\n _proto._setChoiceOrItem = function _setChoiceOrItem(item) {\n var _this24 = this;\n\n var itemType = getType(item).toLowerCase();\n var handleType = {\n object: function object() {\n if (!item.value) {\n return;\n } // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n\n\n if (!_this24._isTextElement) {\n _this24._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this24._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function string() {\n if (!_this24._isTextElement) {\n _this24._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this24._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n\n _proto._findAndSelectChoiceByValue = function _findAndSelectChoiceByValue(val) {\n var _this25 = this;\n\n var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected\n\n var foundChoice = choices.find(function (choice) {\n return _this25.config.valueComparer(choice.value, val);\n });\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n\n _proto._generatePlaceholderValue = function _generatePlaceholderValue() {\n if (this._isSelectElement) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : false;\n }\n\n var _this$config4 = this.config,\n placeholder = _this$config4.placeholder,\n placeholderValue = _this$config4.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n\n return false;\n };\n\n return Choices;\n}();\n\n/* harmony default export */ var scripts_choices = __webpack_exports__[\"default\"] = (choices_Choices);\n\n/***/ })\n/******/ ])[\"default\"];\n});","var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,s=arguments.length;a<s;a++)for(var n in i=arguments[a])Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n]);return t}).apply(this,arguments)},CountUp=function(){function t(t,i,a){var s=this;this.target=t,this.endVal=i,this.options=a,this.version=\"2.0.8\",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,smartEasingThreshold:999,smartEasingAmount:333,separator:\",\",decimal:\".\",prefix:\"\",suffix:\"\"},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error=\"\",this.startVal=0,this.paused=!0,this.count=function(t){s.startTime||(s.startTime=t);var i=t-s.startTime;s.remaining=s.duration-i,s.useEasing?s.countDown?s.frameVal=s.startVal-s.easingFn(i,0,s.startVal-s.endVal,s.duration):s.frameVal=s.easingFn(i,s.startVal,s.endVal-s.startVal,s.duration):s.countDown?s.frameVal=s.startVal-(s.startVal-s.endVal)*(i/s.duration):s.frameVal=s.startVal+(s.endVal-s.startVal)*(i/s.duration),s.countDown?s.frameVal=s.frameVal<s.endVal?s.endVal:s.frameVal:s.frameVal=s.frameVal>s.endVal?s.endVal:s.frameVal,s.frameVal=Number(s.frameVal.toFixed(s.options.decimalPlaces)),s.printValue(s.frameVal),i<s.duration?s.rAF=requestAnimationFrame(s.count):null!==s.finalEndVal?s.update(s.finalEndVal):s.callback&&s.callback()},this.formatNumber=function(t){var i,a,n,e,r=t<0?\"-\":\"\";i=Math.abs(t).toFixed(s.options.decimalPlaces);var o=(i+=\"\").split(\".\");if(a=o[0],n=o.length>1?s.options.decimal+o[1]:\"\",s.options.useGrouping){e=\"\";for(var l=0,h=a.length;l<h;++l)0!==l&&l%3==0&&(e=s.options.separator+e),e=a[h-l-1]+e;a=e}return s.options.numerals&&s.options.numerals.length&&(a=a.replace(/[0-9]/g,function(t){return s.options.numerals[+t]}),n=n.replace(/[0-9]/g,function(t){return s.options.numerals[+t]})),r+s.options.prefix+a+n+s.options.suffix},this.easeOutExpo=function(t,i,a,s){return a*(1-Math.pow(2,-10*t/s))*1024/1023+i},this.options=__assign(__assign({},this.defaults),a),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,\"\"===this.options.separator&&(this.options.useGrouping=!1),this.el=\"string\"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error=\"[CountUp] target is null or undefined\"}return t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);\"INPUT\"===this.el.tagName?this.el.value=i:\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \"+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();export{CountUp};","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 3099:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 6077:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 1223:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar create = __webpack_require__(30);\nvar definePropertyModule = __webpack_require__(3070);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ 1530:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ 5787:\n/***/ (function(module) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 9670:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 4019:\n/***/ (function(module) {\n\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar defineProperty = __webpack_require__(3070).f;\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar uid = __webpack_require__(9711);\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n\n/***/ 3331:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefineAll = __webpack_require__(2248);\nvar fails = __webpack_require__(7293);\nvar anInstance = __webpack_require__(5787);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar IEEE754 = __webpack_require__(1179);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar defineProperty = __webpack_require__(3070).f;\nvar arrayFill = __webpack_require__(1285);\nvar setToStringTag = __webpack_require__(8003);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n\n\n/***/ }),\n\n/***/ 1048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n\n\n/***/ }),\n\n/***/ 1285:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 8533:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(2092).forEach;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ 8457:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(9974);\nvar toObject = __webpack_require__(7908);\nvar callWithSafeIterationClosing = __webpack_require__(3411);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar getIteratorMethod = __webpack_require__(1246);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ 1318:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 2092:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(9974);\nvar IndexedObject = __webpack_require__(8361);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar arraySpeciesCreate = __webpack_require__(5417);\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ 6583:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n\n\n/***/ }),\n\n/***/ 1194:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ 9341:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n\n\n/***/ }),\n\n/***/ 3671:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 5417:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ 3411:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar iteratorClose = __webpack_require__(9212);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n\n\n/***/ }),\n\n/***/ 7072:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ 4326:\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ 648:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classofRaw = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ 9920:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar ownKeys = __webpack_require__(3887);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar definePropertyModule = __webpack_require__(3070);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n\n/***/ 8544:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ 4994:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(3383).IteratorPrototype;\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar setToStringTag = __webpack_require__(8003);\nvar Iterators = __webpack_require__(7497);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ 8880:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ 9114:\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ 6135:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(7593);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ 654:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar setToStringTag = __webpack_require__(8003);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\nvar Iterators = __webpack_require__(7497);\nvar IteratorsCore = __webpack_require__(3383);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ 9781:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ 317:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ 8324:\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ 8113:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ 7392:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar userAgent = __webpack_require__(8113);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ 748:\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ 2109:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar getOwnPropertyDescriptor = __webpack_require__(1236).f;\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar setGlobal = __webpack_require__(3505);\nvar copyConstructorProperties = __webpack_require__(9920);\nvar isForced = __webpack_require__(4705);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ 7293:\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ 7007:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(4916);\nvar redefine = __webpack_require__(1320);\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar regexpExec = __webpack_require__(2261);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n\n/***/ 9974:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ 5005:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(857);\nvar global = __webpack_require__(7854);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ 1246:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(648);\nvar Iterators = __webpack_require__(7497);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ 8554:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar getIteratorMethod = __webpack_require__(1246);\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n\n\n/***/ }),\n\n/***/ 647:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n\n\n/***/ }),\n\n/***/ 7854:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n /* global globalThis -- safe */\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ 6656:\n/***/ (function(module) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ 3501:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 490:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ 4664:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar createElement = __webpack_require__(317);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ 1179:\n/***/ (function(module) {\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n\n\n/***/ }),\n\n/***/ 8361:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar classof = __webpack_require__(4326);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ 9587:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar setPrototypeOf = __webpack_require__(7674);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ }),\n\n/***/ 2788:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(5465);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ 9909:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8536);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar objectHas = __webpack_require__(6656);\nvar shared = __webpack_require__(5465);\nvar sharedKey = __webpack_require__(6200);\nvar hiddenKeys = __webpack_require__(3501);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ 7659:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar Iterators = __webpack_require__(7497);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ 3157:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ 4705:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ 111:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ 1913:\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ 7850:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar classof = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ 9212:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n\n\n/***/ }),\n\n/***/ 3383:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\nvar getPrototypeOf = __webpack_require__(9518);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ 7497:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n /* global Symbol -- required for testing */\n return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ 590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n\n/***/ 8536:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar inspectSource = __webpack_require__(2788);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ 1574:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar objectKeys = __webpack_require__(1956);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n /* global Symbol -- required for testing */\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar defineProperties = __webpack_require__(6048);\nvar enumBugKeys = __webpack_require__(748);\nvar hiddenKeys = __webpack_require__(3501);\nvar html = __webpack_require__(490);\nvar documentCreateElement = __webpack_require__(317);\nvar sharedKey = __webpack_require__(6200);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ 6048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar anObject = __webpack_require__(9670);\nvar objectKeys = __webpack_require__(1956);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ 3070:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\nvar anObject = __webpack_require__(9670);\nvar toPrimitive = __webpack_require__(7593);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 1236:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar toIndexedObject = __webpack_require__(5656);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ 8006:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ 5181:\n/***/ (function(__unused_webpack_module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ 9518:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toObject = __webpack_require__(7908);\nvar sharedKey = __webpack_require__(6200);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ 6324:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toIndexedObject = __webpack_require__(5656);\nvar indexOf = __webpack_require__(1318).indexOf;\nvar hiddenKeys = __webpack_require__(3501);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ 1956:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ 5296:\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ 7674:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(9670);\nvar aPossiblePrototype = __webpack_require__(6077);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classof = __webpack_require__(648);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ 3887:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\nvar getOwnPropertyNamesModule = __webpack_require__(8006);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar anObject = __webpack_require__(9670);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ 2248:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(1320);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n\n/***/ 1320:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar setGlobal = __webpack_require__(3505);\nvar inspectSource = __webpack_require__(2788);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ 7651:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\nvar regexpExec = __webpack_require__(2261);\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ 2261:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpFlags = __webpack_require__(7066);\nvar stickyHelpers = __webpack_require__(2999);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\n// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ 7066:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(9670);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ 2999:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fails = __webpack_require__(7293);\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\n\n/***/ }),\n\n/***/ 4488:\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ 3505:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n\n/***/ 6340:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(5005);\nvar definePropertyModule = __webpack_require__(3070);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar DESCRIPTORS = __webpack_require__(9781);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n\n/***/ 8003:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(3070).f;\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n\n/***/ 6200:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(2309);\nvar uid = __webpack_require__(9711);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ 5465:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar setGlobal = __webpack_require__(3505);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ 2309:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(1913);\nvar store = __webpack_require__(5465);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ 6707:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar aFunction = __webpack_require__(3099);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n\n/***/ 8710:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 3197:\n/***/ (function(module) {\n\n\"use strict\";\n\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n\n\n/***/ }),\n\n/***/ 6091:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar whitespaces = __webpack_require__(1361);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n\n\n/***/ }),\n\n/***/ 3111:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\nvar whitespaces = __webpack_require__(1361);\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ 1400:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ 7067:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n\n\n/***/ }),\n\n/***/ 5656:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(8361);\nvar requireObjectCoercible = __webpack_require__(4488);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ 9958:\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ 7466:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ 7908:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ 4590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(3002);\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n\n\n/***/ }),\n\n/***/ 3002:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n\n\n/***/ }),\n\n/***/ 7593:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ 1694:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ 9843:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayBufferModule = __webpack_require__(3331);\nvar anInstance = __webpack_require__(5787);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar toOffset = __webpack_require__(4590);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar typedArrayFrom = __webpack_require__(7321);\nvar forEach = __webpack_require__(2092).forEach;\nvar setSpecies = __webpack_require__(6340);\nvar definePropertyModule = __webpack_require__(3070);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar InternalStateModule = __webpack_require__(9909);\nvar inheritIfRequired = __webpack_require__(9587);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ 3832:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-new -- required for testing */\nvar global = __webpack_require__(7854);\nvar fails = __webpack_require__(7293);\nvar checkCorrectnessOfIteration = __webpack_require__(7072);\nvar NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n\n\n/***/ }),\n\n/***/ 3074:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\nvar speciesConstructor = __webpack_require__(6707);\n\nmodule.exports = function (instance, list) {\n var C = speciesConstructor(instance, instance.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\n\n/***/ }),\n\n/***/ 7321:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar getIteratorMethod = __webpack_require__(1246);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar bind = __webpack_require__(9974);\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ 9711:\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ 3307:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(133);\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ 5112:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar shared = __webpack_require__(2309);\nvar has = __webpack_require__(6656);\nvar uid = __webpack_require__(9711);\nvar NATIVE_SYMBOL = __webpack_require__(133);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3307);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ 1361:\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ 8264:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar arrayBufferModule = __webpack_require__(3331);\nvar setSpecies = __webpack_require__(6340);\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n\n\n/***/ }),\n\n/***/ 2222:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar isArray = __webpack_require__(3157);\nvar isObject = __webpack_require__(111);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ 7327:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $filter = __webpack_require__(2092).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 2772:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $indexOf = __webpack_require__(1318).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 6992:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar addToUnscopables = __webpack_require__(1223);\nvar Iterators = __webpack_require__(7497);\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ 1249:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $map = __webpack_require__(2092).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 7042:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\nvar toIndexedObject = __webpack_require__(5656);\nvar createProperty = __webpack_require__(6135);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ 561:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toObject = __webpack_require__(7908);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar createProperty = __webpack_require__(6135);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ 8309:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar defineProperty = __webpack_require__(3070).f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n/***/ }),\n\n/***/ 489:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar toObject = __webpack_require__(7908);\nvar nativeGetPrototypeOf = __webpack_require__(9518);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n\n\n/***/ }),\n\n/***/ 1539:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar redefine = __webpack_require__(1320);\nvar toString = __webpack_require__(288);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 4916:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar exec = __webpack_require__(2261);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n\n\n/***/ }),\n\n/***/ 9714:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(1320);\nvar anObject = __webpack_require__(9670);\nvar fails = __webpack_require__(7293);\nvar flags = __webpack_require__(7066);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 8783:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ 4723:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar regExpExec = __webpack_require__(7651);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ 5306:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar getSubstitution = __webpack_require__(647);\nvar regExpExec = __webpack_require__(7651);\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ 3123:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar isRegExp = __webpack_require__(7850);\nvar anObject = __webpack_require__(9670);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar speciesConstructor = __webpack_require__(6707);\nvar advanceStringIndex = __webpack_require__(1530);\nvar toLength = __webpack_require__(7466);\nvar callRegExpExec = __webpack_require__(7651);\nvar regexpExec = __webpack_require__(2261);\nvar fails = __webpack_require__(7293);\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n\n\n/***/ }),\n\n/***/ 3210:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $trim = __webpack_require__(3111).trim;\nvar forcedStringTrimMethod = __webpack_require__(6091);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n\n\n/***/ }),\n\n/***/ 2990:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $copyWithin = __webpack_require__(1048);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 8927:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $every = __webpack_require__(2092).every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3105:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $fill = __webpack_require__(1285);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 5035:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $filter = __webpack_require__(2092).filter;\nvar fromSpeciesAndList = __webpack_require__(3074);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n\n\n/***/ }),\n\n/***/ 7174:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $findIndex = __webpack_require__(2092).findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4345:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $find = __webpack_require__(2092).find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2846:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $forEach = __webpack_require__(2092).forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4731:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $includes = __webpack_require__(1318).includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 7209:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $indexOf = __webpack_require__(1318).indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 6319:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayIterators = __webpack_require__(6992);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n\n/***/ 8867:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 7789:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $lastIndexOf = __webpack_require__(6583);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 3739:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $map = __webpack_require__(2092).map;\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n\n\n/***/ }),\n\n/***/ 4483:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduceRight = __webpack_require__(3671).right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 9368:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduce = __webpack_require__(3671).left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2056:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n\n\n/***/ }),\n\n/***/ 3462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toOffset = __webpack_require__(4590);\nvar toObject = __webpack_require__(7908);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n /* global Int8Array -- safe */\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 678:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar speciesConstructor = __webpack_require__(6707);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n /* global Int8Array -- safe */\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 7462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $some = __webpack_require__(2092).some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3824:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n\n/***/ 5021:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n\n\n/***/ }),\n\n/***/ 2974:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar fails = __webpack_require__(7293);\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 5016:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod;\nvar fails = __webpack_require__(7293);\nvar global = __webpack_require__(7854);\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n\n/***/ 2472:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(9843);\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n\n/***/ 4747:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar forEach = __webpack_require__(8533);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ 3948:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar ArrayIteratorMethods = __webpack_require__(6992);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 1637:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(6992);\nvar $ = __webpack_require__(2109);\nvar getBuiltIn = __webpack_require__(5005);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar redefine = __webpack_require__(1320);\nvar redefineAll = __webpack_require__(2248);\nvar setToStringTag = __webpack_require__(8003);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar InternalStateModule = __webpack_require__(9909);\nvar anInstance = __webpack_require__(5787);\nvar hasOwn = __webpack_require__(6656);\nvar bind = __webpack_require__(9974);\nvar classof = __webpack_require__(648);\nvar anObject = __webpack_require__(9670);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar getIterator = __webpack_require__(8554);\nvar getIteratorMethod = __webpack_require__(1246);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(8783);\nvar $ = __webpack_require__(2109);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar global = __webpack_require__(7854);\nvar defineProperties = __webpack_require__(6048);\nvar redefine = __webpack_require__(1320);\nvar anInstance = __webpack_require__(5787);\nvar has = __webpack_require__(6656);\nvar assign = __webpack_require__(1574);\nvar arrayFrom = __webpack_require__(8457);\nvar codeAt = __webpack_require__(8710).codeAt;\nvar toASCII = __webpack_require__(3197);\nvar setToStringTag = __webpack_require__(8003);\nvar URLSearchParamsModule = __webpack_require__(1637);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Dropzone\": function() { return /* reexport */ Dropzone; },\n \"default\": function() { return /* binding */ dropzone_dist; }\n});\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js\nvar es_array_concat = __webpack_require__(2222);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js\nvar es_array_filter = __webpack_require__(7327);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js\nvar es_array_index_of = __webpack_require__(2772);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__(6992);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js\nvar es_array_map = __webpack_require__(1249);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__(7042);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js\nvar es_array_splice = __webpack_require__(561);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js\nvar es_array_buffer_constructor = __webpack_require__(8264);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__(8309);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js\nvar es_object_get_prototype_of = __webpack_require__(489);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__(1539);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js\nvar es_regexp_exec = __webpack_require__(4916);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js\nvar es_regexp_to_string = __webpack_require__(9714);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__(8783);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js\nvar es_string_match = __webpack_require__(4723);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js\nvar es_string_replace = __webpack_require__(5306);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js\nvar es_string_split = __webpack_require__(3123);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js\nvar es_string_trim = __webpack_require__(3210);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js\nvar es_typed_array_uint8_array = __webpack_require__(2472);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js\nvar es_typed_array_copy_within = __webpack_require__(2990);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js\nvar es_typed_array_every = __webpack_require__(8927);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js\nvar es_typed_array_fill = __webpack_require__(3105);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js\nvar es_typed_array_filter = __webpack_require__(5035);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js\nvar es_typed_array_find = __webpack_require__(4345);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js\nvar es_typed_array_find_index = __webpack_require__(7174);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js\nvar es_typed_array_for_each = __webpack_require__(2846);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js\nvar es_typed_array_includes = __webpack_require__(4731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js\nvar es_typed_array_index_of = __webpack_require__(7209);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js\nvar es_typed_array_iterator = __webpack_require__(6319);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js\nvar es_typed_array_join = __webpack_require__(8867);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js\nvar es_typed_array_last_index_of = __webpack_require__(7789);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js\nvar es_typed_array_map = __webpack_require__(3739);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js\nvar es_typed_array_reduce = __webpack_require__(9368);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js\nvar es_typed_array_reduce_right = __webpack_require__(4483);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js\nvar es_typed_array_reverse = __webpack_require__(2056);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js\nvar es_typed_array_set = __webpack_require__(3462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js\nvar es_typed_array_slice = __webpack_require__(678);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js\nvar es_typed_array_some = __webpack_require__(7462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js\nvar es_typed_array_sort = __webpack_require__(3824);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js\nvar es_typed_array_subarray = __webpack_require__(5021);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js\nvar es_typed_array_to_locale_string = __webpack_require__(2974);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js\nvar es_typed_array_to_string = __webpack_require__(5016);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js\nvar web_dom_collections_for_each = __webpack_require__(4747);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__(3948);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js\nvar web_url = __webpack_require__(285);\n;// CONCATENATED MODULE: ./src/emitter.js\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nvar Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n }\n\n _createClass(Emitter, [{\n key: \"on\",\n value: // Add an event listener for given event\n function on(event, fn) {\n this._callbacks = this._callbacks || {}; // Create namespace for this event\n\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n\n this._callbacks[event].push(fn);\n\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n this._callbacks = this._callbacks || {};\n var callbacks = this._callbacks[event];\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (callbacks) {\n var _iterator = _createForOfIteratorHelper(callbacks, true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var callback = _step.value;\n callback.apply(this, args);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } // trigger a corresponding DOM event\n\n\n if (this.element) {\n this.element.dispatchEvent(this.makeEvent(\"dropzone:\" + event, {\n args: args\n }));\n }\n\n return this;\n }\n }, {\n key: \"makeEvent\",\n value: function makeEvent(eventName, detail) {\n var params = {\n bubbles: true,\n cancelable: true,\n detail: detail\n };\n\n if (typeof window.CustomEvent === \"function\") {\n return new CustomEvent(eventName, params);\n } else {\n // IE 11 support\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n } // Remove event listener for given event. If fn is not provided, all event\n // listeners for that event will be removed. If neither is provided, all\n // event listeners will be removed.\n\n }, {\n key: \"off\",\n value: function off(event, fn) {\n if (!this._callbacks || arguments.length === 0) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks[event];\n\n if (!callbacks) {\n return this;\n } // remove all handlers\n\n\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n } // remove specific handler\n\n\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n }]);\n\n return Emitter;\n}();\n\n\n;// CONCATENATED MODULE: ./src/preview-template.html\n// Module\nvar code = \"<div class=\\\"dz-preview dz-file-preview\\\"> <div class=\\\"dz-image\\\"><img data-dz-thumbnail/></div> <div class=\\\"dz-details\\\"> <div class=\\\"dz-size\\\"><span data-dz-size></span></div> <div class=\\\"dz-filename\\\"><span data-dz-name></span></div> </div> <div class=\\\"dz-progress\\\"> <span class=\\\"dz-upload\\\" data-dz-uploadprogress></span> </div> <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div> <div class=\\\"dz-success-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Check</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\"></path> </g> </svg> </div> <div class=\\\"dz-error-mark\\\"> <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Error</title> <g stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\"> <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\"></path> </g> </g> </svg> </div> </div> \";\n// Exports\n/* harmony default export */ var preview_template = (code);\n;// CONCATENATED MODULE: ./src/options.js\n\n\n\n\n\nfunction options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); }\n\nfunction options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\nvar defaultOptions = {\n /**\n * Has to be specified on elements other than form (or when the form\n * doesn't have an `action` attribute). You can also\n * provide a function that will be called with `files` and\n * must return the url (since `v3.12.0`)\n */\n url: null,\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method (since `v3.12.0`).\n */\n method: \"post\",\n\n /**\n * Will be set on the XHRequest.\n */\n withCredentials: false,\n\n /**\n * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n * If set to null or 0, no timeout is going to be set.\n */\n timeout: null,\n\n /**\n * How many file uploads to process in parallel (See the\n * Enqueuing file uploads documentation section for more info)\n */\n parallelUploads: 2,\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `processingmultiple`). See the events\n * documentation section for more information.\n */\n uploadMultiple: false,\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n */\n chunking: false,\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n forceChunking: false,\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n chunkSize: 2000000,\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n parallelChunkUploads: false,\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n retryChunks: false,\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n retryChunksLimit: 3,\n\n /**\n * The maximum filesize (in bytes) that is allowed to be uploaded.\n */\n maxFilesize: 256,\n\n /**\n * The name of the file param that gets transferred.\n * **NOTE**: If you have the option `uploadMultiple` set to `true`, then\n * Dropzone will append `[]` to the name.\n */\n paramName: \"file\",\n\n /**\n * Whether thumbnails for images should be generated\n */\n createImageThumbnails: true,\n\n /**\n * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n */\n maxThumbnailFilesize: 10,\n\n /**\n * If `null`, the ratio of the image will be used to calculate it.\n */\n thumbnailWidth: 120,\n\n /**\n * The same as `thumbnailWidth`. If both are null, images will not be resized.\n */\n thumbnailHeight: 120,\n\n /**\n * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n thumbnailMethod: \"crop\",\n\n /**\n * If set, images will be resized to these dimensions before being **uploaded**.\n * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n * ratio of the file will be preserved.\n *\n * The `options.transformFile` function uses these options, so if the `transformFile` function\n * is overridden, these options don't do anything.\n */\n resizeWidth: null,\n\n /**\n * See `resizeWidth`.\n */\n resizeHeight: null,\n\n /**\n * The mime type of the resized image (before it gets uploaded to the server).\n * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n * See `resizeWidth` for more information.\n */\n resizeMimeType: null,\n\n /**\n * The quality of the resized images. See `resizeWidth`.\n */\n resizeQuality: 0.8,\n\n /**\n * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n resizeMethod: \"contain\",\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n filesizeBase: 1000,\n\n /**\n * If not `null` defines how many files this Dropzone handles. If it exceeds,\n * the event `maxfilesexceeded` will be called. The dropzone element gets the\n * class `dz-max-files-reached` accordingly so you can provide visual\n * feedback.\n */\n maxFiles: null,\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n */\n headers: null,\n\n /**\n * If `true`, the dropzone element itself will be clickable, if `false`\n * nothing will be clickable.\n *\n * You can also pass an HTML element, a CSS selector (for multiple elements)\n * or an array of those. In that case, all of those elements will trigger an\n * upload when clicked.\n */\n clickable: true,\n\n /**\n * Whether hidden files in directories should be ignored.\n */\n ignoreHiddenFiles: true,\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * If the Dropzone is `clickable` this option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n acceptedFiles: null,\n\n /**\n * **Deprecated!**\n * Use acceptedFiles instead.\n */\n acceptedMimeTypes: null,\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `myDropzone.processQueue()`.\n *\n * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n * section for more information.\n */\n autoProcessQueue: true,\n\n /**\n * If false, files added to the dropzone will not be queued by default.\n * You'll have to call `enqueueFile(file)` manually.\n */\n autoQueue: true,\n\n /**\n * If `true`, this will add a link to every file preview to remove or cancel (if\n * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n * and `dictRemoveFile` options are used for the wording.\n */\n addRemoveLinks: false,\n\n /**\n * Defines where to display the file previews – if `null` the\n * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n * selector. The element should have the `dropzone-previews` class so\n * the previews are displayed properly.\n */\n previewsContainer: null,\n\n /**\n * Set this to `true` if you don't want previews to be shown.\n */\n disablePreviews: false,\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly.\n */\n hiddenInputContainer: \"body\",\n\n /**\n * If null, no capture type will be specified\n * If camera, mobile devices will skip the file selection and choose camera\n * If microphone, mobile devices will skip the file selection and choose the microphone\n * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n * On apple devices multiple must be set to false. AcceptedFiles may need to\n * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n */\n capture: null,\n\n /**\n * **Deprecated**. Use `renameFile` instead.\n */\n renameFilename: null,\n\n /**\n * A function that is invoked before the file is uploaded to the server and renames the file.\n * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n * file that gets used during the upload can be accessed through `file.upload.filename`.\n */\n renameFile: null,\n\n /**\n * If `true` the fallback will be forced. This is very useful to test your server\n * implementations first and make sure that everything works as\n * expected without dropzone if you experience problems, and to test\n * how your fallbacks will look.\n */\n forceFallback: false,\n\n /**\n * The text used before any files are dropped.\n */\n dictDefaultMessage: \"Drop files here to upload\",\n\n /**\n * The text that replaces the default message text it the browser is not supported.\n */\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n /**\n * The text that will be added before the fallback form.\n * If you provide a fallback element yourself, or if this option is `null` this will\n * be ignored.\n */\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n /**\n * If the filesize is too big.\n * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n */\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n /**\n * If the file doesn't match the file type.\n */\n dictInvalidFileType: \"You can't upload files of this type.\",\n\n /**\n * If the server response was invalid.\n * `{{statusCode}}` will be replaced with the servers status code.\n */\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n */\n dictCancelUpload: \"Cancel upload\",\n\n /**\n * The text that is displayed if an upload was manually canceled\n */\n dictUploadCanceled: \"Upload canceled.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n */\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used to remove a file.\n */\n dictRemoveFile: \"Remove file\",\n\n /**\n * If this is not null, then the user will be prompted before removing a file.\n */\n dictRemoveFileConfirmation: null,\n\n /**\n * Displayed if `maxFiles` is st and exceeded.\n * The string `{{maxFiles}}` will be replaced by the configuration value.\n */\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n /**\n * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n * `b` for bytes.\n */\n dictFileSizeUnits: {\n tb: \"TB\",\n gb: \"GB\",\n mb: \"MB\",\n kb: \"KB\",\n b: \"b\"\n },\n\n /**\n * Called when dropzone initialized\n * You can add event listeners here\n */\n init: function init() {},\n\n /**\n * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n * of a function, this needs to return a map.\n *\n * The default implementation does nothing for normal uploads, but adds relevant information for\n * chunked uploads.\n *\n * This is the same as adding hidden input fields in the form element.\n */\n params: function params(files, xhr, chunk) {\n if (chunk) {\n return {\n dzuuid: chunk.file.upload.uuid,\n dzchunkindex: chunk.index,\n dztotalfilesize: chunk.file.size,\n dzchunksize: this.options.chunkSize,\n dztotalchunkcount: chunk.file.upload.totalChunkCount,\n dzchunkbyteoffset: chunk.index * this.options.chunkSize\n };\n }\n },\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n accept: function accept(file, done) {\n return done();\n },\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n chunksUploaded: function chunksUploaded(file, done) {\n done();\n },\n\n /**\n * Gets called when the browser is not supported.\n * The default implementation shows the fallback input field and adds\n * a text.\n */\n fallback: function fallback() {\n // This code should pass in IE7... :(\n var messageElement;\n this.element.className = \"\".concat(this.element.className, \" dz-browser-not-supported\");\n\n var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName(\"div\"), true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\"; // Removes the 'dz-default' class\n\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (!messageElement) {\n messageElement = Dropzone.createElement('<div class=\"dz-message\"><span></span></div>');\n this.element.appendChild(messageElement);\n }\n\n var span = messageElement.getElementsByTagName(\"span\")[0];\n\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n\n return this.element.appendChild(this.getFallbackForm());\n },\n\n /**\n * Gets called to calculate the thumbnail dimensions.\n *\n * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n *\n * - `srcWidth` & `srcHeight` (required)\n * - `trgWidth` & `trgHeight` (required)\n * - `srcX` & `srcY` (optional, default `0`)\n * - `trgX` & `trgY` (optional, default `0`)\n *\n * Those values are going to be used by `ctx.drawImage()`.\n */\n resize: function resize(file, width, height, resizeMethod) {\n var info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified\n\n if (width == null && height == null) {\n width = info.srcWidth;\n height = info.srcHeight;\n } else if (width == null) {\n width = height * srcRatio;\n } else if (height == null) {\n height = width / srcRatio;\n } // Make sure images aren't upscaled\n\n\n width = Math.min(width, info.srcWidth);\n height = Math.min(height, info.srcHeight);\n var trgRatio = width / height;\n\n if (info.srcWidth > width || info.srcHeight > height) {\n // Image is bigger and needs rescaling\n if (resizeMethod === \"crop\") {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n } else if (resizeMethod === \"contain\") {\n // Method 'contain'\n if (srcRatio > trgRatio) {\n height = width / srcRatio;\n } else {\n width = height * srcRatio;\n }\n } else {\n throw new Error(\"Unknown resizeMethod '\".concat(resizeMethod, \"'\"));\n }\n }\n\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n info.trgWidth = width;\n info.trgHeight = height;\n return info;\n },\n\n /**\n * Can be used to transform the file (for example, resize an image if necessary).\n *\n * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n * images according to those dimensions.\n *\n * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n * to be invoked with the file when the transformation is done.\n */\n transformFile: function transformFile(file, done) {\n if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n } else {\n return done(file);\n }\n },\n\n /**\n * A string that contains the template used for each dropped\n * file. Change it to fulfill your needs but make sure to properly\n * provide all elements.\n *\n * If you want to use an actual HTML element instead of providing a String\n * as a config option, you could create a div with the id `tpl`,\n * put the template inside it and provide the element like this:\n *\n * document\n * .querySelector('#tpl')\n * .innerHTML\n *\n */\n previewTemplate: preview_template,\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n // Those are self explanatory and simply concern the DragnDrop.\n drop: function drop(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart: function dragstart(e) {},\n dragend: function dragend(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter: function dragenter(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover: function dragover(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave: function dragleave(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n paste: function paste(e) {},\n // Called whenever there are no files left in the dropzone anymore, and the\n // dropzone should be displayed as if in the initial state.\n reset: function reset() {\n return this.element.classList.remove(\"dz-started\");\n },\n // Called when a file is added to the queue\n // Receives `file`\n addedfile: function addedfile(file) {\n var _this = this;\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n\n this.previewsContainer.appendChild(file.previewElement);\n\n var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-name]\"), true),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var node = _step2.value;\n node.textContent = file.name;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-size]\"), true),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n node = _step3.value;\n node.innerHTML = this.filesize(file.size);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\".concat(this.options.dictRemoveFile, \"</a>\"));\n file.previewElement.appendChild(file._removeLink);\n }\n\n var removeFileEvent = function removeFileEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () {\n return _this.removeFile(file);\n });\n } else {\n if (_this.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () {\n return _this.removeFile(file);\n });\n } else {\n return _this.removeFile(file);\n }\n }\n };\n\n var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-remove]\"), true),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var removeLink = _step4.value;\n removeLink.addEventListener(\"click\", removeFileEvent);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n },\n // Called whenever a file is removed.\n removedfile: function removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n return this._updateMaxFilesReachedClass();\n },\n // Called when a thumbnail has been generated\n // Receives `file` and `dataUrl`\n thumbnail: function thumbnail(file, dataUrl) {\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n\n var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\"), true),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var thumbnailElement = _step5.value;\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return setTimeout(function () {\n return file.previewElement.classList.add(\"dz-image-preview\");\n }, 1);\n }\n },\n // Called whenever an error occurs\n // Receives `file` and `message`\n error: function error(file, message) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n }\n\n var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-errormessage]\"), true),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var node = _step6.value;\n node.textContent = message;\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n },\n errormultiple: function errormultiple() {},\n // Called when a file gets processed. Since there is a cue, not all added\n // files are processed immediately.\n // Receives `file`\n processing: function processing(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n\n if (file._removeLink) {\n return file._removeLink.innerHTML = this.options.dictCancelUpload;\n }\n }\n },\n processingmultiple: function processingmultiple() {},\n // Called whenever the upload progress gets updated.\n // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n // To get the total number of bytes of the file, use `file.size`\n uploadprogress: function uploadprogress(file, progress, bytesSent) {\n if (file.previewElement) {\n var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\"), true),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var node = _step7.value;\n node.nodeName === \"PROGRESS\" ? node.value = progress : node.style.width = \"\".concat(progress, \"%\");\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n },\n // Called whenever the total upload progress gets updated.\n // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n totaluploadprogress: function totaluploadprogress() {},\n // Called just before the file is sent. Gets the `xhr` object as second\n // parameter, so you can modify it (for example to add a CSRF token) and a\n // `formData` object to add additional information.\n sending: function sending() {},\n sendingmultiple: function sendingmultiple() {},\n // When the complete upload is finished and successful\n // Receives `file`\n success: function success(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n successmultiple: function successmultiple() {},\n // When the upload is canceled.\n canceled: function canceled(file) {\n return this.emit(\"error\", file, this.options.dictUploadCanceled);\n },\n canceledmultiple: function canceledmultiple() {},\n // When the upload is finished, either with success or an error.\n // Receives `file`\n complete: function complete(file) {\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n completemultiple: function completemultiple() {},\n maxfilesexceeded: function maxfilesexceeded() {},\n maxfilesreached: function maxfilesreached() {},\n queuecomplete: function queuecomplete() {},\n addedfiles: function addedfiles() {}\n};\n/* harmony default export */ var src_options = (defaultOptions);\n;// CONCATENATED MODULE: ./src/dropzone.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); }\n\nfunction dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Dropzone = /*#__PURE__*/function (_Emitter) {\n _inherits(Dropzone, _Emitter);\n\n var _super = _createSuper(Dropzone);\n\n function Dropzone(el, options) {\n var _this;\n\n dropzone_classCallCheck(this, Dropzone);\n\n _this = _super.call(this);\n var fallback, left;\n _this.element = el; // For backwards compatibility since the version was in the prototype previously\n\n _this.version = Dropzone.version;\n _this.clickableElements = [];\n _this.listeners = [];\n _this.files = []; // All files\n\n if (typeof _this.element === \"string\") {\n _this.element = document.querySelector(_this.element);\n } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n\n\n if (!_this.element || _this.element.nodeType == null) {\n throw new Error(\"Invalid dropzone element.\");\n }\n\n if (_this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n } // Now add this dropzone to the instances.\n\n\n Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself.\n\n _this.element.dropzone = _assertThisInitialized(_this);\n var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {};\n _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {});\n _this.options.previewTemplate = _this.options.previewTemplate.replace(/\\n*/g, \"\"); // If the browser failed, just call the fallback and leave\n\n if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this)));\n } // @options.url = @element.getAttribute \"action\" unless @options.url?\n\n\n if (_this.options.url == null) {\n _this.options.url = _this.element.getAttribute(\"action\");\n }\n\n if (!_this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n\n if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n\n if (_this.options.uploadMultiple && _this.options.chunking) {\n throw new Error(\"You cannot set both: uploadMultiple and chunking.\");\n } // Backwards compatibility\n\n\n if (_this.options.acceptedMimeTypes) {\n _this.options.acceptedFiles = _this.options.acceptedMimeTypes;\n delete _this.options.acceptedMimeTypes;\n } // Backwards compatibility\n\n\n if (_this.options.renameFilename != null) {\n _this.options.renameFile = function (file) {\n return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file);\n };\n }\n\n if (typeof _this.options.method === \"string\") {\n _this.options.method = _this.options.method.toUpperCase();\n }\n\n if ((fallback = _this.getExistingFallback()) && fallback.parentNode) {\n // Remove the fallback\n fallback.parentNode.removeChild(fallback);\n } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n\n\n if (_this.options.previewsContainer !== false) {\n if (_this.options.previewsContainer) {\n _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, \"previewsContainer\");\n } else {\n _this.previewsContainer = _this.element;\n }\n }\n\n if (_this.options.clickable) {\n if (_this.options.clickable === true) {\n _this.clickableElements = [_this.element];\n } else {\n _this.clickableElements = Dropzone.getElements(_this.options.clickable, \"clickable\");\n }\n }\n\n _this.init();\n\n return _this;\n } // Returns all files that have been accepted\n\n\n dropzone_createClass(Dropzone, [{\n key: \"getAcceptedFiles\",\n value: function getAcceptedFiles() {\n return this.files.filter(function (file) {\n return file.accepted;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that have been rejected\n // Not sure when that's going to be useful, but added for completeness.\n\n }, {\n key: \"getRejectedFiles\",\n value: function getRejectedFiles() {\n return this.files.filter(function (file) {\n return !file.accepted;\n }).map(function (file) {\n return file;\n });\n }\n }, {\n key: \"getFilesWithStatus\",\n value: function getFilesWithStatus(status) {\n return this.files.filter(function (file) {\n return file.status === status;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that are in the queue\n\n }, {\n key: \"getQueuedFiles\",\n value: function getQueuedFiles() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n }\n }, {\n key: \"getUploadingFiles\",\n value: function getUploadingFiles() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n }\n }, {\n key: \"getAddedFiles\",\n value: function getAddedFiles() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n } // Files that are either queued or uploading\n\n }, {\n key: \"getActiveFiles\",\n value: function getActiveFiles() {\n return this.files.filter(function (file) {\n return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED;\n }).map(function (file) {\n return file;\n });\n } // The function that gets called when Dropzone is initialized. You\n // can (and should) setup event listeners inside this function.\n\n }, {\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n // In case it isn't set already\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><button class=\\\"dz-button\\\" type=\\\"button\\\">\".concat(this.options.dictDefaultMessage, \"</button></div>\")));\n }\n\n if (this.clickableElements.length) {\n var setupHiddenFileInput = function setupHiddenFileInput() {\n if (_this2.hiddenFileInput) {\n _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput);\n }\n\n _this2.hiddenFileInput = document.createElement(\"input\");\n\n _this2.hiddenFileInput.setAttribute(\"type\", \"file\");\n\n if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) {\n _this2.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n\n _this2.hiddenFileInput.className = \"dz-hidden-input\";\n\n if (_this2.options.acceptedFiles !== null) {\n _this2.hiddenFileInput.setAttribute(\"accept\", _this2.options.acceptedFiles);\n }\n\n if (_this2.options.capture !== null) {\n _this2.hiddenFileInput.setAttribute(\"capture\", _this2.options.capture);\n } // Making sure that no one can \"tab\" into this field.\n\n\n _this2.hiddenFileInput.setAttribute(\"tabindex\", \"-1\"); // Not setting `display=\"none\"` because some browsers don't accept clicks\n // on elements that aren't displayed.\n\n\n _this2.hiddenFileInput.style.visibility = \"hidden\";\n _this2.hiddenFileInput.style.position = \"absolute\";\n _this2.hiddenFileInput.style.top = \"0\";\n _this2.hiddenFileInput.style.left = \"0\";\n _this2.hiddenFileInput.style.height = \"0\";\n _this2.hiddenFileInput.style.width = \"0\";\n Dropzone.getElement(_this2.options.hiddenInputContainer, \"hiddenInputContainer\").appendChild(_this2.hiddenFileInput);\n\n _this2.hiddenFileInput.addEventListener(\"change\", function () {\n var files = _this2.hiddenFileInput.files;\n\n if (files.length) {\n var _iterator = dropzone_createForOfIteratorHelper(files, true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var file = _step.value;\n\n _this2.addFile(file);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n _this2.emit(\"addedfiles\", files);\n\n setupHiddenFileInput();\n });\n };\n\n setupHiddenFileInput();\n }\n\n this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself.\n // They're not in @setupEventListeners() because they shouldn't be removed\n // again when the dropzone gets disabled.\n\n var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var eventName = _step2.value;\n this.on(eventName, this.options[eventName]);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this.on(\"uploadprogress\", function () {\n return _this2.updateTotalUploadProgress();\n });\n this.on(\"removedfile\", function () {\n return _this2.updateTotalUploadProgress();\n });\n this.on(\"canceled\", function (file) {\n return _this2.emit(\"complete\", file);\n }); // Emit a `queuecomplete` event if all files finished uploading.\n\n this.on(\"complete\", function (file) {\n if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) {\n // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n return setTimeout(function () {\n return _this2.emit(\"queuecomplete\");\n }, 0);\n }\n });\n\n var containsFiles = function containsFiles(e) {\n if (e.dataTransfer.types) {\n // Because e.dataTransfer.types is an Object in\n // IE, we need to iterate like this instead of\n // using e.dataTransfer.types.some()\n for (var i = 0; i < e.dataTransfer.types.length; i++) {\n if (e.dataTransfer.types[i] === \"Files\") return true;\n }\n }\n\n return false;\n };\n\n var noPropagation = function noPropagation(e) {\n // If there are no files, we don't want to stop\n // propagation so we don't interfere with other\n // drag and drop behaviour.\n if (!containsFiles(e)) return;\n e.stopPropagation();\n\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n }; // Create the listeners\n\n\n this.listeners = [{\n element: this.element,\n events: {\n dragstart: function dragstart(e) {\n return _this2.emit(\"dragstart\", e);\n },\n dragenter: function dragenter(e) {\n noPropagation(e);\n return _this2.emit(\"dragenter\", e);\n },\n dragover: function dragover(e) {\n // Makes it possible to drag files from chrome's download bar\n // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n var efct;\n\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (error) {}\n\n e.dataTransfer.dropEffect = \"move\" === efct || \"linkMove\" === efct ? \"move\" : \"copy\";\n noPropagation(e);\n return _this2.emit(\"dragover\", e);\n },\n dragleave: function dragleave(e) {\n return _this2.emit(\"dragleave\", e);\n },\n drop: function drop(e) {\n noPropagation(e);\n return _this2.drop(e);\n },\n dragend: function dragend(e) {\n return _this2.emit(\"dragend\", e);\n }\n } // This is disabled right now, because the browsers don't implement it properly.\n // \"paste\": (e) =>\n // noPropagation e\n // @paste e\n\n }];\n this.clickableElements.forEach(function (clickableElement) {\n return _this2.listeners.push({\n element: clickableElement,\n events: {\n click: function click(evt) {\n // Only the actual dropzone or the message element should trigger file selection\n if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(\".dz-message\"))) {\n _this2.hiddenFileInput.click(); // Forward the click\n\n }\n\n return true;\n }\n }\n });\n });\n this.enable();\n return this.options.init.call(this);\n } // Not fully tested yet\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.disable();\n this.removeAllFiles(true);\n\n if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n }\n }, {\n key: \"updateTotalUploadProgress\",\n value: function updateTotalUploadProgress() {\n var totalUploadProgress;\n var totalBytesSent = 0;\n var totalBytes = 0;\n var activeFiles = this.getActiveFiles();\n\n if (activeFiles.length) {\n var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var file = _step3.value;\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n } // @options.paramName can be a function taking one parameter rather than a string.\n // A parameter name for a file is obtained simply by calling this with an index number.\n\n }, {\n key: \"_getParamName\",\n value: function _getParamName(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return \"\".concat(this.options.paramName).concat(this.options.uploadMultiple ? \"[\".concat(n, \"]\") : \"\");\n }\n } // If @options.renameFile is a function,\n // the function will be used to rename the file.name before appending it to the formData\n\n }, {\n key: \"_renameFile\",\n value: function _renameFile(file) {\n if (typeof this.options.renameFile !== \"function\") {\n return file.name;\n }\n\n return this.options.renameFile(file);\n } // Returns a form that can be used as fallback if the browser does not support DragnDrop\n //\n // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getFallbackForm\",\n value: function getFallbackForm() {\n var existingFallback, form;\n\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n\n var fieldsString = '<div class=\"dz-fallback\">';\n\n if (this.options.dictFallbackText) {\n fieldsString += \"<p>\".concat(this.options.dictFallbackText, \"</p>\");\n }\n\n fieldsString += \"<input type=\\\"file\\\" name=\\\"\".concat(this._getParamName(0), \"\\\" \").concat(this.options.uploadMultiple ? 'multiple=\"multiple\"' : undefined, \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\");\n var fields = Dropzone.createElement(fieldsString);\n\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(\"<form action=\\\"\".concat(this.options.url, \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\").concat(this.options.method, \"\\\"></form>\"));\n form.appendChild(fields);\n } else {\n // Make sure that the enctype and method attributes are set properly\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n\n return form != null ? form : fields;\n } // Returns the fallback elements if they exist already\n //\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getExistingFallback\",\n value: function getExistingFallback() {\n var getFallback = function getFallback(elements) {\n var _iterator4 = dropzone_createForOfIteratorHelper(elements, true),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var el = _step4.value;\n\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n };\n\n for (var _i = 0, _arr = [\"div\", \"form\"]; _i < _arr.length; _i++) {\n var tagName = _arr[_i];\n var fallback;\n\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n } // Activates all listeners stored in @listeners\n\n }, {\n key: \"setupEventListeners\",\n value: function setupEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.addEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Deactivates all listeners stored in @listeners\n\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Removes all event listeners and cancels all files in the queue or being processed.\n\n }, {\n key: \"disable\",\n value: function disable() {\n var _this3 = this;\n\n this.clickableElements.forEach(function (element) {\n return element.classList.remove(\"dz-clickable\");\n });\n this.removeEventListeners();\n this.disabled = true;\n return this.files.map(function (file) {\n return _this3.cancelUpload(file);\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n delete this.disabled;\n this.clickableElements.forEach(function (element) {\n return element.classList.add(\"dz-clickable\");\n });\n return this.setupEventListeners();\n } // Returns a nicely formatted filesize\n\n }, {\n key: \"filesize\",\n value: function filesize(size) {\n var selectedSize = 0;\n var selectedUnit = \"b\";\n\n if (size > 0) {\n var units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (var i = 0; i < units.length; i++) {\n var unit = units[i];\n var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n }\n\n return \"<strong>\".concat(selectedSize, \"</strong> \").concat(this.options.dictFileSizeUnits[selectedUnit]);\n } // Adds or removes the `dz-max-files-reached` class from the form.\n\n }, {\n key: \"_updateMaxFilesReachedClass\",\n value: function _updateMaxFilesReachedClass() {\n if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit(\"maxfilesreached\", this.files);\n }\n\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n }\n }, {\n key: \"drop\",\n value: function drop(e) {\n if (!e.dataTransfer) {\n return;\n }\n\n this.emit(\"drop\", e); // Convert the FileList to an Array\n // This is necessary for IE11\n\n var files = [];\n\n for (var i = 0; i < e.dataTransfer.files.length; i++) {\n files[i] = e.dataTransfer.files[i];\n } // Even if it's a folder, files.length will contain the folders.\n\n\n if (files.length) {\n var items = e.dataTransfer.items;\n\n if (items && items.length && items[0].webkitGetAsEntry != null) {\n // The browser supports dropping of folders, so handle items instead of files\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n\n this.emit(\"addedfiles\", files);\n }\n }, {\n key: \"paste\",\n value: function paste(e) {\n if (__guard__(e != null ? e.clipboardData : undefined, function (x) {\n return x.items;\n }) == null) {\n return;\n }\n\n this.emit(\"paste\", e);\n var items = e.clipboardData.items;\n\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n }\n }, {\n key: \"handleFiles\",\n value: function handleFiles(files) {\n var _iterator5 = dropzone_createForOfIteratorHelper(files, true),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var file = _step5.value;\n this.addFile(file);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n } // When a folder is dropped (or files are pasted), items must be handled\n // instead of files.\n\n }, {\n key: \"_addFilesFromItems\",\n value: function _addFilesFromItems(items) {\n var _this4 = this;\n\n return function () {\n var result = [];\n\n var _iterator6 = dropzone_createForOfIteratorHelper(items, true),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var item = _step6.value;\n var entry;\n\n if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n result.push(_this4.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n // Append all files from that directory to files\n result.push(_this4._addFilesFromDirectory(entry, entry.name));\n } else {\n result.push(undefined);\n }\n } else if (item.getAsFile != null) {\n if (item.kind == null || item.kind === \"file\") {\n result.push(_this4.addFile(item.getAsFile()));\n } else {\n result.push(undefined);\n }\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return result;\n }();\n } // Goes through the directory, and adds each file it finds recursively\n\n }, {\n key: \"_addFilesFromDirectory\",\n value: function _addFilesFromDirectory(directory, path) {\n var _this5 = this;\n\n var dirReader = directory.createReader();\n\n var errorHandler = function errorHandler(error) {\n return __guardMethod__(console, \"log\", function (o) {\n return o.log(error);\n });\n };\n\n var readEntries = function readEntries() {\n return dirReader.readEntries(function (entries) {\n if (entries.length > 0) {\n var _iterator7 = dropzone_createForOfIteratorHelper(entries, true),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var entry = _step7.value;\n\n if (entry.isFile) {\n entry.file(function (file) {\n if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === \".\") {\n return;\n }\n\n file.fullPath = \"\".concat(path, \"/\").concat(file.name);\n return _this5.addFile(file);\n });\n } else if (entry.isDirectory) {\n _this5._addFilesFromDirectory(entry, \"\".concat(path, \"/\").concat(entry.name));\n }\n } // Recursively call readEntries() again, since browser only handle\n // the first 100 entries.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n readEntries();\n }\n\n return null;\n }, errorHandler);\n };\n\n return readEntries();\n } // If `done()` is called without argument the file is accepted\n // If you call it with an error message, the file is rejected\n // (This allows for asynchronous validation)\n //\n // This function checks the filesize, and if the file.type passes the\n // `acceptedFiles` check.\n\n }, {\n key: \"accept\",\n value: function accept(file, done) {\n if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) {\n done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n done(this.options.dictInvalidFileType);\n } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n this.emit(\"maxfilesexceeded\", file);\n } else {\n this.options.accept.call(this, file, done);\n }\n }\n }, {\n key: \"addFile\",\n value: function addFile(file) {\n var _this6 = this;\n\n file.upload = {\n uuid: Dropzone.uuidv4(),\n progress: 0,\n // Setting the total upload size to file.size for the beginning\n // It's actual different than the size to be transmitted.\n total: file.size,\n bytesSent: 0,\n filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and\n // thus the chunks — might change if `options.transformFile` is set\n // and does something to the data.\n\n };\n this.files.push(file);\n file.status = Dropzone.ADDED;\n this.emit(\"addedfile\", file);\n\n this._enqueueThumbnail(file);\n\n this.accept(file, function (error) {\n if (error) {\n file.accepted = false;\n\n _this6._errorProcessing([file], error); // Will set the file.status\n\n } else {\n file.accepted = true;\n\n if (_this6.options.autoQueue) {\n _this6.enqueueFile(file);\n } // Will set .accepted = true\n\n }\n\n _this6._updateMaxFilesReachedClass();\n });\n } // Wrapper for enqueueFile\n\n }, {\n key: \"enqueueFiles\",\n value: function enqueueFiles(files) {\n var _iterator8 = dropzone_createForOfIteratorHelper(files, true),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var file = _step8.value;\n this.enqueueFile(file);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return null;\n }\n }, {\n key: \"enqueueFile\",\n value: function enqueueFile(file) {\n var _this7 = this;\n\n if (file.status === Dropzone.ADDED && file.accepted === true) {\n file.status = Dropzone.QUEUED;\n\n if (this.options.autoProcessQueue) {\n return setTimeout(function () {\n return _this7.processQueue();\n }, 0); // Deferring the call\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n }\n }, {\n key: \"_enqueueThumbnail\",\n value: function _enqueueThumbnail(file) {\n var _this8 = this;\n\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n this._thumbnailQueue.push(file);\n\n return setTimeout(function () {\n return _this8._processThumbnailQueue();\n }, 0); // Deferring the call\n }\n }\n }, {\n key: \"_processThumbnailQueue\",\n value: function _processThumbnailQueue() {\n var _this9 = this;\n\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n return;\n }\n\n this._processingThumbnail = true;\n\n var file = this._thumbnailQueue.shift();\n\n return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) {\n _this9.emit(\"thumbnail\", file, dataUrl);\n\n _this9._processingThumbnail = false;\n return _this9._processThumbnailQueue();\n });\n } // Can be called by the user to remove a file\n\n }, {\n key: \"removeFile\",\n value: function removeFile(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n\n this.files = without(this.files, file);\n this.emit(\"removedfile\", file);\n\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n } // Removes all files that aren't currently processed from the list\n\n }, {\n key: \"removeAllFiles\",\n value: function removeAllFiles(cancelIfNecessary) {\n // Create a copy of files since removeFile() changes the @files array.\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n\n var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var file = _step9.value;\n\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return null;\n } // Resizes an image before it gets sent to the server. This function is the default behavior of\n // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n // the resized blob.\n\n }, {\n key: \"resizeImage\",\n value: function resizeImage(file, width, height, resizeMethod, callback) {\n var _this10 = this;\n\n return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) {\n if (canvas == null) {\n // The image has not been resized\n return callback(file);\n } else {\n var resizeMimeType = _this10.options.resizeMimeType;\n\n if (resizeMimeType == null) {\n resizeMimeType = file.type;\n }\n\n var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality);\n\n if (resizeMimeType === \"image/jpeg\" || resizeMimeType === \"image/jpg\") {\n // Now add the original EXIF information\n resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n }\n\n return callback(Dropzone.dataURItoBlob(resizedDataURL));\n }\n });\n }\n }, {\n key: \"createThumbnail\",\n value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n var _this11 = this;\n\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector\n\n if (file.type === \"image/svg+xml\") {\n if (callback != null) {\n callback(fileReader.result);\n }\n\n return;\n }\n\n _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n };\n\n fileReader.readAsDataURL(file);\n } // `mockFile` needs to have these attributes:\n //\n // { name: 'name', size: 12345, imageUrl: '' }\n //\n // `callback` will be invoked when the image has been downloaded and displayed.\n // `crossOrigin` will be added to the `img` tag when accessing the file.\n\n }, {\n key: \"displayExistingFile\",\n value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) {\n var _this12 = this;\n\n var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n this.emit(\"addedfile\", mockFile);\n this.emit(\"complete\", mockFile);\n\n if (!resizeThumbnail) {\n this.emit(\"thumbnail\", mockFile, imageUrl);\n if (callback) callback();\n } else {\n var onDone = function onDone(thumbnail) {\n _this12.emit(\"thumbnail\", mockFile, thumbnail);\n\n if (callback) callback();\n };\n\n mockFile.dataURL = imageUrl;\n this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin);\n }\n }\n }, {\n key: \"createThumbnailFromUrl\",\n value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n var _this13 = this;\n\n // Not using `new Image` here because of a bug in latest Chrome versions.\n // See https://github.com/enyo/dropzone/pull/226\n var img = document.createElement(\"img\");\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n } // fixOrientation is not needed anymore with browsers handling imageOrientation\n\n\n fixOrientation = getComputedStyle(document.body)[\"imageOrientation\"] == \"from-image\" ? false : fixOrientation;\n\n img.onload = function () {\n var loadExif = function loadExif(callback) {\n return callback(1);\n };\n\n if (typeof EXIF !== \"undefined\" && EXIF !== null && fixOrientation) {\n loadExif = function loadExif(callback) {\n return EXIF.getData(img, function () {\n return callback(EXIF.getTag(this, \"Orientation\"));\n });\n };\n }\n\n return loadExif(function (orientation) {\n file.width = img.width;\n file.height = img.height;\n\n var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod);\n\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n\n if (orientation > 4) {\n canvas.width = resizeInfo.trgHeight;\n canvas.height = resizeInfo.trgWidth;\n }\n\n switch (orientation) {\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n break;\n\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height);\n ctx.rotate(Math.PI);\n break;\n\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height);\n ctx.scale(1, -1);\n break;\n\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(0, -canvas.width);\n break;\n\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(canvas.height, -canvas.width);\n ctx.scale(-1, 1);\n break;\n\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI);\n ctx.translate(-canvas.height, 0);\n break;\n } // This is a bugfix for iOS' scaling bug.\n\n\n drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n var thumbnail = canvas.toDataURL(\"image/png\");\n\n if (callback != null) {\n return callback(thumbnail, canvas);\n }\n });\n };\n\n if (callback != null) {\n img.onerror = callback;\n }\n\n return img.src = file.dataURL;\n } // Goes through the queue and processes files if there aren't too many already.\n\n }, {\n key: \"processQueue\",\n value: function processQueue() {\n var parallelUploads = this.options.parallelUploads;\n var processingLength = this.getUploadingFiles().length;\n var i = processingLength; // There are already at least as many files uploading than should be\n\n if (processingLength >= parallelUploads) {\n return;\n }\n\n var queuedFiles = this.getQueuedFiles();\n\n if (!(queuedFiles.length > 0)) {\n return;\n }\n\n if (this.options.uploadMultiple) {\n // The files should be uploaded in one request\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n } // Nothing left to process\n\n\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n } // Wrapper for `processFiles`\n\n }, {\n key: \"processFile\",\n value: function processFile(file) {\n return this.processFiles([file]);\n } // Loads the file, then calls finishedLoading()\n\n }, {\n key: \"processFiles\",\n value: function processFiles(files) {\n var _iterator10 = dropzone_createForOfIteratorHelper(files, true),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var file = _step10.value;\n file.processing = true; // Backwards compatibility\n\n file.status = Dropzone.UPLOADING;\n this.emit(\"processing\", file);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n\n return this.uploadFiles(files);\n }\n }, {\n key: \"_getFilesWithXhr\",\n value: function _getFilesWithXhr(xhr) {\n var files;\n return files = this.files.filter(function (file) {\n return file.xhr === xhr;\n }).map(function (file) {\n return file;\n });\n } // Cancels the file upload and sets the status to CANCELED\n // **if** the file is actually being uploaded.\n // If it's still in the queue, the file is being removed from it and the status\n // set to CANCELED.\n\n }, {\n key: \"cancelUpload\",\n value: function cancelUpload(file) {\n if (file.status === Dropzone.UPLOADING) {\n var groupedFiles = this._getFilesWithXhr(file.xhr);\n\n var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var groupedFile = _step11.value;\n groupedFile.status = Dropzone.CANCELED;\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n if (typeof file.xhr !== \"undefined\") {\n file.xhr.abort();\n }\n\n var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var _groupedFile = _step12.value;\n this.emit(\"canceled\", _groupedFile);\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }, {\n key: \"resolveOption\",\n value: function resolveOption(option) {\n if (typeof option === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return option.apply(this, args);\n }\n\n return option;\n }\n }, {\n key: \"uploadFile\",\n value: function uploadFile(file) {\n return this.uploadFiles([file]);\n }\n }, {\n key: \"uploadFiles\",\n value: function uploadFiles(files) {\n var _this14 = this;\n\n this._transformFiles(files, function (transformedFiles) {\n if (_this14.options.chunking) {\n // Chunking is not allowed to be used with `uploadMultiple` so we know\n // that there is only __one__file.\n var transformedFile = transformedFiles[0];\n files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize);\n files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize);\n }\n\n if (files[0].upload.chunked) {\n // This file should be sent in chunks!\n // If the chunking option is set, we **know** that there can only be **one** file, since\n // uploadMultiple is not allowed with this option.\n var file = files[0];\n var _transformedFile = transformedFiles[0];\n var startedChunkCount = 0;\n file.upload.chunks = [];\n\n var handleNextChunk = function handleNextChunk() {\n var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet.\n\n while (file.upload.chunks[chunkIndex] !== undefined) {\n chunkIndex++;\n } // This means, that all chunks have already been started.\n\n\n if (chunkIndex >= file.upload.totalChunkCount) return;\n startedChunkCount++;\n var start = chunkIndex * _this14.options.chunkSize;\n var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size);\n var dataBlock = {\n name: _this14._getParamName(0),\n data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end),\n filename: file.upload.filename,\n chunkIndex: chunkIndex\n };\n file.upload.chunks[chunkIndex] = {\n file: file,\n index: chunkIndex,\n dataBlock: dataBlock,\n // In case we want to retry.\n status: Dropzone.UPLOADING,\n progress: 0,\n retries: 0 // The number of times this block has been retried.\n\n };\n\n _this14._uploadData(files, [dataBlock]);\n };\n\n file.upload.finishedChunkUpload = function (chunk, response) {\n var allFinished = true;\n chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk\n\n chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n\n chunk.xhr = null;\n\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] === undefined) {\n return handleNextChunk();\n }\n\n if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n allFinished = false;\n }\n }\n\n if (allFinished) {\n _this14.options.chunksUploaded(file, function () {\n _this14._finished(files, response, null);\n });\n }\n };\n\n if (_this14.options.parallelChunkUploads) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n handleNextChunk();\n }\n } else {\n handleNextChunk();\n }\n } else {\n var dataBlocks = [];\n\n for (var _i2 = 0; _i2 < files.length; _i2++) {\n dataBlocks[_i2] = {\n name: _this14._getParamName(_i2),\n data: transformedFiles[_i2],\n filename: files[_i2].upload.filename\n };\n }\n\n _this14._uploadData(files, dataBlocks);\n }\n });\n } /// Returns the right chunk for given file and xhr\n\n }, {\n key: \"_getChunk\",\n value: function _getChunk(file, xhr) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n return file.upload.chunks[i];\n }\n }\n } // This function actually uploads the file(s) to the server.\n // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n // files, or individual chunks for chunked upload).\n\n }, {\n key: \"_uploadData\",\n value: function _uploadData(files, dataBlocks) {\n var _this15 = this;\n\n var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later.\n\n var _iterator13 = dropzone_createForOfIteratorHelper(files, true),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var file = _step13.value;\n file.xhr = xhr;\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n if (files[0].upload.chunked) {\n // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n }\n\n var method = this.resolveOption(this.options.method, files);\n var url = this.resolveOption(this.options.url, files);\n xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n\n var timeout = this.resolveOption(this.options.timeout, files);\n if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n xhr.withCredentials = !!this.options.withCredentials;\n\n xhr.onload = function (e) {\n _this15._finishedUploading(files, xhr, e);\n };\n\n xhr.ontimeout = function () {\n _this15._handleUploadError(files, xhr, \"Request timedout after \".concat(_this15.options.timeout / 1000, \" seconds\"));\n };\n\n xhr.onerror = function () {\n _this15._handleUploadError(files, xhr);\n }; // Some browsers do not have the .upload property\n\n\n var progressObj = xhr.upload != null ? xhr.upload : xhr;\n\n progressObj.onprogress = function (e) {\n return _this15._updateFilesUploadProgress(files, xhr, e);\n };\n\n var headers = {\n Accept: \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n };\n\n if (this.options.headers) {\n Dropzone.extend(headers, this.options.headers);\n }\n\n for (var headerName in headers) {\n var headerValue = headers[headerName];\n\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n\n var formData = new FormData(); // Adding all @options parameters\n\n if (this.options.params) {\n var additionalParams = this.options.params;\n\n if (typeof additionalParams === \"function\") {\n additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n }\n\n for (var key in additionalParams) {\n var value = additionalParams[key];\n\n if (Array.isArray(value)) {\n // The additional parameter contains an array,\n // so lets iterate over it to attach each value\n // individually.\n for (var i = 0; i < value.length; i++) {\n formData.append(key, value[i]);\n }\n } else {\n formData.append(key, value);\n }\n }\n } // Let the user add additional data if necessary\n\n\n var _iterator14 = dropzone_createForOfIteratorHelper(files, true),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _file = _step14.value;\n this.emit(\"sending\", _file, xhr, formData);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n\n this._addFormElementData(formData); // Finally add the files\n // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n\n\n for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) {\n var dataBlock = dataBlocks[_i3];\n formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n }\n\n this.submitRequest(xhr, formData, files);\n } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n\n }, {\n key: \"_transformFiles\",\n value: function _transformFiles(files, done) {\n var _this16 = this;\n\n var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n\n var doneCounter = 0;\n\n var _loop = function _loop(i) {\n _this16.options.transformFile.call(_this16, files[i], function (transformedFile) {\n transformedFiles[i] = transformedFile;\n\n if (++doneCounter === files.length) {\n done(transformedFiles);\n }\n });\n };\n\n for (var i = 0; i < files.length; i++) {\n _loop(i);\n }\n } // Takes care of adding other input elements of the form to the AJAX request\n\n }, {\n key: \"_addFormElementData\",\n value: function _addFormElementData(formData) {\n // Take care of other input elements\n if (this.element.tagName === \"FORM\") {\n var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll(\"input, textarea, select, button\"), true),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var input = _step15.value;\n var inputName = input.getAttribute(\"name\");\n var inputType = input.getAttribute(\"type\");\n if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it.\n\n if (typeof inputName === \"undefined\" || inputName === null) continue;\n\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n // Possibly multiple values\n var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var option = _step16.value;\n\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n } else if (!inputType || inputType !== \"checkbox\" && inputType !== \"radio\" || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n }\n } // Invoked when there is new progress information about given files.\n // If e is not provided, it is assumed that the upload is finished.\n\n }, {\n key: \"_updateFilesUploadProgress\",\n value: function _updateFilesUploadProgress(files, xhr, e) {\n if (!files[0].upload.chunked) {\n // Handle file uploads without chunking\n var _iterator17 = dropzone_createForOfIteratorHelper(files, true),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var file = _step17.value;\n\n if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) {\n // If both, the `total` and `bytesSent` have already been set, and\n // they are equal (meaning progress is at 100%), we can skip this\n // file, since an upload progress shouldn't go down.\n continue;\n }\n\n if (e) {\n file.upload.progress = 100 * e.loaded / e.total;\n file.upload.total = e.total;\n file.upload.bytesSent = e.loaded;\n } else {\n // No event, so we're at 100%\n file.upload.progress = 100;\n file.upload.bytesSent = file.upload.total;\n }\n\n this.emit(\"uploadprogress\", file, file.upload.progress, file.upload.bytesSent);\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n } else {\n // Handle chunked file uploads\n // Chunked upload is not compatible with uploading multiple files in one\n // request, so we know there's only one file.\n var _file2 = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk\n // progress.\n\n var chunk = this._getChunk(_file2, xhr);\n\n if (e) {\n chunk.progress = 100 * e.loaded / e.total;\n chunk.total = e.total;\n chunk.bytesSent = e.loaded;\n } else {\n // No event, so we're at 100%\n chunk.progress = 100;\n chunk.bytesSent = chunk.total;\n } // Now tally the *file* upload progress from its individual chunks\n\n\n _file2.upload.progress = 0;\n _file2.upload.total = 0;\n _file2.upload.bytesSent = 0;\n\n for (var i = 0; i < _file2.upload.totalChunkCount; i++) {\n if (_file2.upload.chunks[i] && typeof _file2.upload.chunks[i].progress !== \"undefined\") {\n _file2.upload.progress += _file2.upload.chunks[i].progress;\n _file2.upload.total += _file2.upload.chunks[i].total;\n _file2.upload.bytesSent += _file2.upload.chunks[i].bytesSent;\n }\n } // Since the process is a percentage, we need to divide by the amount of\n // chunks we've used.\n\n\n _file2.upload.progress = _file2.upload.progress / _file2.upload.totalChunkCount;\n this.emit(\"uploadprogress\", _file2, _file2.upload.progress, _file2.upload.bytesSent);\n }\n }\n }, {\n key: \"_finishedUploading\",\n value: function _finishedUploading(files, xhr, e) {\n var response;\n\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (xhr.responseType !== \"arraybuffer\" && xhr.responseType !== \"blob\") {\n response = xhr.responseText;\n\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (error) {\n e = error;\n response = \"Invalid JSON response from server.\";\n }\n }\n }\n\n this._updateFilesUploadProgress(files, xhr);\n\n if (!(200 <= xhr.status && xhr.status < 300)) {\n this._handleUploadError(files, xhr, response);\n } else {\n if (files[0].upload.chunked) {\n files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response);\n } else {\n this._finished(files, response, e);\n }\n }\n }\n }, {\n key: \"_handleUploadError\",\n value: function _handleUploadError(files, xhr, response) {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (files[0].upload.chunked && this.options.retryChunks) {\n var chunk = this._getChunk(files[0], xhr);\n\n if (chunk.retries++ < this.options.retryChunksLimit) {\n this._uploadData(files, [chunk.dataBlock]);\n\n return;\n } else {\n console.warn(\"Retried this chunk too often. Giving up.\");\n }\n }\n\n this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n }\n }, {\n key: \"submitRequest\",\n value: function submitRequest(xhr, formData, files) {\n if (xhr.readyState != 1) {\n console.warn(\"Cannot send this request because the XMLHttpRequest.readyState is not OPENED.\");\n return;\n }\n\n xhr.send(formData);\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_finished\",\n value: function _finished(files, responseText, e) {\n var _iterator18 = dropzone_createForOfIteratorHelper(files, true),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var file = _step18.value;\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_errorProcessing\",\n value: function _errorProcessing(files, message, xhr) {\n var _iterator19 = dropzone_createForOfIteratorHelper(files, true),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var file = _step19.value;\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }], [{\n key: \"initClass\",\n value: function initClass() {\n // Exposing the emitter class, mainly for tests\n this.prototype.Emitter = Emitter;\n /*\n This is a list of all available events you can register on a dropzone object.\n You can register an event handler like this:\n dropzone.on(\"dragEnter\", function() { });\n */\n\n this.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n this.prototype._thumbnailQueue = [];\n this.prototype._processingThumbnail = false;\n } // global utility\n\n }, {\n key: \"extend\",\n value: function extend(target) {\n for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n objects[_key2 - 1] = arguments[_key2];\n }\n\n for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) {\n var object = _objects[_i4];\n\n for (var key in object) {\n var val = object[key];\n target[key] = val;\n }\n }\n\n return target;\n }\n }, {\n key: \"uuidv4\",\n value: function uuidv4() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c === \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n }]);\n\n return Dropzone;\n}(Emitter);\n\n\nDropzone.initClass();\nDropzone.version = \"5.9.3\"; // This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n// Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n// <form action=\"/upload\" id=\"my-dropzone-element-id\" class=\"dropzone\"></form>\n\nDropzone.options = {}; // Returns the options for an element or undefined if none available.\n\nDropzone.optionsForElement = function (element) {\n // Get the `Dropzone.options.elementId` for this element if it exists\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return undefined;\n }\n}; // Holds a list of all dropzone instances\n\n\nDropzone.instances = []; // Returns the dropzone for given element if any\n\nDropzone.forElement = function (element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n if ((element != null ? element.dropzone : undefined) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n\n return element.dropzone;\n}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\n\n\nDropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them\n\nDropzone.discover = function () {\n var dropzones;\n\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = []; // IE :(\n\n var checkElements = function checkElements(elements) {\n return function () {\n var result = [];\n\n var _iterator20 = dropzone_createForOfIteratorHelper(elements, true),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var el = _step20.value;\n\n if (/(^| )dropzone($| )/.test(el.className)) {\n result.push(dropzones.push(el));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n return result;\n }();\n };\n\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n\n return function () {\n var result = [];\n\n var _iterator21 = dropzone_createForOfIteratorHelper(dropzones, true),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var dropzone = _step21.value;\n\n // Create a dropzone unless auto discover has been disabled for specific element\n if (Dropzone.optionsForElement(dropzone) !== false) {\n result.push(new Dropzone(dropzone));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n return result;\n }();\n}; // Some browsers support drag and drog functionality, but not correctly.\n//\n// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n\n\nDropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n/opera.*(Macintosh|Windows Phone).*version\\/12/i]; // Checks if the browser is supported\n\nDropzone.isBrowserSupported = function () {\n var capableBrowser = true;\n\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n if (Dropzone.blacklistedBrowsers !== undefined) {\n // Since this has been renamed, this makes sure we don't break older\n // configuration.\n Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers;\n } // The browser supports the API, but may be blocked.\n\n\n var _iterator22 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var regex = _step22.value;\n\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n }\n } else {\n capableBrowser = false;\n }\n\n return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n // convert base64 to raw binary data held in a string\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n var byteString = atob(dataURI.split(\",\")[1]); // separate out the mime component\n\n var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0]; // write the bytes of the string to an ArrayBuffer\n\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n ia[i] = byteString.charCodeAt(i);\n } // write the ArrayBuffer to a blob\n\n\n return new Blob([ab], {\n type: mimeString\n });\n}; // Returns an array without the rejected item\n\n\nvar without = function without(list, rejectedItem) {\n return list.filter(function (item) {\n return item !== rejectedItem;\n }).map(function (item) {\n return item;\n });\n}; // abc-def_ghi -> abcDefGhi\n\n\nvar camelize = function camelize(str) {\n return str.replace(/[\\-_](\\w)/g, function (match) {\n return match.charAt(1).toUpperCase();\n });\n}; // Creates an element from string\n\n\nDropzone.createElement = function (string) {\n var div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n}; // Tests if given element is inside (or simply is) the container\n\n\nDropzone.elementInside = function (element, container) {\n if (element === container) {\n return true;\n } // Coffeescript doesn't support do/while loops\n\n\n while (element = element.parentNode) {\n if (element === container) {\n return true;\n }\n }\n\n return false;\n};\n\nDropzone.getElement = function (el, name) {\n var element;\n\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n\n if (element == null) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector or a plain HTML element.\"));\n }\n\n return element;\n};\n\nDropzone.getElements = function (els, name) {\n var el, elements;\n\n if (els instanceof Array) {\n elements = [];\n\n try {\n var _iterator23 = dropzone_createForOfIteratorHelper(els, true),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n el = _step23.value;\n elements.push(this.getElement(el, name));\n }\n } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n } catch (e) {\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n\n var _iterator24 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true),\n _step24;\n\n try {\n for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n el = _step24.value;\n elements.push(el);\n }\n } catch (err) {\n _iterator24.e(err);\n } finally {\n _iterator24.f();\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n\n if (elements == null || !elements.length) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\"));\n }\n\n return elements;\n}; // Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\n\n\nDropzone.confirm = function (question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n}; // Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\n\n\nDropzone.isValidFile = function (file, acceptedFiles) {\n if (!acceptedFiles) {\n return true;\n } // If there are no accepted mime types, it's OK\n\n\n acceptedFiles = acceptedFiles.split(\",\");\n var mimeType = file.type;\n var baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n var _iterator25 = dropzone_createForOfIteratorHelper(acceptedFiles, true),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var validType = _step25.value;\n validType = validType.trim();\n\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n // This is something like a image/* mime type\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n\n return false;\n}; // Augment jQuery\n\n\nif (typeof jQuery !== \"undefined\" && jQuery !== null) {\n jQuery.fn.dropzone = function (options) {\n return this.each(function () {\n return new Dropzone(this, options);\n });\n };\n} // Dropzone file status codes\n\n\nDropzone.ADDED = \"added\";\nDropzone.QUEUED = \"queued\"; // For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\n\nDropzone.ACCEPTED = Dropzone.QUEUED;\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\n\nvar detectVerticalSquash = function detectVerticalSquash(img) {\n var iw = img.naturalWidth;\n var ih = img.naturalHeight;\n var canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n\n var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih),\n data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically.\n\n\n var sy = 0;\n var ey = ih;\n var py = ih;\n\n while (py > sy) {\n var alpha = data[(py - 1) * 4 + 3];\n\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n\n py = ey + sy >> 1;\n }\n\n var ratio = py / ih;\n\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n}; // A replacement for context.drawImage\n// (args are for source and destination).\n\n\nvar drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n var vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n}; // Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\n\n\nvar ExifRestore = /*#__PURE__*/function () {\n function ExifRestore() {\n dropzone_classCallCheck(this, ExifRestore);\n }\n\n dropzone_createClass(ExifRestore, null, [{\n key: \"initClass\",\n value: function initClass() {\n this.KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n }\n }, {\n key: \"encode64\",\n value: function encode64(input) {\n var output = \"\";\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = \"\";\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = \"\";\n var i = 0;\n\n while (true) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n chr1 = chr2 = chr3 = \"\";\n enc1 = enc2 = enc3 = enc4 = \"\";\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return output;\n }\n }, {\n key: \"restore\",\n value: function restore(origFileBase64, resizedFileBase64) {\n if (!origFileBase64.match(\"data:image/jpeg;base64,\")) {\n return resizedFileBase64;\n }\n\n var rawImage = this.decode64(origFileBase64.replace(\"data:image/jpeg;base64,\", \"\"));\n var segments = this.slice2Segments(rawImage);\n var image = this.exifManipulation(resizedFileBase64, segments);\n return \"data:image/jpeg;base64,\".concat(this.encode64(image));\n }\n }, {\n key: \"exifManipulation\",\n value: function exifManipulation(resizedFileBase64, segments) {\n var exifArray = this.getExifArray(segments);\n var newImageArray = this.insertExif(resizedFileBase64, exifArray);\n var aBuffer = new Uint8Array(newImageArray);\n return aBuffer;\n }\n }, {\n key: \"getExifArray\",\n value: function getExifArray(segments) {\n var seg = undefined;\n var x = 0;\n\n while (x < segments.length) {\n seg = segments[x];\n\n if (seg[0] === 255 & seg[1] === 225) {\n return seg;\n }\n\n x++;\n }\n\n return [];\n }\n }, {\n key: \"insertExif\",\n value: function insertExif(resizedFileBase64, exifArray) {\n var imageData = resizedFileBase64.replace(\"data:image/jpeg;base64,\", \"\");\n var buf = this.decode64(imageData);\n var separatePoint = buf.indexOf(255, 3);\n var mae = buf.slice(0, separatePoint);\n var ato = buf.slice(separatePoint);\n var array = mae;\n array = array.concat(exifArray);\n array = array.concat(ato);\n return array;\n }\n }, {\n key: \"slice2Segments\",\n value: function slice2Segments(rawImageArray) {\n var head = 0;\n var segments = [];\n\n while (true) {\n var length;\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) {\n break;\n }\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) {\n head += 2;\n } else {\n length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3];\n var endPoint = head + length + 2;\n var seg = rawImageArray.slice(head, endPoint);\n segments.push(seg);\n head = endPoint;\n }\n\n if (head > rawImageArray.length) {\n break;\n }\n }\n\n return segments;\n }\n }, {\n key: \"decode64\",\n value: function decode64(input) {\n var output = \"\";\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = \"\";\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = \"\";\n var i = 0;\n var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n\n if (base64test.exec(input)) {\n console.warn(\"There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\\nExpect errors in decoding.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (true) {\n enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n buf.push(chr1);\n\n if (enc3 !== 64) {\n buf.push(chr2);\n }\n\n if (enc4 !== 64) {\n buf.push(chr3);\n }\n\n chr1 = chr2 = chr3 = \"\";\n enc1 = enc2 = enc3 = enc4 = \"\";\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return buf;\n }\n }]);\n\n return ExifRestore;\n}();\n\nExifRestore.initClass();\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n// @win window reference\n// @fn function reference\n\nvar contentLoaded = function contentLoaded(win, fn) {\n var done = false;\n var top = true;\n var doc = win.document;\n var root = doc.documentElement;\n var add = doc.addEventListener ? \"addEventListener\" : \"attachEvent\";\n var rem = doc.addEventListener ? \"removeEventListener\" : \"detachEvent\";\n var pre = doc.addEventListener ? \"\" : \"on\";\n\n var init = function init(e) {\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n return;\n }\n\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n\n var poll = function poll() {\n try {\n root.doScroll(\"left\");\n } catch (e) {\n setTimeout(poll, 50);\n return;\n }\n\n return init(\"poll\");\n };\n\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (error) {}\n\n if (top) {\n poll();\n }\n }\n\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n}; // As a single function to be able to write tests.\n\n\nDropzone._autoDiscoverFunction = function () {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n};\n\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n return typeof value !== \"undefined\" && value !== null ? transform(value) : undefined;\n}\n\nfunction __guardMethod__(obj, methodName, transform) {\n if (typeof obj !== \"undefined\" && obj !== null && typeof obj[methodName] === \"function\") {\n return transform(obj, methodName);\n } else {\n return undefined;\n }\n}\n\n\n;// CONCATENATED MODULE: ./tool/dropzone.dist.js\n /// Make Dropzone a global variable.\n\nwindow.Dropzone = Dropzone;\n/* harmony default export */ var dropzone_dist = (Dropzone);\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","/*!\n * Flickity asNavFor v2.0.1\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n'use strict';\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n if ( !this.navCompanion ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = this.navCompanion.selectedCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n","/**\n * Flickity fade v1.0.0\n * Fade between Flickity slides\n */\n\n/* jshint browser: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( this, function factory( Flickity, utils ) {\n\n// ---- Slide ---- //\n\nvar Slide = Flickity.Slide;\n\nvar slideUpdateTarget = Slide.prototype.updateTarget;\nSlide.prototype.updateTarget = function() {\n slideUpdateTarget.apply( this, arguments );\n if ( !this.parent.options.fade ) {\n return;\n }\n // position cells at selected target\n var slideTargetX = this.target - this.x;\n var firstCellX = this.cells[0].x;\n this.cells.forEach( function( cell ) {\n var targetX = cell.x - firstCellX - slideTargetX;\n cell.renderPosition( targetX );\n });\n};\n\nSlide.prototype.setOpacity = function( alpha ) {\n this.cells.forEach( function( cell ) {\n cell.element.style.opacity = alpha;\n });\n};\n\n// ---- Flickity ---- //\n\nvar proto = Flickity.prototype;\n\nFlickity.createMethods.push('_createFade');\n\nproto._createFade = function() {\n this.fadeIndex = this.selectedIndex;\n this.prevSelectedIndex = this.selectedIndex;\n this.on( 'select', this.onSelectFade );\n this.on( 'dragEnd', this.onDragEndFade );\n this.on( 'settle', this.onSettleFade );\n this.on( 'activate', this.onActivateFade );\n this.on( 'deactivate', this.onDeactivateFade );\n};\n\nvar updateSlides = proto.updateSlides;\nproto.updateSlides = function() {\n updateSlides.apply( this, arguments );\n if ( !this.options.fade ) {\n return;\n }\n // set initial opacity\n this.slides.forEach( function( slide, i ) {\n var alpha = i == this.selectedIndex ? 1 : 0;\n slide.setOpacity( alpha );\n }, this );\n};\n\n/* ---- events ---- */\n\nproto.onSelectFade = function() {\n // in case of resize, keep fadeIndex within current count\n this.fadeIndex = Math.min( this.prevSelectedIndex, this.slides.length - 1 );\n this.prevSelectedIndex = this.selectedIndex;\n};\n\nproto.onSettleFade = function() {\n delete this.didDragEnd;\n if ( !this.options.fade ) {\n return;\n }\n // set full and 0 opacity on selected & faded slides\n this.selectedSlide.setOpacity( 1 );\n var fadedSlide = this.slides[ this.fadeIndex ];\n if ( fadedSlide && this.fadeIndex != this.selectedIndex ) {\n this.slides[ this.fadeIndex ].setOpacity( 0 );\n }\n};\n\nproto.onDragEndFade = function() {\n // set flag\n this.didDragEnd = true;\n};\n\nproto.onActivateFade = function() {\n if ( this.options.fade ) {\n this.element.classList.add('is-fade');\n }\n};\n\nproto.onDeactivateFade = function() {\n if ( !this.options.fade ) {\n return;\n }\n this.element.classList.remove('is-fade');\n // reset opacity\n this.slides.forEach( function( slide ) {\n slide.setOpacity('');\n });\n};\n\n/* ---- position & fading ---- */\n\nvar positionSlider = proto.positionSlider;\nproto.positionSlider = function() {\n if ( !this.options.fade ) {\n positionSlider.apply( this, arguments );\n return;\n }\n\n this.fadeSlides();\n this.dispatchScrollEvent();\n};\n\nvar positionSliderAtSelected = proto.positionSliderAtSelected;\nproto.positionSliderAtSelected = function() {\n if ( this.options.fade ) {\n // position fade slider at origin\n this.setTranslateX( 0 );\n }\n positionSliderAtSelected.apply( this, arguments );\n};\n\nproto.fadeSlides = function() {\n if ( this.slides.length < 2 ) {\n return;\n }\n // get slides to fade-in & fade-out\n var indexes = this.getFadeIndexes();\n var fadeSlideA = this.slides[ indexes.a ];\n var fadeSlideB = this.slides[ indexes.b ];\n var distance = this.wrapDifference( fadeSlideA.target, fadeSlideB.target );\n var progress = this.wrapDifference( fadeSlideA.target, -this.x );\n progress = progress / distance;\n\n fadeSlideA.setOpacity( 1 - progress );\n fadeSlideB.setOpacity( progress );\n\n // hide previous slide\n var fadeHideIndex = indexes.a;\n if ( this.isDragging ) {\n fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b;\n }\n var isNewHideIndex = this.fadeHideIndex != undefined &&\n this.fadeHideIndex != fadeHideIndex &&\n this.fadeHideIndex != indexes.a &&\n this.fadeHideIndex != indexes.b;\n if ( isNewHideIndex ) {\n // new fadeHideSlide set, hide previous\n this.slides[ this.fadeHideIndex ].setOpacity( 0 );\n }\n this.fadeHideIndex = fadeHideIndex;\n};\n\nproto.getFadeIndexes = function() {\n if ( !this.isDragging && !this.didDragEnd ) {\n return {\n a: this.fadeIndex,\n b: this.selectedIndex,\n };\n }\n if ( this.options.wrapAround ) {\n return this.getFadeDragWrapIndexes();\n } else {\n return this.getFadeDragLimitIndexes();\n }\n};\n\nproto.getFadeDragWrapIndexes = function() {\n var distances = this.slides.map( function( slide, i ) {\n return this.getSlideDistance( -this.x, i );\n }, this );\n var absDistances = distances.map( function( distance ) {\n return Math.abs( distance );\n });\n var minDistance = Math.min.apply( Math, absDistances );\n var closestIndex = absDistances.indexOf( minDistance );\n var distance = distances[ closestIndex ];\n var len = this.slides.length;\n\n var delta = distance >= 0 ? 1 : -1;\n return {\n a: closestIndex,\n b: utils.modulo( closestIndex + delta, len ),\n };\n};\n\nproto.getFadeDragLimitIndexes = function() {\n // calculate closest previous slide\n var dragIndex = 0;\n for ( var i=0; i < this.slides.length - 1; i++ ) {\n var slide = this.slides[i];\n if ( -this.x < slide.target ) {\n break;\n }\n dragIndex = i;\n }\n return {\n a: dragIndex,\n b: dragIndex + 1,\n };\n};\n\nproto.wrapDifference = function( a, b ) {\n var diff = b - a;\n\n if ( !this.options.wrapAround ) {\n return diff;\n }\n\n var diffPlus = diff + this.slideableWidth;\n var diffMinus = diff - this.slideableWidth;\n if ( Math.abs( diffPlus ) < Math.abs( diff ) ) {\n diff = diffPlus;\n }\n if ( Math.abs( diffMinus ) < Math.abs( diff ) ) {\n diff = diffMinus;\n }\n return diff;\n};\n\n// ---- wrapAround ---- //\n\nvar _getWrapShiftCells = proto._getWrapShiftCells;\nproto._getWrapShiftCells = function() {\n if ( !this.options.fade ) {\n _getWrapShiftCells.apply( this, arguments );\n }\n};\n\nvar shiftWrapCells = proto.shiftWrapCells;\nproto.shiftWrapCells = function() {\n if ( !this.options.fade ) {\n shiftWrapCells.apply( this, arguments );\n }\n};\n\nreturn Flickity;\n\n}));\n","/*!\n * Flickity imagesLoaded v2.0.0\n * enables imagesLoaded option for Flickity\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'imagesloaded/imagesloaded'\n ], function( Flickity, imagesLoaded ) {\n return factory( window, Flickity, imagesLoaded );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('flickity'),\n require('imagesloaded')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.imagesLoaded\n );\n }\n\n}( window, function factory( window, Flickity, imagesLoaded ) {\n'use strict';\n\nFlickity.createMethods.push('_createImagesLoaded');\n\nvar proto = Flickity.prototype;\n\nproto._createImagesLoaded = function() {\n this.on( 'activate', this.imagesLoaded );\n};\n\nproto.imagesLoaded = function() {\n if ( !this.options.imagesLoaded ) {\n return;\n }\n var _this = this;\n function onImagesLoadedProgress( instance, image ) {\n var cell = _this.getParentCell( image.img );\n _this.cellSizeChange( cell && cell.element );\n if ( !_this.options.freeScroll ) {\n _this.positionSliderAtSelected();\n }\n }\n imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[ side ] = this.parent.getPositionValue( x );\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","function deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\nvar deepFreezeEs6 = deepFreeze;\nvar _default = deepFreeze;\ndeepFreezeEs6.default = _default;\n\n/** @implements CallbackResponse */\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = node.kind;\n if (!node.sublanguage) {\n className = `${this.classPrefix}${className}`;\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {string} separator\n * @returns {string}\n */\nfunction join(regexps, separator = \"|\") {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(separator);\n}\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit({\n className: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit(\n {\n className: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push(PHRASAL_WORDS_MODE);\n mode.contains.push({\n className: 'doctag',\n begin: '(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',\n relevance: 0\n });\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n className: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n className: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst CSS_NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n className: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n className: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n className: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n CSS_NUMBER_MODE: CSS_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfhasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfhasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_CLASSNAME = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, className = DEFAULT_KEYWORD_CLASSNAME) {\n /** @type KeywordDict */\n const compiledKeywords = {};\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing className (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(className, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(className, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(className) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[className], caseInsensitive, className)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} className\n * @param {Array<string>} keywordList\n */\n function compileList(className, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [className, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @param {{plugins: HLJSPlugin[]}} opts\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language, { plugins }) {\n /**\n * Builds a regex with the case sensativility of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(join(terminators), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\") {\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n // both are not allowed\n if (mode.lexemes && keywordPattern) {\n throw new Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");\n }\n\n // `mode.lexemes` was the old standard before we added and now recommend\n // using `keywords.$pattern` to pass the keyword pattern\n keywordPattern = keywordPattern || mode.lexemes || /\\w+/;\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(mode.begin);\n if (mode.endSameAsBegin) mode.end = mode.begin;\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(mode.end);\n cmode.terminatorEnd = source(mode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit(mode, { starts: mode.starts ? inherit(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"10.7.2\";\n\n// @ts-nocheck\n\nfunction hasValueOrEmptyAttribute(value) {\n return Boolean(value || value === \"\");\n}\n\nfunction BuildVuePlugin(hljs) {\n const Component = {\n props: [\"language\", \"code\", \"autodetect\"],\n data: function() {\n return {\n detectedLanguage: \"\",\n unknownLanguage: false\n };\n },\n computed: {\n className() {\n if (this.unknownLanguage) return \"\";\n\n return \"hljs \" + this.detectedLanguage;\n },\n highlighted() {\n // no idea what language to use, return raw code\n if (!this.autoDetect && !hljs.getLanguage(this.language)) {\n console.warn(`The language \"${this.language}\" you specified could not be found.`);\n this.unknownLanguage = true;\n return escapeHTML(this.code);\n }\n\n let result = {};\n if (this.autoDetect) {\n result = hljs.highlightAuto(this.code);\n this.detectedLanguage = result.language;\n } else {\n result = hljs.highlight(this.language, this.code, this.ignoreIllegals);\n this.detectedLanguage = this.language;\n }\n return result.value;\n },\n autoDetect() {\n return !this.language || hasValueOrEmptyAttribute(this.autodetect);\n },\n ignoreIllegals() {\n return true;\n }\n },\n // this avoids needing to use a whole Vue compilation pipeline just\n // to build Highlight.js\n render(createElement) {\n return createElement(\"pre\", {}, [\n createElement(\"code\", {\n class: this.className,\n domProps: { innerHTML: this.highlighted }\n })\n ]);\n }\n // template: `<pre><code :class=\"className\" v-html=\"highlighted\"></code></pre>`\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '</' + tag(node) + '>';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\nconst escape$1 = escapeHTML;\nconst inherit$1 = inherit;\nconst NO_MATCH = Symbol(\"nomatch\");\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const fixMarkupRe = /(^(<[^>]+>|\\t|)+|\\n)/gm;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n tabReplace: null,\n useBR: false,\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrlanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode} [continuation] - current continuation mode, if any\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrlanguageName, optionsOrCode, ignoreIllegals, continuation) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrlanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n // continuation not supported at all via the new API\n // eslint-disable-next-line no-undefined\n continuation = undefined;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrlanguageName;\n code = optionsOrCode;\n }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals, continuation);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {RegExpMatchArray} match - regexp match data\n * @returns {KeywordData | false}\n */\n function keywordData(mode, match) {\n const matchText = language.case_insensitive ? match[0].toLowerCase() : match[0];\n return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const data = keywordData(top, match);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result.top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result.emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {Mode} mode - new mode to start\n */\n function startNewMode(mode) {\n if (mode.className) {\n emitter.openNode(language.classNameAliases[mode.className] || mode.className);\n }\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexs to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode && newMode.endSameAsBegin) {\n newMode.endRe = escape(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode);\n // if (mode[\"after:begin\"]) {\n // let resp = new Response(mode);\n // mode[\"after:begin\"](match, resp);\n // }\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.className) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n if (endMode.endSameAsBegin) {\n endMode.starts.endRe = endMode.endRe;\n }\n startNewMode(endMode.starts);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.className) {\n list.unshift(current.className);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceeding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error('0 width match regex');\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.className || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? Only one occasion now. An end match that was\n triggered but could not be completed. When might this happen? When an `endSameasBegin`\n rule sets the end rule to a specific match. Since the overall mode termination rule that's\n being used to scan the text isn't recompiled that means that any match that LOOKS like\n the end (but is not, because it is not an exact match to the beginning) will\n end up here. A definite end match, but when `doEndMatch` tries to \"reapply\"\n the end rule and fails to match, we wind up here, and just silently ignore the end.\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language, { plugins });\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n // avoid possible breakage with v10 clients expecting\n // this to always be an integer\n relevance: Math.floor(relevance),\n value: result,\n language: languageName,\n illegal: false,\n emitter: emitter,\n top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n illegal: true,\n illegalBy: {\n msg: err.message,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode\n },\n sofar: result,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n illegal: false,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter,\n language: languageName,\n top: top,\n errorRaised: err\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n relevance: 0,\n emitter: new options.__emitter(options),\n value: escape$1(code),\n illegal: false,\n top: PLAINTEXT_LANGUAGE\n };\n result.emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - second_best (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.second_best = secondBest;\n\n return result;\n }\n\n /**\n Post-processing of the highlighted markup:\n\n - replace TABs with something more useful\n - replace real line-breaks with '<br>' for non-pre containers\n\n @param {string} html\n @returns {string}\n */\n function fixMarkup(html) {\n if (!(options.tabReplace || options.useBR)) {\n return html;\n }\n\n return html.replace(fixMarkupRe, match => {\n if (match === '\\n') {\n return options.useBR ? '<br>' : match;\n } else if (options.tabReplace) {\n return match.replace(/\\t/g, options.tabReplace);\n }\n return match;\n });\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = currentLang ? aliases[currentLang] : resultLang;\n\n element.classList.add(\"hljs\");\n if (language) element.classList.add(language);\n }\n\n /** @type {HLJSPlugin} */\n const brPlugin = {\n \"before:highlightElement\": ({ el }) => {\n if (options.useBR) {\n el.innerHTML = el.innerHTML.replace(/\\n/g, '').replace(/<br[ /]*>/g, '\\n');\n }\n },\n \"after:highlightElement\": ({ result }) => {\n if (options.useBR) {\n result.value = result.value.replace(/\\n/g, \"<br>\");\n }\n }\n };\n\n const TAB_REPLACE_RE = /^(<[^>]+>|\\t)+/gm;\n /** @type {HLJSPlugin} */\n const tabReplacePlugin = {\n \"after:highlightElement\": ({ result }) => {\n if (options.tabReplace) {\n result.value = result.value.replace(TAB_REPLACE_RE, (m) =>\n m.replace(/\\t/g, options.tabReplace)\n );\n }\n }\n };\n\n /**\n * Applies highlighting to a DOM node containing code. Accepts a DOM node and\n * two optional parameters for fixMarkup.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n // support for v10 API\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n // support for v10 API\n fire(\"after:highlightElement\", { el: element, result, text });\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relavance: result.relevance\n };\n if (result.second_best) {\n element.second_best = {\n language: result.second_best.language,\n // TODO: remove with version 11.0\n re: result.second_best.relevance,\n relavance: result.second_best.relevance\n };\n }\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n if (userOptions.useBR) {\n deprecated(\"10.3.0\", \"'useBR' will be removed entirely in v11.0\");\n deprecated(\"10.3.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2559\");\n }\n options = inherit$1(options, userOptions);\n }\n\n /**\n * Highlights to all <pre><code> blocks on a page\n *\n * @type {Function & {called?: boolean}}\n */\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n if (initHighlighting.called) return;\n initHighlighting.called = true;\n\n deprecated(\"10.6.0\", \"initHighlighting() is deprecated. Use highlightAll() instead.\");\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n };\n\n // Higlights all when DOMContentLoaded fires\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated. Use highlightAll() instead.\");\n wantsHighlight = true;\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n intended usage: When one language truly requires another\n\n Unlike `getLanguage`, this will throw when the requested language\n is not available.\n\n @param {string} name - name of the language to fetch/require\n @returns {Language | never}\n */\n function requireLanguage(name) {\n deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n const lang = getLanguage(name);\n if (lang) { return lang; }\n\n const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n throw err;\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n Note: fixMarkup is deprecated and will be removed entirely in v11\n\n @param {string} arg\n @returns {string}\n */\n function deprecateFixMarkup(arg) {\n deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n return fixMarkup(arg);\n }\n\n /**\n *\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n fixMarkup: deprecateFixMarkup,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n requireLanguage,\n autoDetection,\n inherit: inherit$1,\n addPlugin,\n // plugins for frameworks\n vuePlugin: BuildVuePlugin(hljs).VuePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6(MODES[key]);\n }\n }\n\n // merge all the modes/regexs into our main object\n Object.assign(hljs, MODES);\n\n // built-in plugins, likely to be moved out of core in the future\n hljs.addPlugin(brPlugin); // slated to be removed in v11\n hljs.addPlugin(mergeHTMLPlugin);\n hljs.addPlugin(tabReplacePlugin);\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\nconst TYPES = [\n \"Intl\",\n \"DataView\",\n \"Number\",\n \"Math\",\n \"Date\",\n \"String\",\n \"RegExp\",\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Error\",\n \"Symbol\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"Proxy\",\n \"Reflect\",\n \"JSON\",\n \"Promise\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"ArrayBuffer\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n BUILT_IN_VARIABLES,\n TYPES,\n ERROR_TYPES\n);\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n // nested type?\n // HTML should not include another raw `<` inside a tag\n // But a type might: `<Array<Array<number>>`, etc.\n if (nextChar === \"<\") {\n response.ignoreMatch();\n return;\n }\n // <something>\n // This is now either a tag or a type.\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+',\n contains: [\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n { // object attr container\n begin: concat(/[{,\\n]\\s*/,\n // we need to look ahead to make sure that we actually have an\n // attribute coming up so we don't steal a comma from a potential\n // \"value\" container\n //\n // NOTE: this might not work how you think. We don't actually always\n // enter this mode and stay. Instead it might merely match `,\n // <comments up next>` and then immediately end after the , because it\n // fails to find any actual attrs. But this still does the job because\n // it prevents the value contain rule from grabbing this instead and\n // prevening this rule from firing when we actually DO have keys.\n lookahead(concat(\n // we also need to allow for multiple possible comments inbetween\n // the first key:value pairing\n /(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,\n IDENT_RE$1 + '\\\\s*:'))),\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n relevance: 0\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/, relevance: 0\n },\n {\n className: '',\n begin: /\\s/,\n end: /\\s*/,\n skip: true\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: [\n 'self',\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n PARAMS\n ],\n illegal: /%/\n },\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n ]\n },\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n variants: [\n { begin: '\\\\.' + IDENT_RE$1 },\n { begin: '\\\\$' + IDENT_RE$1 }\n ],\n relevance: 0\n },\n { // ES6 class\n className: 'class',\n beginKeywords: 'class',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:\"[\\]]/,\n contains: [\n { beginKeywords: 'extends' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n begin: /\\b(?=constructor)/,\n end: /[{;]/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n 'self',\n PARAMS\n ]\n },\n {\n begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n end: /\\{/,\n keywords: \"get set\",\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n { begin: /\\(\\)/ }, // eat to avoid empty params\n PARAMS\n ]\n },\n {\n begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nmodule.exports = javascript;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n // Element names can contain letters, digits, hyphens, underscores, and periods\n const TAG_NAME_RE = concat(/[A-Z_]/, optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/);\n const XML_IDENT_RE = /[A-Za-z0-9._:-]+/;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'meta-keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, {\n className: 'meta-string'\n });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'meta-string'\n });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /</,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: XML_IDENT_RE,\n relevance: 0\n },\n {\n begin: /=\\s*/,\n relevance: 0,\n contains: [\n {\n className: 'string',\n endsParent: true,\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /[^\\s\"'=<>`]+/\n }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n /<!--/,\n /-->/,\n {\n relevance: 10\n }\n ),\n {\n begin: /<!\\[CDATA\\[/,\n end: /\\]\\]>/,\n relevance: 10\n },\n XML_ENTITIES,\n {\n className: 'meta',\n begin: /<\\?xml/,\n end: /\\?>/,\n relevance: 10\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '<style' as a single word, followed by a whitespace or an\n ending braket. The '$' is needed for the lexeme to be recognized\n by hljs.subMode() that tests lexemes outside the stream.\n */\n begin: /<style(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'style'\n },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the <style tag about the lookahead pattern\n begin: /<script(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'script'\n },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/script>/,\n returnEnd: true,\n subLanguage: [\n 'javascript',\n 'handlebars',\n 'xml'\n ]\n }\n },\n // we need this for now for jSX\n {\n className: 'tag',\n begin: /<>|<\\/>/\n },\n // open tag\n {\n className: 'tag',\n begin: concat(\n /</,\n lookahead(concat(\n TAG_NAME_RE,\n // <tag/>\n // <tag>\n // <tag ...\n either(/\\/>/, />/, /\\s/)\n ))\n ),\n end: /\\/?>/,\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0,\n starts: TAG_INTERNALS\n }\n ]\n },\n // close tag\n {\n className: 'tag',\n begin: concat(\n /<\\//,\n lookahead(concat(\n TAG_NAME_RE, />/\n ))\n ),\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0\n },\n {\n begin: />/,\n relevance: 0,\n endsParent: true\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = xml;\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*!\n * Isotope v3.0.6\n *\n * Licensed GPLv3 for open source use\n * or Isotope Commercial License for commercial use\n *\n * https://isotope.metafizzy.co\n * Copyright 2010-2018 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size',\n 'desandro-matches-selector/matches-selector',\n 'fizzy-ui-utils/utils',\n './item',\n './layout-mode',\n // include default layout modes\n './layout-modes/masonry',\n './layout-modes/fit-rows',\n './layout-modes/vertical'\n ],\n function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) {\n return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('outlayer'),\n require('get-size'),\n require('desandro-matches-selector'),\n require('fizzy-ui-utils'),\n require('./item'),\n require('./layout-mode'),\n // include default layout modes\n require('./layout-modes/masonry'),\n require('./layout-modes/fit-rows'),\n require('./layout-modes/vertical')\n );\n } else {\n // browser global\n window.Isotope = factory(\n window,\n window.Outlayer,\n window.getSize,\n window.matchesSelector,\n window.fizzyUIUtils,\n window.Isotope.Item,\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( window, Outlayer, getSize, matchesSelector, utils,\n Item, LayoutMode ) {\n\n'use strict';\n\n// -------------------------- vars -------------------------- //\n\nvar jQuery = window.jQuery;\n\n// -------------------------- helpers -------------------------- //\n\nvar trim = String.prototype.trim ?\n function( str ) {\n return str.trim();\n } :\n function( str ) {\n return str.replace( /^\\s+|\\s+$/g, '' );\n };\n\n// -------------------------- isotopeDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Isotope = Outlayer.create( 'isotope', {\n layoutMode: 'masonry',\n isJQueryFiltering: true,\n sortAscending: true\n });\n\n Isotope.Item = Item;\n Isotope.LayoutMode = LayoutMode;\n\n var proto = Isotope.prototype;\n\n proto._create = function() {\n this.itemGUID = 0;\n // functions that sort items\n this._sorters = {};\n this._getSorters();\n // call super\n Outlayer.prototype._create.call( this );\n\n // create layout modes\n this.modes = {};\n // start filteredItems with all items\n this.filteredItems = this.items;\n // keep of track of sortBys\n this.sortHistory = [ 'original-order' ];\n // create from registered layout modes\n for ( var name in LayoutMode.modes ) {\n this._initLayoutMode( name );\n }\n };\n\n proto.reloadItems = function() {\n // reset item ID counter\n this.itemGUID = 0;\n // call super\n Outlayer.prototype.reloadItems.call( this );\n };\n\n proto._itemize = function() {\n var items = Outlayer.prototype._itemize.apply( this, arguments );\n // assign ID for original-order\n for ( var i=0; i < items.length; i++ ) {\n var item = items[i];\n item.id = this.itemGUID++;\n }\n this._updateItemsSortData( items );\n return items;\n };\n\n\n // -------------------------- layout -------------------------- //\n\n proto._initLayoutMode = function( name ) {\n var Mode = LayoutMode.modes[ name ];\n // set mode options\n // HACK extend initial options, back-fill in default options\n var initialOpts = this.options[ name ] || {};\n this.options[ name ] = Mode.options ?\n utils.extend( Mode.options, initialOpts ) : initialOpts;\n // init layout mode instance\n this.modes[ name ] = new Mode( this );\n };\n\n\n proto.layout = function() {\n // if first time doing layout, do all magic\n if ( !this._isLayoutInited && this._getOption('initLayout') ) {\n this.arrange();\n return;\n }\n this._layout();\n };\n\n // private method to be used in layout() & magic()\n proto._layout = function() {\n // don't animate first layout\n var isInstant = this._getIsInstant();\n // layout flow\n this._resetLayout();\n this._manageStamps();\n this.layoutItems( this.filteredItems, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n };\n\n // filter + sort + layout\n proto.arrange = function( opts ) {\n // set any options pass\n this.option( opts );\n this._getIsInstant();\n // filter, sort, and layout\n\n // filter\n var filtered = this._filter( this.items );\n this.filteredItems = filtered.matches;\n\n this._bindArrangeComplete();\n\n if ( this._isInstant ) {\n this._noTransition( this._hideReveal, [ filtered ] );\n } else {\n this._hideReveal( filtered );\n }\n\n this._sort();\n this._layout();\n };\n // alias to _init for main plugin method\n proto._init = proto.arrange;\n\n proto._hideReveal = function( filtered ) {\n this.reveal( filtered.needReveal );\n this.hide( filtered.needHide );\n };\n\n // HACK\n // Don't animate/transition first layout\n // Or don't animate/transition other layouts\n proto._getIsInstant = function() {\n var isLayoutInstant = this._getOption('layoutInstant');\n var isInstant = isLayoutInstant !== undefined ? isLayoutInstant :\n !this._isLayoutInited;\n this._isInstant = isInstant;\n return isInstant;\n };\n\n // listen for layoutComplete, hideComplete and revealComplete\n // to trigger arrangeComplete\n proto._bindArrangeComplete = function() {\n // listen for 3 events to trigger arrangeComplete\n var isLayoutComplete, isHideComplete, isRevealComplete;\n var _this = this;\n function arrangeParallelCallback() {\n if ( isLayoutComplete && isHideComplete && isRevealComplete ) {\n _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] );\n }\n }\n this.once( 'layoutComplete', function() {\n isLayoutComplete = true;\n arrangeParallelCallback();\n });\n this.once( 'hideComplete', function() {\n isHideComplete = true;\n arrangeParallelCallback();\n });\n this.once( 'revealComplete', function() {\n isRevealComplete = true;\n arrangeParallelCallback();\n });\n };\n\n // -------------------------- filter -------------------------- //\n\n proto._filter = function( items ) {\n var filter = this.options.filter;\n filter = filter || '*';\n var matches = [];\n var hiddenMatched = [];\n var visibleUnmatched = [];\n\n var test = this._getFilterTest( filter );\n\n // test each item\n for ( var i=0; i < items.length; i++ ) {\n var item = items[i];\n if ( item.isIgnored ) {\n continue;\n }\n // add item to either matched or unmatched group\n var isMatched = test( item );\n // item.isFilterMatched = isMatched;\n // add to matches if its a match\n if ( isMatched ) {\n matches.push( item );\n }\n // add to additional group if item needs to be hidden or revealed\n if ( isMatched && item.isHidden ) {\n hiddenMatched.push( item );\n } else if ( !isMatched && !item.isHidden ) {\n visibleUnmatched.push( item );\n }\n }\n\n // return collections of items to be manipulated\n return {\n matches: matches,\n needReveal: hiddenMatched,\n needHide: visibleUnmatched\n };\n };\n\n // get a jQuery, function, or a matchesSelector test given the filter\n proto._getFilterTest = function( filter ) {\n if ( jQuery && this.options.isJQueryFiltering ) {\n // use jQuery\n return function( item ) {\n return jQuery( item.element ).is( filter );\n };\n }\n if ( typeof filter == 'function' ) {\n // use filter as function\n return function( item ) {\n return filter( item.element );\n };\n }\n // default, use filter as selector string\n return function( item ) {\n return matchesSelector( item.element, filter );\n };\n };\n\n // -------------------------- sorting -------------------------- //\n\n /**\n * @params {Array} elems\n * @public\n */\n proto.updateSortData = function( elems ) {\n // get items\n var items;\n if ( elems ) {\n elems = utils.makeArray( elems );\n items = this.getItems( elems );\n } else {\n // update all items if no elems provided\n items = this.items;\n }\n\n this._getSorters();\n this._updateItemsSortData( items );\n };\n\n proto._getSorters = function() {\n var getSortData = this.options.getSortData;\n for ( var key in getSortData ) {\n var sorter = getSortData[ key ];\n this._sorters[ key ] = mungeSorter( sorter );\n }\n };\n\n /**\n * @params {Array} items - of Isotope.Items\n * @private\n */\n proto._updateItemsSortData = function( items ) {\n // do not update if no items\n var len = items && items.length;\n\n for ( var i=0; len && i < len; i++ ) {\n var item = items[i];\n item.updateSortData();\n }\n };\n\n // ----- munge sorter ----- //\n\n // encapsulate this, as we just need mungeSorter\n // other functions in here are just for munging\n var mungeSorter = ( function() {\n // add a magic layer to sorters for convienent shorthands\n // `.foo-bar` will use the text of .foo-bar querySelector\n // `[foo-bar]` will use attribute\n // you can also add parser\n // `.foo-bar parseInt` will parse that as a number\n function mungeSorter( sorter ) {\n // if not a string, return function or whatever it is\n if ( typeof sorter != 'string' ) {\n return sorter;\n }\n // parse the sorter string\n var args = trim( sorter ).split(' ');\n var query = args[0];\n // check if query looks like [an-attribute]\n var attrMatch = query.match( /^\\[(.+)\\]$/ );\n var attr = attrMatch && attrMatch[1];\n var getValue = getValueGetter( attr, query );\n // use second argument as a parser\n var parser = Isotope.sortDataParsers[ args[1] ];\n // parse the value, if there was a parser\n sorter = parser ? function( elem ) {\n return elem && parser( getValue( elem ) );\n } :\n // otherwise just return value\n function( elem ) {\n return elem && getValue( elem );\n };\n\n return sorter;\n }\n\n // get an attribute getter, or get text of the querySelector\n function getValueGetter( attr, query ) {\n // if query looks like [foo-bar], get attribute\n if ( attr ) {\n return function getAttribute( elem ) {\n return elem.getAttribute( attr );\n };\n }\n\n // otherwise, assume its a querySelector, and get its text\n return function getChildText( elem ) {\n var child = elem.querySelector( query );\n return child && child.textContent;\n };\n }\n\n return mungeSorter;\n })();\n\n // parsers used in getSortData shortcut strings\n Isotope.sortDataParsers = {\n 'parseInt': function( val ) {\n return parseInt( val, 10 );\n },\n 'parseFloat': function( val ) {\n return parseFloat( val );\n }\n };\n\n // ----- sort method ----- //\n\n // sort filteredItem order\n proto._sort = function() {\n if ( !this.options.sortBy ) {\n return;\n }\n // keep track of sortBy History\n var sortBys = utils.makeArray( this.options.sortBy );\n if ( !this._getIsSameSortBy( sortBys ) ) {\n // concat all sortBy and sortHistory, add to front, oldest goes in last\n this.sortHistory = sortBys.concat( this.sortHistory );\n }\n // sort magic\n var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending );\n this.filteredItems.sort( itemSorter );\n };\n\n // check if sortBys is same as start of sortHistory\n proto._getIsSameSortBy = function( sortBys ) {\n for ( var i=0; i < sortBys.length; i++ ) {\n if ( sortBys[i] != this.sortHistory[i] ) {\n return false;\n }\n }\n return true;\n };\n\n // returns a function used for sorting\n function getItemSorter( sortBys, sortAsc ) {\n return function sorter( itemA, itemB ) {\n // cycle through all sortKeys\n for ( var i = 0; i < sortBys.length; i++ ) {\n var sortBy = sortBys[i];\n var a = itemA.sortData[ sortBy ];\n var b = itemB.sortData[ sortBy ];\n if ( a > b || a < b ) {\n // if sortAsc is an object, use the value given the sortBy key\n var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc;\n var direction = isAscending ? 1 : -1;\n return ( a > b ? 1 : -1 ) * direction;\n }\n }\n return 0;\n };\n }\n\n // -------------------------- methods -------------------------- //\n\n // get layout mode\n proto._mode = function() {\n var layoutMode = this.options.layoutMode;\n var mode = this.modes[ layoutMode ];\n if ( !mode ) {\n // TODO console.error\n throw new Error( 'No layout mode: ' + layoutMode );\n }\n // HACK sync mode's options\n // any options set after init for layout mode need to be synced\n mode.options = this.options[ layoutMode ];\n return mode;\n };\n\n proto._resetLayout = function() {\n // trigger original reset layout\n Outlayer.prototype._resetLayout.call( this );\n this._mode()._resetLayout();\n };\n\n proto._getItemLayoutPosition = function( item ) {\n return this._mode()._getItemLayoutPosition( item );\n };\n\n proto._manageStamp = function( stamp ) {\n this._mode()._manageStamp( stamp );\n };\n\n proto._getContainerSize = function() {\n return this._mode()._getContainerSize();\n };\n\n proto.needsResizeLayout = function() {\n return this._mode().needsResizeLayout();\n };\n\n // -------------------------- adding & removing -------------------------- //\n\n // HEADS UP overwrites default Outlayer appended\n proto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded( items );\n // add to filteredItems\n this.filteredItems = this.filteredItems.concat( filteredItems );\n };\n\n // HEADS UP overwrites default Outlayer prepended\n proto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // filter, layout, reveal new items\n var filteredItems = this._filterRevealAdded( items );\n // layout previous items\n this.layoutItems( this.filteredItems );\n // add to items and filteredItems\n this.filteredItems = filteredItems.concat( this.filteredItems );\n this.items = items.concat( this.items );\n };\n\n proto._filterRevealAdded = function( items ) {\n var filtered = this._filter( items );\n this.hide( filtered.needHide );\n // reveal all new items\n this.reveal( filtered.matches );\n // layout new items, no transition\n this.layoutItems( filtered.matches, true );\n return filtered.matches;\n };\n\n /**\n * Filter, sort, and layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\n proto.insert = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // append item elements\n var i, item;\n var len = items.length;\n for ( i=0; i < len; i++ ) {\n item = items[i];\n this.element.appendChild( item.element );\n }\n // filter new stuff\n var filteredInsertItems = this._filter( items ).matches;\n // set flag\n for ( i=0; i < len; i++ ) {\n items[i].isLayoutInstant = true;\n }\n this.arrange();\n // reset flag\n for ( i=0; i < len; i++ ) {\n delete items[i].isLayoutInstant;\n }\n this.reveal( filteredInsertItems );\n };\n\n var _remove = proto.remove;\n proto.remove = function( elems ) {\n elems = utils.makeArray( elems );\n var removeItems = this.getItems( elems );\n // do regular thing\n _remove.call( this, elems );\n // bail if no items to remove\n var len = removeItems && removeItems.length;\n // remove elems from filteredItems\n for ( var i=0; len && i < len; i++ ) {\n var item = removeItems[i];\n // remove item from collection\n utils.removeFrom( this.filteredItems, item );\n }\n };\n\n proto.shuffle = function() {\n // update random sortData\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n item.sortData.random = Math.random();\n }\n this.options.sortBy = 'random';\n this._sort();\n this._layout();\n };\n\n /**\n * trigger fn without transition\n * kind of hacky to have this in the first place\n * @param {Function} fn\n * @param {Array} args\n * @returns ret\n * @private\n */\n proto._noTransition = function( fn, args ) {\n // save transitionDuration before disabling\n var transitionDuration = this.options.transitionDuration;\n // disable transition\n this.options.transitionDuration = 0;\n // do it\n var returnValue = fn.apply( this, args );\n // re-enable transition for reveal\n this.options.transitionDuration = transitionDuration;\n return returnValue;\n };\n\n // ----- helper methods ----- //\n\n /**\n * getter method for getting filtered item elements\n * @returns {Array} elems - collection of item elements\n */\n proto.getFilteredItemElements = function() {\n return this.filteredItems.map( function( item ) {\n return item.element;\n });\n };\n\n // ----- ----- //\n\n return Isotope;\n\n}));\n","/**\n * Isotope Item\n**/\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer')\n );\n } else {\n // browser global\n window.Isotope = window.Isotope || {};\n window.Isotope.Item = factory(\n window.Outlayer\n );\n }\n\n}( window, function factory( Outlayer ) {\n'use strict';\n\n// -------------------------- Item -------------------------- //\n\n// sub-class Outlayer Item\nfunction Item() {\n Outlayer.Item.apply( this, arguments );\n}\n\nvar proto = Item.prototype = Object.create( Outlayer.Item.prototype );\n\nvar _create = proto._create;\nproto._create = function() {\n // assign id, used for original-order sorting\n this.id = this.layout.itemGUID++;\n _create.call( this );\n this.sortData = {};\n};\n\nproto.updateSortData = function() {\n if ( this.isIgnored ) {\n return;\n }\n // default sorters\n this.sortData.id = this.id;\n // for backward compatibility\n this.sortData['original-order'] = this.id;\n this.sortData.random = Math.random();\n // go thru getSortData obj and apply the sorters\n var getSortData = this.layout.options.getSortData;\n var sorters = this.layout._sorters;\n for ( var key in getSortData ) {\n var sorter = sorters[ key ];\n this.sortData[ key ] = sorter( this.element, this );\n }\n};\n\nvar _destroy = proto.destroy;\nproto.destroy = function() {\n // call super\n _destroy.apply( this, arguments );\n // reset display, #741\n this.css({\n display: ''\n });\n};\n\nreturn Item;\n\n}));\n","/**\n * Isotope LayoutMode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n 'outlayer/outlayer'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('get-size'),\n require('outlayer')\n );\n } else {\n // browser global\n window.Isotope = window.Isotope || {};\n window.Isotope.LayoutMode = factory(\n window.getSize,\n window.Outlayer\n );\n }\n\n}( window, function factory( getSize, Outlayer ) {\n 'use strict';\n\n // layout mode class\n function LayoutMode( isotope ) {\n this.isotope = isotope;\n // link properties\n if ( isotope ) {\n this.options = isotope.options[ this.namespace ];\n this.element = isotope.element;\n this.items = isotope.filteredItems;\n this.size = isotope.size;\n }\n }\n\n var proto = LayoutMode.prototype;\n\n /**\n * some methods should just defer to default Outlayer method\n * and reference the Isotope instance as `this`\n **/\n var facadeMethods = [\n '_resetLayout',\n '_getItemLayoutPosition',\n '_manageStamp',\n '_getContainerSize',\n '_getElementOffset',\n 'needsResizeLayout',\n '_getOption'\n ];\n\n facadeMethods.forEach( function( methodName ) {\n proto[ methodName ] = function() {\n return Outlayer.prototype[ methodName ].apply( this.isotope, arguments );\n };\n });\n\n // ----- ----- //\n\n // for horizontal layout modes, check vertical size\n proto.needsVerticalResizeLayout = function() {\n // don't trigger if size did not change\n var size = getSize( this.isotope.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.isotope.size && size;\n return hasSizes && size.innerHeight != this.isotope.size.innerHeight;\n };\n\n // ----- measurements ----- //\n\n proto._getMeasurement = function() {\n this.isotope._getMeasurement.apply( this, arguments );\n };\n\n proto.getColumnWidth = function() {\n this.getSegmentSize( 'column', 'Width' );\n };\n\n proto.getRowHeight = function() {\n this.getSegmentSize( 'row', 'Height' );\n };\n\n /**\n * get columnWidth or rowHeight\n * segment: 'column' or 'row'\n * size 'Width' or 'Height'\n **/\n proto.getSegmentSize = function( segment, size ) {\n var segmentName = segment + size;\n var outerSize = 'outer' + size;\n // columnWidth / outerWidth // rowHeight / outerHeight\n this._getMeasurement( segmentName, outerSize );\n // got rowHeight or columnWidth, we can chill\n if ( this[ segmentName ] ) {\n return;\n }\n // fall back to item of first element\n var firstItemSize = this.getFirstItemSize();\n this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] ||\n // or size of container\n this.isotope.size[ 'inner' + size ];\n };\n\n proto.getFirstItemSize = function() {\n var firstItem = this.isotope.filteredItems[0];\n return firstItem && firstItem.element && getSize( firstItem.element );\n };\n\n // ----- methods that should reference isotope ----- //\n\n proto.layout = function() {\n this.isotope.layout.apply( this.isotope, arguments );\n };\n\n proto.getSize = function() {\n this.isotope.getSize();\n this.size = this.isotope.size;\n };\n\n // -------------------------- create -------------------------- //\n\n LayoutMode.modes = {};\n\n LayoutMode.create = function( namespace, options ) {\n\n function Mode() {\n LayoutMode.apply( this, arguments );\n }\n\n Mode.prototype = Object.create( proto );\n Mode.prototype.constructor = Mode;\n\n // default options\n if ( options ) {\n Mode.options = options;\n }\n\n Mode.prototype.namespace = namespace;\n // register in Isotope\n LayoutMode.modes[ namespace ] = Mode;\n\n return Mode;\n };\n\n return LayoutMode;\n\n}));\n","/**\n * fitRows layout mode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n '../layout-mode'\n ],\n factory );\n } else if ( typeof exports == 'object' ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( LayoutMode ) {\n'use strict';\n\nvar FitRows = LayoutMode.create('fitRows');\n\nvar proto = FitRows.prototype;\n\nproto._resetLayout = function() {\n this.x = 0;\n this.y = 0;\n this.maxY = 0;\n this._getMeasurement( 'gutter', 'outerWidth' );\n};\n\nproto._getItemLayoutPosition = function( item ) {\n item.getSize();\n\n var itemWidth = item.size.outerWidth + this.gutter;\n // if this element cannot fit in the current row\n var containerWidth = this.isotope.size.innerWidth + this.gutter;\n if ( this.x !== 0 && itemWidth + this.x > containerWidth ) {\n this.x = 0;\n this.y = this.maxY;\n }\n\n var position = {\n x: this.x,\n y: this.y\n };\n\n this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight );\n this.x += itemWidth;\n\n return position;\n};\n\nproto._getContainerSize = function() {\n return { height: this.maxY };\n};\n\nreturn FitRows;\n\n}));\n","/*!\n * Masonry layout mode\n * sub-classes Masonry\n * https://masonry.desandro.com\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n '../layout-mode',\n 'masonry-layout/masonry'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode'),\n require('masonry-layout')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode,\n window.Masonry\n );\n }\n\n}( window, function factory( LayoutMode, Masonry ) {\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var MasonryMode = LayoutMode.create('masonry');\n\n var proto = MasonryMode.prototype;\n\n var keepModeMethods = {\n _getElementOffset: true,\n layout: true,\n _getMeasurement: true\n };\n\n // inherit Masonry prototype\n for ( var method in Masonry.prototype ) {\n // do not inherit mode methods\n if ( !keepModeMethods[ method ] ) {\n proto[ method ] = Masonry.prototype[ method ];\n }\n }\n\n var measureColumns = proto.measureColumns;\n proto.measureColumns = function() {\n // set items, used if measuring first item\n this.items = this.isotope.filteredItems;\n measureColumns.call( this );\n };\n\n // point to mode options for fitWidth\n var _getOption = proto._getOption;\n proto._getOption = function( option ) {\n if ( option == 'fitWidth' ) {\n return this.options.isFitWidth !== undefined ?\n this.options.isFitWidth : this.options.fitWidth;\n }\n return _getOption.apply( this.isotope, arguments );\n };\n\n return MasonryMode;\n\n}));\n","/**\n * vertical layout mode\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n '../layout-mode'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('../layout-mode')\n );\n } else {\n // browser global\n factory(\n window.Isotope.LayoutMode\n );\n }\n\n}( window, function factory( LayoutMode ) {\n'use strict';\n\nvar Vertical = LayoutMode.create( 'vertical', {\n horizontalAlignment: 0\n});\n\nvar proto = Vertical.prototype;\n\nproto._resetLayout = function() {\n this.y = 0;\n};\n\nproto._getItemLayoutPosition = function( item ) {\n item.getSize();\n var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) *\n this.options.horizontalAlignment;\n var y = this.y;\n this.y += item.size.outerHeight;\n return { x: x, y: y };\n};\n\nproto._getContainerSize = function() {\n return { height: this.y };\n};\n\nreturn Vertical;\n\n}));\n","const jarallax = require( './src/jarallax.esm' ).default;\nconst jarallaxVideo = require( './src/jarallax-video.esm' ).default;\nconst jarallaxElement = require( './src/jarallax-element.esm' ).default;\n\nmodule.exports = {\n jarallax,\n jarallaxElement() {\n return jarallaxElement( jarallax );\n },\n jarallaxVideo() {\n return jarallaxVideo( jarallax );\n },\n};\n","/* eslint no-case-declarations: \"off\" */\nimport global from 'global';\n\nexport default function jarallaxElement( jarallax = global.jarallax ) {\n if ( 'undefined' === typeof jarallax ) {\n return;\n }\n\n const Jarallax = jarallax.constructor;\n\n // redefine default methods\n [\n 'initImg',\n 'canInitParallax',\n 'init',\n 'destroy',\n 'clipContainer',\n 'coverImage',\n 'isVisible',\n 'onScroll',\n 'onResize',\n ].forEach( ( key ) => {\n const def = Jarallax.prototype[ key ];\n Jarallax.prototype[ key ] = function( ...args ) {\n const self = this;\n\n if ( 'initImg' === key && null !== self.$item.getAttribute( 'data-jarallax-element' ) ) {\n self.options.type = 'element';\n self.pureOptions.speed = self.$item.getAttribute( 'data-jarallax-element' ) || self.pureOptions.speed;\n }\n if ( 'element' !== self.options.type ) {\n return def.apply( self, args );\n }\n\n self.pureOptions.threshold = self.$item.getAttribute( 'data-threshold' ) || '';\n\n switch ( key ) {\n case 'init':\n const speedArr = self.pureOptions.speed.split( ' ' );\n self.options.speed = self.pureOptions.speed || 0;\n self.options.speedY = speedArr[ 0 ] ? parseFloat( speedArr[ 0 ] ) : 0;\n self.options.speedX = speedArr[ 1 ] ? parseFloat( speedArr[ 1 ] ) : 0;\n\n const thresholdArr = self.pureOptions.threshold.split( ' ' );\n self.options.thresholdY = thresholdArr[ 0 ] ? parseFloat( thresholdArr[ 0 ] ) : null;\n self.options.thresholdX = thresholdArr[ 1 ] ? parseFloat( thresholdArr[ 1 ] ) : null;\n\n def.apply( self, args );\n\n // restore background image if available.\n const originalStylesTag = self.$item.getAttribute( 'data-jarallax-original-styles' );\n if ( originalStylesTag ) {\n self.$item.setAttribute( 'style', originalStylesTag );\n }\n\n return true;\n case 'onResize':\n const defTransform = self.css( self.$item, 'transform' );\n self.css( self.$item, { transform: '' } );\n const rect = self.$item.getBoundingClientRect();\n self.itemData = {\n width: rect.width,\n height: rect.height,\n y: rect.top + self.getWindowData().y,\n x: rect.left,\n };\n self.css( self.$item, { transform: defTransform } );\n break;\n case 'onScroll':\n const wnd = self.getWindowData();\n const centerPercent = ( wnd.y + wnd.height / 2 - self.itemData.y - self.itemData.height / 2 ) / ( wnd.height / 2 );\n const moveY = centerPercent * self.options.speedY;\n const moveX = centerPercent * self.options.speedX;\n let my = moveY;\n let mx = moveX;\n if ( null !== self.options.thresholdY && moveY > self.options.thresholdY ) my = 0;\n if ( null !== self.options.thresholdX && moveX > self.options.thresholdX ) mx = 0;\n self.css( self.$item, { transform: `translate3d(${ mx }px,${ my }px,0)` } );\n break;\n case 'initImg':\n case 'isVisible':\n case 'clipContainer':\n case 'coverImage':\n return true;\n // no default\n }\n return def.apply( self, args );\n };\n } );\n}\n","import global from 'global';\n\n// Deferred\n// thanks http://stackoverflow.com/questions/18096715/implement-deferred-object-without-using-jquery\nfunction Deferred() {\n this.doneCallbacks = [];\n this.failCallbacks = [];\n}\n\nDeferred.prototype = {\n execute( list, args ) {\n let i = list.length;\n args = Array.prototype.slice.call( args );\n\n while ( i ) {\n i -= 1;\n list[ i ].apply( null, args );\n }\n },\n resolve( ...args ) {\n this.execute( this.doneCallbacks, args );\n },\n reject( ...args ) {\n this.execute( this.failCallbacks, args );\n },\n done( callback ) {\n this.doneCallbacks.push( callback );\n },\n fail( callback ) {\n this.failCallbacks.push( callback );\n },\n};\n\nlet ID = 0;\nlet YoutubeAPIadded = 0;\nlet VimeoAPIadded = 0;\nlet loadingYoutubePlayer = 0;\nlet loadingVimeoPlayer = 0;\nconst loadingYoutubeDefer = new Deferred();\nconst loadingVimeoDefer = new Deferred();\n\nexport default class VideoWorker {\n constructor( url, options ) {\n const self = this;\n\n self.url = url;\n\n self.options_default = {\n autoplay: false,\n loop: false,\n mute: false,\n volume: 100,\n showControls: true,\n accessibilityHidden: false,\n\n // start / end video time in seconds\n startTime: 0,\n endTime: 0,\n };\n\n self.options = self.extend( {}, self.options_default, options );\n\n // Fix wrong option name.\n // Thanks to https://github.com/nk-o/video-worker/issues/13.\n if ( 'undefined' !== typeof self.options.showContols ) {\n self.options.showControls = self.options.showContols;\n delete self.options.showContols;\n }\n\n // check URL\n self.videoID = self.parseURL( url );\n\n // init\n if ( self.videoID ) {\n self.ID = ID;\n ID += 1;\n self.loadAPI();\n self.init();\n }\n }\n\n // Extend like jQuery.extend\n // eslint-disable-next-line class-methods-use-this\n extend( ...args ) {\n const out = args[ 0 ] || {};\n\n Object.keys( args ).forEach( ( i ) => {\n if ( ! args[ i ] ) {\n return;\n }\n Object.keys( args[ i ] ).forEach( ( key ) => {\n out[ key ] = args[ i ][ key ];\n } );\n } );\n\n return out;\n }\n\n parseURL( url ) {\n // parse youtube ID\n function getYoutubeID( ytUrl ) {\n // eslint-disable-next-line no-useless-escape\n const regExp = /.*(?:youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=)([^#\\&\\?]*).*/;\n const match = ytUrl.match( regExp );\n return match && 11 === match[ 1 ].length ? match[ 1 ] : false;\n }\n\n // parse vimeo ID\n function getVimeoID( vmUrl ) {\n // eslint-disable-next-line no-useless-escape\n const regExp = /https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/;\n const match = vmUrl.match( regExp );\n return match && match[ 3 ] ? match[ 3 ] : false;\n }\n\n // parse local string\n function getLocalVideos( locUrl ) {\n // eslint-disable-next-line no-useless-escape\n const videoFormats = locUrl.split( /,(?=mp4\\:|webm\\:|ogv\\:|ogg\\:)/ );\n const result = {};\n let ready = 0;\n videoFormats.forEach( ( val ) => {\n // eslint-disable-next-line no-useless-escape\n const match = val.match( /^(mp4|webm|ogv|ogg)\\:(.*)/ );\n if ( match && match[ 1 ] && match[ 2 ] ) {\n // eslint-disable-next-line prefer-destructuring\n result[ 'ogv' === match[ 1 ] ? 'ogg' : match[ 1 ] ] = match[ 2 ];\n ready = 1;\n }\n } );\n return ready ? result : false;\n }\n\n const Youtube = getYoutubeID( url );\n const Vimeo = getVimeoID( url );\n const Local = getLocalVideos( url );\n\n if ( Youtube ) {\n this.type = 'youtube';\n return Youtube;\n }\n\n if ( Vimeo ) {\n this.type = 'vimeo';\n return Vimeo;\n }\n\n if ( Local ) {\n this.type = 'local';\n return Local;\n }\n\n return false;\n }\n\n isValid() {\n return !! this.videoID;\n }\n\n // events\n on( name, callback ) {\n this.userEventsList = this.userEventsList || [];\n\n // add new callback in events list\n ( this.userEventsList[ name ] || ( this.userEventsList[ name ] = [] ) ).push( callback );\n }\n\n off( name, callback ) {\n if ( ! this.userEventsList || ! this.userEventsList[ name ] ) {\n return;\n }\n\n if ( ! callback ) {\n delete this.userEventsList[ name ];\n } else {\n this.userEventsList[ name ].forEach( ( val, key ) => {\n if ( val === callback ) {\n this.userEventsList[ name ][ key ] = false;\n }\n } );\n }\n }\n\n fire( name, ...args ) {\n if ( this.userEventsList && 'undefined' !== typeof this.userEventsList[ name ] ) {\n this.userEventsList[ name ].forEach( ( val ) => {\n // call with all arguments\n if ( val ) {\n val.apply( this, args );\n }\n } );\n }\n }\n\n play( start ) {\n const self = this;\n if ( ! self.player ) {\n return;\n }\n\n if ( 'youtube' === self.type && self.player.playVideo ) {\n if ( 'undefined' !== typeof start ) {\n self.player.seekTo( start || 0 );\n }\n if ( global.YT.PlayerState.PLAYING !== self.player.getPlayerState() ) {\n self.player.playVideo();\n }\n }\n\n if ( 'vimeo' === self.type ) {\n if ( 'undefined' !== typeof start ) {\n self.player.setCurrentTime( start );\n }\n self.player.getPaused().then( ( paused ) => {\n if ( paused ) {\n self.player.play();\n }\n } );\n }\n\n if ( 'local' === self.type ) {\n if ( 'undefined' !== typeof start ) {\n self.player.currentTime = start;\n }\n if ( self.player.paused ) {\n self.player.play();\n }\n }\n }\n\n pause() {\n const self = this;\n if ( ! self.player ) {\n return;\n }\n\n if ( 'youtube' === self.type && self.player.pauseVideo ) {\n if ( global.YT.PlayerState.PLAYING === self.player.getPlayerState() ) {\n self.player.pauseVideo();\n }\n }\n\n if ( 'vimeo' === self.type ) {\n self.player.getPaused().then( ( paused ) => {\n if ( ! paused ) {\n self.player.pause();\n }\n } );\n }\n\n if ( 'local' === self.type ) {\n if ( ! self.player.paused ) {\n self.player.pause();\n }\n }\n }\n\n mute() {\n const self = this;\n if ( ! self.player ) {\n return;\n }\n\n if ( 'youtube' === self.type && self.player.mute ) {\n self.player.mute();\n }\n\n if ( 'vimeo' === self.type && self.player.setVolume ) {\n self.player.setVolume( 0 );\n }\n\n if ( 'local' === self.type ) {\n self.$video.muted = true;\n }\n }\n\n unmute() {\n const self = this;\n if ( ! self.player ) {\n return;\n }\n\n if ( 'youtube' === self.type && self.player.mute ) {\n self.player.unMute();\n }\n\n if ( 'vimeo' === self.type && self.player.setVolume ) {\n self.player.setVolume( self.options.volume );\n }\n\n if ( 'local' === self.type ) {\n self.$video.muted = false;\n }\n }\n\n setVolume( volume = false ) {\n const self = this;\n if ( ! self.player || ! volume ) {\n return;\n }\n\n if ( 'youtube' === self.type && self.player.setVolume ) {\n self.player.setVolume( volume );\n }\n\n if ( 'vimeo' === self.type && self.player.setVolume ) {\n self.player.setVolume( volume );\n }\n\n if ( 'local' === self.type ) {\n self.$video.volume = volume / 100;\n }\n }\n\n getVolume( callback ) {\n const self = this;\n if ( ! self.player ) {\n callback( false );\n return;\n }\n\n if ( 'youtube' === self.type && self.player.getVolume ) {\n callback( self.player.getVolume() );\n }\n\n if ( 'vimeo' === self.type && self.player.getVolume ) {\n self.player.getVolume().then( ( volume ) => {\n callback( volume );\n } );\n }\n\n if ( 'local' === self.type ) {\n callback( self.$video.volume * 100 );\n }\n }\n\n getMuted( callback ) {\n const self = this;\n if ( ! self.player ) {\n callback( null );\n return;\n }\n\n if ( 'youtube' === self.type && self.player.isMuted ) {\n callback( self.player.isMuted() );\n }\n\n if ( 'vimeo' === self.type && self.player.getVolume ) {\n self.player.getVolume().then( ( volume ) => {\n callback( !! volume );\n } );\n }\n\n if ( 'local' === self.type ) {\n callback( self.$video.muted );\n }\n }\n\n getImageURL( callback ) {\n const self = this;\n\n if ( self.videoImage ) {\n callback( self.videoImage );\n return;\n }\n\n if ( 'youtube' === self.type ) {\n const availableSizes = [\n 'maxresdefault',\n 'sddefault',\n 'hqdefault',\n '0',\n ];\n let step = 0;\n\n const tempImg = new Image();\n tempImg.onload = function() {\n // if no thumbnail, youtube add their own image with width = 120px\n if ( 120 !== ( this.naturalWidth || this.width ) || step === availableSizes.length - 1 ) {\n // ok\n self.videoImage = `https://img.youtube.com/vi/${ self.videoID }/${ availableSizes[ step ] }.jpg`;\n callback( self.videoImage );\n } else {\n // try another size\n step += 1;\n this.src = `https://img.youtube.com/vi/${ self.videoID }/${ availableSizes[ step ] }.jpg`;\n }\n };\n tempImg.src = `https://img.youtube.com/vi/${ self.videoID }/${ availableSizes[ step ] }.jpg`;\n }\n\n if ( 'vimeo' === self.type ) {\n let request = new XMLHttpRequest();\n request.open( 'GET', `https://vimeo.com/api/v2/video/${ self.videoID }.json`, true );\n request.onreadystatechange = function() {\n if ( 4 === this.readyState ) {\n if ( 200 <= this.status && 400 > this.status ) {\n // Success!\n const response = JSON.parse( this.responseText );\n self.videoImage = response[ 0 ].thumbnail_large;\n callback( self.videoImage );\n } else {\n // Error :(\n }\n }\n };\n request.send();\n request = null;\n }\n }\n\n // fallback to the old version.\n getIframe( callback ) {\n this.getVideo( callback );\n }\n\n getVideo( callback ) {\n const self = this;\n\n // return generated video block\n if ( self.$video ) {\n callback( self.$video );\n return;\n }\n\n // generate new video block\n self.onAPIready( () => {\n let hiddenDiv;\n if ( ! self.$video ) {\n hiddenDiv = document.createElement( 'div' );\n hiddenDiv.style.display = 'none';\n }\n\n // Youtube\n if ( 'youtube' === self.type ) {\n self.playerOptions = {\n // GDPR Compliance.\n host: 'https://www.youtube-nocookie.com',\n videoId: self.videoID,\n playerVars: {\n autohide: 1,\n rel: 0,\n autoplay: 0,\n // autoplay enable on mobile devices\n playsinline: 1,\n },\n };\n\n // hide controls\n if ( ! self.options.showControls ) {\n self.playerOptions.playerVars.iv_load_policy = 3;\n self.playerOptions.playerVars.modestbranding = 1;\n self.playerOptions.playerVars.controls = 0;\n self.playerOptions.playerVars.showinfo = 0;\n self.playerOptions.playerVars.disablekb = 1;\n }\n\n // events\n let ytStarted;\n let ytProgressInterval;\n self.playerOptions.events = {\n onReady( e ) {\n // mute\n if ( self.options.mute ) {\n e.target.mute();\n } else if ( self.options.volume ) {\n e.target.setVolume( self.options.volume );\n }\n\n // autoplay\n if ( self.options.autoplay ) {\n self.play( self.options.startTime );\n }\n self.fire( 'ready', e );\n\n // For seamless loops, set the endTime to 0.1 seconds less than the video's duration\n // https://github.com/nk-o/video-worker/issues/2\n if ( self.options.loop && ! self.options.endTime ) {\n const secondsOffset = 0.1;\n self.options.endTime = self.player.getDuration() - secondsOffset;\n }\n\n // volumechange\n setInterval( () => {\n self.getVolume( ( volume ) => {\n if ( self.options.volume !== volume ) {\n self.options.volume = volume;\n self.fire( 'volumechange', e );\n }\n } );\n }, 150 );\n },\n onStateChange( e ) {\n // loop\n if ( self.options.loop && e.data === global.YT.PlayerState.ENDED ) {\n self.play( self.options.startTime );\n }\n if ( ! ytStarted && e.data === global.YT.PlayerState.PLAYING ) {\n ytStarted = 1;\n self.fire( 'started', e );\n }\n if ( e.data === global.YT.PlayerState.PLAYING ) {\n self.fire( 'play', e );\n }\n if ( e.data === global.YT.PlayerState.PAUSED ) {\n self.fire( 'pause', e );\n }\n if ( e.data === global.YT.PlayerState.ENDED ) {\n self.fire( 'ended', e );\n }\n\n // progress check\n if ( e.data === global.YT.PlayerState.PLAYING ) {\n ytProgressInterval = setInterval( () => {\n self.fire( 'timeupdate', e );\n\n // check for end of video and play again or stop\n if ( self.options.endTime && self.player.getCurrentTime() >= self.options.endTime ) {\n if ( self.options.loop ) {\n self.play( self.options.startTime );\n } else {\n self.pause();\n }\n }\n }, 150 );\n } else {\n clearInterval( ytProgressInterval );\n }\n },\n onError( e ) {\n self.fire( 'error', e );\n },\n };\n\n const firstInit = ! self.$video;\n if ( firstInit ) {\n const div = document.createElement( 'div' );\n div.setAttribute( 'id', self.playerID );\n hiddenDiv.appendChild( div );\n document.body.appendChild( hiddenDiv );\n }\n self.player = self.player || new global.YT.Player( self.playerID, self.playerOptions );\n if ( firstInit ) {\n self.$video = document.getElementById( self.playerID );\n\n // add accessibility attributes\n if ( self.options.accessibilityHidden ) {\n self.$video.setAttribute( 'tabindex', '-1' );\n self.$video.setAttribute( 'aria-hidden', 'true' );\n }\n\n // get video width and height\n self.videoWidth = parseInt( self.$video.getAttribute( 'width' ), 10 ) || 1280;\n self.videoHeight = parseInt( self.$video.getAttribute( 'height' ), 10 ) || 720;\n }\n }\n\n // Vimeo\n if ( 'vimeo' === self.type ) {\n self.playerOptions = {\n // GDPR Compliance.\n dnt: 1,\n id: self.videoID,\n autopause: 0,\n transparent: 0,\n autoplay: self.options.autoplay ? 1 : 0,\n loop: self.options.loop ? 1 : 0,\n muted: self.options.mute ? 1 : 0,\n };\n\n if ( self.options.volume ) {\n self.playerOptions.volume = self.options.volume;\n }\n\n // hide controls\n if ( ! self.options.showControls ) {\n self.playerOptions.badge = 0;\n self.playerOptions.byline = 0;\n self.playerOptions.portrait = 0;\n self.playerOptions.title = 0;\n self.playerOptions.background = 1;\n }\n\n if ( ! self.$video ) {\n let playerOptionsString = '';\n Object.keys( self.playerOptions ).forEach( ( key ) => {\n if ( '' !== playerOptionsString ) {\n playerOptionsString += '&';\n }\n playerOptionsString += `${ key }=${ encodeURIComponent( self.playerOptions[ key ] ) }`;\n } );\n\n // we need to create iframe manually because when we create it using API\n // js events won't triggers after iframe moved to another place\n self.$video = document.createElement( 'iframe' );\n self.$video.setAttribute( 'id', self.playerID );\n self.$video.setAttribute( 'src', `https://player.vimeo.com/video/${ self.videoID }?${ playerOptionsString }` );\n self.$video.setAttribute( 'frameborder', '0' );\n self.$video.setAttribute( 'mozallowfullscreen', '' );\n self.$video.setAttribute( 'allowfullscreen', '' );\n self.$video.setAttribute( 'title', 'Vimeo video player' );\n\n // add accessibility attributes\n if ( self.options.accessibilityHidden ) {\n self.$video.setAttribute( 'tabindex', '-1' );\n self.$video.setAttribute( 'aria-hidden', 'true' );\n }\n\n hiddenDiv.appendChild( self.$video );\n document.body.appendChild( hiddenDiv );\n }\n self.player = self.player || new global.Vimeo.Player( self.$video, self.playerOptions );\n\n // set current time for autoplay\n if ( self.options.startTime && self.options.autoplay ) {\n self.player.setCurrentTime( self.options.startTime );\n }\n\n // get video width and height\n self.player.getVideoWidth().then( ( width ) => {\n self.videoWidth = width || 1280;\n } );\n self.player.getVideoHeight().then( ( height ) => {\n self.videoHeight = height || 720;\n } );\n\n // events\n let vmStarted;\n self.player.on( 'timeupdate', ( e ) => {\n if ( ! vmStarted ) {\n self.fire( 'started', e );\n vmStarted = 1;\n }\n\n self.fire( 'timeupdate', e );\n\n // check for end of video and play again or stop\n if ( self.options.endTime ) {\n if ( self.options.endTime && e.seconds >= self.options.endTime ) {\n if ( self.options.loop ) {\n self.play( self.options.startTime );\n } else {\n self.pause();\n }\n }\n }\n } );\n self.player.on( 'play', ( e ) => {\n self.fire( 'play', e );\n\n // check for the start time and start with it\n if ( self.options.startTime && 0 === e.seconds ) {\n self.play( self.options.startTime );\n }\n } );\n self.player.on( 'pause', ( e ) => {\n self.fire( 'pause', e );\n } );\n self.player.on( 'ended', ( e ) => {\n self.fire( 'ended', e );\n } );\n self.player.on( 'loaded', ( e ) => {\n self.fire( 'ready', e );\n } );\n self.player.on( 'volumechange', ( e ) => {\n self.fire( 'volumechange', e );\n } );\n self.player.on( 'error', ( e ) => {\n self.fire( 'error', e );\n } );\n }\n\n // Local\n function addSourceToLocal( element, src, type ) {\n const source = document.createElement( 'source' );\n source.src = src;\n source.type = type;\n element.appendChild( source );\n }\n if ( 'local' === self.type ) {\n if ( ! self.$video ) {\n self.$video = document.createElement( 'video' );\n\n // show controls\n if ( self.options.showControls ) {\n self.$video.controls = true;\n }\n\n // mute\n if ( self.options.mute ) {\n self.$video.muted = true;\n } else if ( self.$video.volume ) {\n self.$video.volume = self.options.volume / 100;\n }\n\n // loop\n if ( self.options.loop ) {\n self.$video.loop = true;\n }\n\n // autoplay enable on mobile devices\n self.$video.setAttribute( 'playsinline', '' );\n self.$video.setAttribute( 'webkit-playsinline', '' );\n\n // add accessibility attributes\n if ( self.options.accessibilityHidden ) {\n self.$video.setAttribute( 'tabindex', '-1' );\n self.$video.setAttribute( 'aria-hidden', 'true' );\n }\n\n self.$video.setAttribute( 'id', self.playerID );\n hiddenDiv.appendChild( self.$video );\n document.body.appendChild( hiddenDiv );\n\n Object.keys( self.videoID ).forEach( ( key ) => {\n addSourceToLocal( self.$video, self.videoID[ key ], `video/${ key }` );\n } );\n }\n\n self.player = self.player || self.$video;\n\n let locStarted;\n self.player.addEventListener( 'playing', ( e ) => {\n if ( ! locStarted ) {\n self.fire( 'started', e );\n }\n locStarted = 1;\n } );\n self.player.addEventListener( 'timeupdate', function( e ) {\n self.fire( 'timeupdate', e );\n\n // check for end of video and play again or stop\n if ( self.options.endTime ) {\n if ( self.options.endTime && this.currentTime >= self.options.endTime ) {\n if ( self.options.loop ) {\n self.play( self.options.startTime );\n } else {\n self.pause();\n }\n }\n }\n } );\n self.player.addEventListener( 'play', ( e ) => {\n self.fire( 'play', e );\n } );\n self.player.addEventListener( 'pause', ( e ) => {\n self.fire( 'pause', e );\n } );\n self.player.addEventListener( 'ended', ( e ) => {\n self.fire( 'ended', e );\n } );\n self.player.addEventListener( 'loadedmetadata', function() {\n // get video width and height\n self.videoWidth = this.videoWidth || 1280;\n self.videoHeight = this.videoHeight || 720;\n\n self.fire( 'ready' );\n\n // autoplay\n if ( self.options.autoplay ) {\n self.play( self.options.startTime );\n }\n } );\n self.player.addEventListener( 'volumechange', ( e ) => {\n self.getVolume( ( volume ) => {\n self.options.volume = volume;\n } );\n self.fire( 'volumechange', e );\n } );\n self.player.addEventListener( 'error', ( e ) => {\n self.fire( 'error', e );\n } );\n }\n callback( self.$video );\n } );\n }\n\n init() {\n const self = this;\n\n self.playerID = `VideoWorker-${ self.ID }`;\n }\n\n loadAPI() {\n const self = this;\n\n if ( YoutubeAPIadded && VimeoAPIadded ) {\n return;\n }\n\n let src = '';\n\n // load Youtube API\n if ( 'youtube' === self.type && ! YoutubeAPIadded ) {\n YoutubeAPIadded = 1;\n src = 'https://www.youtube.com/iframe_api';\n }\n\n // load Vimeo API\n if ( 'vimeo' === self.type && ! VimeoAPIadded ) {\n VimeoAPIadded = 1;\n\n // Useful when Vimeo API added using RequireJS https://github.com/nk-o/video-worker/pull/7\n if ( 'undefined' !== typeof global.Vimeo ) {\n return;\n }\n\n src = 'https://player.vimeo.com/api/player.js';\n }\n\n if ( ! src ) {\n return;\n }\n\n // add script in head section\n let tag = document.createElement( 'script' );\n let head = document.getElementsByTagName( 'head' )[ 0 ];\n tag.src = src;\n\n head.appendChild( tag );\n\n head = null;\n tag = null;\n }\n\n onAPIready( callback ) {\n const self = this;\n\n // Youtube\n if ( 'youtube' === self.type ) {\n // Listen for global YT player callback\n if ( ( 'undefined' === typeof global.YT || 0 === global.YT.loaded ) && ! loadingYoutubePlayer ) {\n // Prevents Ready event from being called twice\n loadingYoutubePlayer = 1;\n\n // Creates deferred so, other players know when to wait.\n window.onYouTubeIframeAPIReady = function() {\n window.onYouTubeIframeAPIReady = null;\n loadingYoutubeDefer.resolve( 'done' );\n callback();\n };\n } else if ( 'object' === typeof global.YT && 1 === global.YT.loaded ) {\n callback();\n } else {\n loadingYoutubeDefer.done( () => {\n callback();\n } );\n }\n }\n\n // Vimeo\n if ( 'vimeo' === self.type ) {\n if ( 'undefined' === typeof global.Vimeo && ! loadingVimeoPlayer ) {\n loadingVimeoPlayer = 1;\n const vimeoInterval = setInterval( () => {\n if ( 'undefined' !== typeof global.Vimeo ) {\n clearInterval( vimeoInterval );\n loadingVimeoDefer.resolve( 'done' );\n callback();\n }\n }, 20 );\n } else if ( 'undefined' !== typeof global.Vimeo ) {\n callback();\n } else {\n loadingVimeoDefer.done( () => {\n callback();\n } );\n }\n }\n\n // Local\n if ( 'local' === self.type ) {\n callback();\n }\n }\n}\n","import VideoWorker from 'video-worker';\nimport global from 'global';\n\nexport default function jarallaxVideo( jarallax = global.jarallax ) {\n if ( 'undefined' === typeof jarallax ) {\n return;\n }\n\n const Jarallax = jarallax.constructor;\n\n // append video after when block will be visible.\n const defOnScroll = Jarallax.prototype.onScroll;\n Jarallax.prototype.onScroll = function() {\n const self = this;\n\n defOnScroll.apply( self );\n\n const isReady = ! self.isVideoInserted\n && self.video\n && ( ! self.options.videoLazyLoading || self.isElementInViewport )\n && ! self.options.disableVideo();\n\n if ( isReady ) {\n self.isVideoInserted = true;\n\n self.video.getVideo( ( video ) => {\n const $parent = video.parentNode;\n self.css( video, {\n position: self.image.position,\n top: '0px',\n left: '0px',\n right: '0px',\n bottom: '0px',\n width: '100%',\n height: '100%',\n maxWidth: 'none',\n maxHeight: 'none',\n pointerEvents: 'none',\n transformStyle: 'preserve-3d',\n backfaceVisibility: 'hidden',\n willChange: 'transform,opacity',\n margin: 0,\n zIndex: -1,\n } );\n self.$video = video;\n\n // add Poster attribute to self-hosted video\n if ( 'local' === self.video.type ) {\n if ( self.image.src ) {\n self.$video.setAttribute( 'poster', self.image.src );\n } else if ( self.image.$item && 'IMG' === self.image.$item.tagName && self.image.$item.src ) {\n self.$video.setAttribute( 'poster', self.image.$item.src );\n }\n }\n\n // insert video tag\n self.image.$container.appendChild( video );\n\n // remove parent video element (created by VideoWorker)\n $parent.parentNode.removeChild( $parent );\n } );\n }\n };\n\n // cover video\n const defCoverImage = Jarallax.prototype.coverImage;\n Jarallax.prototype.coverImage = function() {\n const self = this;\n const imageData = defCoverImage.apply( self );\n const node = self.image.$item ? self.image.$item.nodeName : false;\n\n if ( imageData && self.video && node && ( 'IFRAME' === node || 'VIDEO' === node ) ) {\n let h = imageData.image.height;\n let w = ( h * self.image.width ) / self.image.height;\n let ml = ( imageData.container.width - w ) / 2;\n let mt = imageData.image.marginTop;\n\n if ( imageData.container.width > w ) {\n w = imageData.container.width;\n h = ( w * self.image.height ) / self.image.width;\n ml = 0;\n mt += ( imageData.image.height - h ) / 2;\n }\n\n // add video height over than need to hide controls\n if ( 'IFRAME' === node ) {\n h += 400;\n mt -= 200;\n }\n\n self.css( self.$video, {\n width: `${ w }px`,\n marginLeft: `${ ml }px`,\n height: `${ h }px`,\n marginTop: `${ mt }px`,\n } );\n }\n\n return imageData;\n };\n\n // init video\n const defInitImg = Jarallax.prototype.initImg;\n Jarallax.prototype.initImg = function() {\n const self = this;\n const defaultResult = defInitImg.apply( self );\n\n if ( ! self.options.videoSrc ) {\n self.options.videoSrc = self.$item.getAttribute( 'data-jarallax-video' ) || null;\n }\n\n if ( self.options.videoSrc ) {\n self.defaultInitImgResult = defaultResult;\n return true;\n }\n\n return defaultResult;\n };\n\n const defCanInitParallax = Jarallax.prototype.canInitParallax;\n Jarallax.prototype.canInitParallax = function() {\n const self = this;\n let defaultResult = defCanInitParallax.apply( self );\n\n if ( ! self.options.videoSrc ) {\n return defaultResult;\n }\n\n // Init video api\n const video = new VideoWorker( self.options.videoSrc, {\n autoplay: true,\n loop: self.options.videoLoop,\n showControls: false,\n accessibilityHidden: true,\n startTime: self.options.videoStartTime || 0,\n endTime: self.options.videoEndTime || 0,\n mute: self.options.videoVolume ? 0 : 1,\n volume: self.options.videoVolume || 0,\n } );\n\n function resetDefaultImage() {\n if ( self.image.$default_item ) {\n self.image.$item = self.image.$default_item;\n self.image.$item.style.display = 'block';\n\n // set image width and height\n self.coverImage();\n self.clipContainer();\n self.onScroll();\n }\n }\n\n if ( video.isValid() ) {\n // Force enable parallax.\n // When the parallax disabled on mobile devices, we still need to display videos.\n // https://github.com/nk-o/jarallax/issues/159\n if ( this.options.disableParallax() ) {\n defaultResult = true;\n self.image.position = 'absolute';\n self.options.type = 'scroll';\n self.options.speed = 1;\n }\n\n // if parallax will not be inited, we can add thumbnail on background.\n if ( ! defaultResult ) {\n if ( ! self.defaultInitImgResult ) {\n video.getImageURL( ( url ) => {\n // save default user styles\n const curStyle = self.$item.getAttribute( 'style' );\n if ( curStyle ) {\n self.$item.setAttribute( 'data-jarallax-original-styles', curStyle );\n }\n\n // set new background\n self.css( self.$item, {\n 'background-image': `url(\"${ url }\")`,\n 'background-position': 'center',\n 'background-size': 'cover',\n } );\n } );\n }\n\n // init video\n } else {\n video.on( 'ready', () => {\n if ( self.options.videoPlayOnlyVisible ) {\n const oldOnScroll = self.onScroll;\n self.onScroll = function() {\n oldOnScroll.apply( self );\n if ( ! self.videoError && ( self.options.videoLoop || ( ! self.options.videoLoop && ! self.videoEnded ) ) ) {\n if ( self.isVisible() ) {\n video.play();\n } else {\n video.pause();\n }\n }\n };\n } else {\n video.play();\n }\n } );\n video.on( 'started', () => {\n self.image.$default_item = self.image.$item;\n self.image.$item = self.$video;\n\n // set video width and height\n self.image.width = self.video.videoWidth || 1280;\n self.image.height = self.video.videoHeight || 720;\n self.coverImage();\n self.clipContainer();\n self.onScroll();\n\n // hide image\n if ( self.image.$default_item ) {\n self.image.$default_item.style.display = 'none';\n }\n } );\n\n video.on( 'ended', () => {\n self.videoEnded = true;\n\n if ( ! self.options.videoLoop ) {\n // show default image if Loop disabled.\n resetDefaultImage();\n }\n } );\n video.on( 'error', () => {\n self.videoError = true;\n\n // show default image if video loading error.\n resetDefaultImage();\n } );\n\n self.video = video;\n\n // set image if not exists\n if ( ! self.defaultInitImgResult ) {\n // set empty image on self-hosted video if not defined\n self.image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\n if ( 'local' !== video.type ) {\n video.getImageURL( ( url ) => {\n self.image.bgImage = `url(\"${ url }\")`;\n self.init();\n } );\n\n return false;\n }\n }\n }\n }\n\n return defaultResult;\n };\n\n // Destroy video parallax\n const defDestroy = Jarallax.prototype.destroy;\n Jarallax.prototype.destroy = function() {\n const self = this;\n\n if ( self.image.$default_item ) {\n self.image.$item = self.image.$default_item;\n delete self.image.$default_item;\n }\n\n defDestroy.apply( self );\n };\n}\n","import domReady from 'lite-ready';\nimport { window } from 'global';\n\nconst {\n navigator,\n} = window;\n\nconst isIE = -1 < navigator.userAgent.indexOf( 'MSIE ' ) || -1 < navigator.userAgent.indexOf( 'Trident/' ) || -1 < navigator.userAgent.indexOf( 'Edge/' );\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent );\n\nconst supportTransform = ( () => {\n const prefixes = 'transform WebkitTransform MozTransform'.split( ' ' );\n const div = document.createElement( 'div' );\n for ( let i = 0; i < prefixes.length; i += 1 ) {\n if ( div && div.style[ prefixes[ i ] ] !== undefined ) {\n return prefixes[ i ];\n }\n }\n return false;\n} )();\n\nlet $deviceHelper;\n\n/**\n * The most popular mobile browsers changes height after page scroll and this generates image jumping.\n * We can fix it using this workaround with vh units.\n */\nfunction getDeviceHeight() {\n if ( ! $deviceHelper && document.body ) {\n $deviceHelper = document.createElement( 'div' );\n $deviceHelper.style.cssText = 'position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;';\n document.body.appendChild( $deviceHelper );\n }\n\n return ( $deviceHelper ? $deviceHelper.clientHeight : 0 ) || window.innerHeight || document.documentElement.clientHeight;\n}\n\n// Window height data\nlet wndH;\nfunction updateWndVars() {\n if ( isMobile ) {\n wndH = getDeviceHeight();\n } else {\n wndH = window.innerHeight || document.documentElement.clientHeight;\n }\n}\nupdateWndVars();\nwindow.addEventListener( 'resize', updateWndVars );\nwindow.addEventListener( 'orientationchange', updateWndVars );\nwindow.addEventListener( 'load', updateWndVars );\ndomReady( () => {\n updateWndVars( {\n type: 'dom-loaded',\n } );\n} );\n\n// list with all jarallax instances\n// need to render all in one scroll/resize event\nconst jarallaxList = [];\n\n// get all parents of the element.\nfunction getParents( elem ) {\n const parents = [];\n\n while ( null !== elem.parentElement ) {\n elem = elem.parentElement;\n\n if ( 1 === elem.nodeType ) {\n parents.push( elem );\n }\n }\n\n return parents;\n}\n\nfunction updateParallax() {\n if ( ! jarallaxList.length ) {\n return;\n }\n\n jarallaxList.forEach( ( data, k ) => {\n const {\n instance,\n oldData,\n } = data;\n\n const clientRect = instance.$item.getBoundingClientRect();\n\n const newData = {\n width: clientRect.width,\n height: clientRect.height,\n top: clientRect.top,\n bottom: clientRect.bottom,\n wndW: window.innerWidth,\n wndH,\n };\n\n const isResized = ! oldData\n || oldData.wndW !== newData.wndW\n || oldData.wndH !== newData.wndH\n || oldData.width !== newData.width\n || oldData.height !== newData.height;\n const isScrolled = isResized\n || ! oldData\n || oldData.top !== newData.top\n || oldData.bottom !== newData.bottom;\n\n jarallaxList[ k ].oldData = newData;\n\n if ( isResized ) {\n instance.onResize();\n }\n if ( isScrolled ) {\n instance.onScroll();\n }\n } );\n\n window.requestAnimationFrame( updateParallax );\n}\n\nlet instanceID = 0;\n\n// Jarallax class\nclass Jarallax {\n constructor( item, userOptions ) {\n const self = this;\n\n self.instanceID = instanceID;\n instanceID += 1;\n\n self.$item = item;\n\n self.defaults = {\n type: 'scroll', // type of parallax: scroll, scale, opacity, scale-opacity, scroll-opacity\n speed: 0.5, // supported value from -1 to 2\n imgSrc: null,\n imgElement: '.jarallax-img',\n imgSize: 'cover',\n imgPosition: '50% 50%',\n imgRepeat: 'no-repeat', // supported only for background, not for <img> tag\n keepImg: false, // keep <img> tag in it's default place\n elementInViewport: null,\n zIndex: -100,\n disableParallax: false,\n disableVideo: false,\n\n // video\n videoSrc: null,\n videoStartTime: 0,\n videoEndTime: 0,\n videoVolume: 0,\n videoLoop: true,\n videoPlayOnlyVisible: true,\n videoLazyLoading: true,\n\n // events\n onScroll: null, // function(calculations) {}\n onInit: null, // function() {}\n onDestroy: null, // function() {}\n onCoverImage: null, // function() {}\n };\n\n // prepare data-options\n const dataOptions = self.$item.dataset || {};\n const pureDataOptions = {};\n Object.keys( dataOptions ).forEach( ( key ) => {\n const loweCaseOption = key.substr( 0, 1 ).toLowerCase() + key.substr( 1 );\n if ( loweCaseOption && 'undefined' !== typeof self.defaults[ loweCaseOption ] ) {\n pureDataOptions[ loweCaseOption ] = dataOptions[ key ];\n }\n } );\n\n self.options = self.extend( {}, self.defaults, pureDataOptions, userOptions );\n self.pureOptions = self.extend( {}, self.options );\n\n // prepare 'true' and 'false' strings to boolean\n Object.keys( self.options ).forEach( ( key ) => {\n if ( 'true' === self.options[ key ] ) {\n self.options[ key ] = true;\n } else if ( 'false' === self.options[ key ] ) {\n self.options[ key ] = false;\n }\n } );\n\n // fix speed option [-1.0, 2.0]\n self.options.speed = Math.min( 2, Math.max( -1, parseFloat( self.options.speed ) ) );\n\n // prepare disableParallax callback\n if ( 'string' === typeof self.options.disableParallax ) {\n self.options.disableParallax = new RegExp( self.options.disableParallax );\n }\n if ( self.options.disableParallax instanceof RegExp ) {\n const disableParallaxRegexp = self.options.disableParallax;\n self.options.disableParallax = () => disableParallaxRegexp.test( navigator.userAgent );\n }\n if ( 'function' !== typeof self.options.disableParallax ) {\n self.options.disableParallax = () => false;\n }\n\n // prepare disableVideo callback\n if ( 'string' === typeof self.options.disableVideo ) {\n self.options.disableVideo = new RegExp( self.options.disableVideo );\n }\n if ( self.options.disableVideo instanceof RegExp ) {\n const disableVideoRegexp = self.options.disableVideo;\n self.options.disableVideo = () => disableVideoRegexp.test( navigator.userAgent );\n }\n if ( 'function' !== typeof self.options.disableVideo ) {\n self.options.disableVideo = () => false;\n }\n\n // custom element to check if parallax in viewport\n let elementInVP = self.options.elementInViewport;\n // get first item from array\n if ( elementInVP && 'object' === typeof elementInVP && 'undefined' !== typeof elementInVP.length ) {\n [ elementInVP ] = elementInVP;\n }\n // check if dom element\n if ( ! ( elementInVP instanceof Element ) ) {\n elementInVP = null;\n }\n self.options.elementInViewport = elementInVP;\n\n self.image = {\n src: self.options.imgSrc || null,\n $container: null,\n useImgTag: false,\n\n // position fixed is needed for the most of browsers because absolute position have glitches\n // on MacOS with smooth scroll there is a huge lags with absolute position - https://github.com/nk-o/jarallax/issues/75\n // on mobile devices better scrolled with absolute position\n position: /iPad|iPhone|iPod|Android/.test( navigator.userAgent ) ? 'absolute' : 'fixed',\n };\n\n if ( self.initImg() && self.canInitParallax() ) {\n self.init();\n }\n }\n\n // add styles to element\n // eslint-disable-next-line class-methods-use-this\n css( el, styles ) {\n if ( 'string' === typeof styles ) {\n return window.getComputedStyle( el ).getPropertyValue( styles );\n }\n\n // add transform property with vendor prefix\n if ( styles.transform && supportTransform ) {\n styles[ supportTransform ] = styles.transform;\n }\n\n Object.keys( styles ).forEach( ( key ) => {\n el.style[ key ] = styles[ key ];\n } );\n return el;\n }\n\n // Extend like jQuery.extend\n // eslint-disable-next-line class-methods-use-this\n extend( out, ...args ) {\n out = out || {};\n\n Object.keys( args ).forEach( ( i ) => {\n if ( ! args[ i ] ) {\n return;\n }\n Object.keys( args[ i ] ).forEach( ( key ) => {\n out[ key ] = args[ i ][ key ];\n } );\n } );\n\n return out;\n }\n\n // get window size and scroll position. Useful for extensions\n // eslint-disable-next-line class-methods-use-this\n getWindowData() {\n return {\n width: window.innerWidth || document.documentElement.clientWidth,\n height: wndH,\n y: document.documentElement.scrollTop,\n };\n }\n\n // Jarallax functions\n initImg() {\n const self = this;\n\n // find image element\n let $imgElement = self.options.imgElement;\n if ( $imgElement && 'string' === typeof $imgElement ) {\n $imgElement = self.$item.querySelector( $imgElement );\n }\n\n // check if dom element\n if ( ! ( $imgElement instanceof Element ) ) {\n if ( self.options.imgSrc ) {\n $imgElement = new Image();\n $imgElement.src = self.options.imgSrc;\n } else {\n $imgElement = null;\n }\n }\n\n if ( $imgElement ) {\n if ( self.options.keepImg ) {\n self.image.$item = $imgElement.cloneNode( true );\n } else {\n self.image.$item = $imgElement;\n self.image.$itemParent = $imgElement.parentNode;\n }\n self.image.useImgTag = true;\n }\n\n // true if there is img tag\n if ( self.image.$item ) {\n return true;\n }\n\n // get image src\n if ( null === self.image.src ) {\n self.image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n self.image.bgImage = self.css( self.$item, 'background-image' );\n }\n return ! ( ! self.image.bgImage || 'none' === self.image.bgImage );\n }\n\n canInitParallax() {\n return supportTransform && ! this.options.disableParallax();\n }\n\n init() {\n const self = this;\n const containerStyles = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n };\n let imageStyles = {\n pointerEvents: 'none',\n transformStyle: 'preserve-3d',\n backfaceVisibility: 'hidden',\n willChange: 'transform,opacity',\n };\n\n if ( ! self.options.keepImg ) {\n // save default user styles\n const curStyle = self.$item.getAttribute( 'style' );\n if ( curStyle ) {\n self.$item.setAttribute( 'data-jarallax-original-styles', curStyle );\n }\n if ( self.image.useImgTag ) {\n const curImgStyle = self.image.$item.getAttribute( 'style' );\n if ( curImgStyle ) {\n self.image.$item.setAttribute( 'data-jarallax-original-styles', curImgStyle );\n }\n }\n }\n\n // set relative position and z-index to the parent\n if ( 'static' === self.css( self.$item, 'position' ) ) {\n self.css( self.$item, {\n position: 'relative',\n } );\n }\n if ( 'auto' === self.css( self.$item, 'z-index' ) ) {\n self.css( self.$item, {\n zIndex: 0,\n } );\n }\n\n // container for parallax image\n self.image.$container = document.createElement( 'div' );\n self.css( self.image.$container, containerStyles );\n self.css( self.image.$container, {\n 'z-index': self.options.zIndex,\n } );\n\n // fix for IE https://github.com/nk-o/jarallax/issues/110\n if ( isIE ) {\n self.css( self.image.$container, {\n opacity: 0.9999,\n } );\n }\n\n self.image.$container.setAttribute( 'id', `jarallax-container-${ self.instanceID }` );\n self.$item.appendChild( self.image.$container );\n\n // use img tag\n if ( self.image.useImgTag ) {\n imageStyles = self.extend( {\n 'object-fit': self.options.imgSize,\n 'object-position': self.options.imgPosition,\n // support for plugin https://github.com/bfred-it/object-fit-images\n 'font-family': `object-fit: ${ self.options.imgSize }; object-position: ${ self.options.imgPosition };`,\n 'max-width': 'none',\n }, containerStyles, imageStyles );\n\n // use div with background image\n } else {\n self.image.$item = document.createElement( 'div' );\n if ( self.image.src ) {\n imageStyles = self.extend( {\n 'background-position': self.options.imgPosition,\n 'background-size': self.options.imgSize,\n 'background-repeat': self.options.imgRepeat,\n 'background-image': self.image.bgImage || `url(\"${ self.image.src }\")`,\n }, containerStyles, imageStyles );\n }\n }\n\n if ( 'opacity' === self.options.type || 'scale' === self.options.type || 'scale-opacity' === self.options.type || 1 === self.options.speed ) {\n self.image.position = 'absolute';\n }\n\n // 1. Check if one of parents have transform style (without this check, scroll transform will be inverted if used parallax with position fixed)\n // discussion - https://github.com/nk-o/jarallax/issues/9\n // 2. Check if parents have overflow scroll\n if ( 'fixed' === self.image.position ) {\n const $parents = getParents( self.$item ).filter( ( el ) => {\n const styles = window.getComputedStyle( el );\n const parentTransform = styles[ '-webkit-transform' ] || styles[ '-moz-transform' ] || styles.transform;\n const overflowRegex = /(auto|scroll)/;\n\n return ( parentTransform && 'none' !== parentTransform ) || overflowRegex.test( styles.overflow + styles[ 'overflow-y' ] + styles[ 'overflow-x' ] );\n } );\n\n self.image.position = $parents.length ? 'absolute' : 'fixed';\n }\n\n // add position to parallax block\n imageStyles.position = self.image.position;\n\n // insert parallax image\n self.css( self.image.$item, imageStyles );\n self.image.$container.appendChild( self.image.$item );\n\n // set initial position and size\n self.onResize();\n self.onScroll( true );\n\n // call onInit event\n if ( self.options.onInit ) {\n self.options.onInit.call( self );\n }\n\n // remove default user background\n if ( 'none' !== self.css( self.$item, 'background-image' ) ) {\n self.css( self.$item, {\n 'background-image': 'none',\n } );\n }\n\n self.addToParallaxList();\n }\n\n // add to parallax instances list\n addToParallaxList() {\n jarallaxList.push( {\n instance: this,\n } );\n\n if ( 1 === jarallaxList.length ) {\n window.requestAnimationFrame( updateParallax );\n }\n }\n\n // remove from parallax instances list\n removeFromParallaxList() {\n const self = this;\n\n jarallaxList.forEach( ( data, key ) => {\n if ( data.instance.instanceID === self.instanceID ) {\n jarallaxList.splice( key, 1 );\n }\n } );\n }\n\n destroy() {\n const self = this;\n\n self.removeFromParallaxList();\n\n // return styles on container as before jarallax init\n const originalStylesTag = self.$item.getAttribute( 'data-jarallax-original-styles' );\n self.$item.removeAttribute( 'data-jarallax-original-styles' );\n // null occurs if there is no style tag before jarallax init\n if ( ! originalStylesTag ) {\n self.$item.removeAttribute( 'style' );\n } else {\n self.$item.setAttribute( 'style', originalStylesTag );\n }\n\n if ( self.image.useImgTag ) {\n // return styles on img tag as before jarallax init\n const originalStylesImgTag = self.image.$item.getAttribute( 'data-jarallax-original-styles' );\n self.image.$item.removeAttribute( 'data-jarallax-original-styles' );\n // null occurs if there is no style tag before jarallax init\n if ( ! originalStylesImgTag ) {\n self.image.$item.removeAttribute( 'style' );\n } else {\n self.image.$item.setAttribute( 'style', originalStylesTag );\n }\n\n // move img tag to its default position\n if ( self.image.$itemParent ) {\n self.image.$itemParent.appendChild( self.image.$item );\n }\n }\n\n // remove additional dom elements\n if ( self.$clipStyles ) {\n self.$clipStyles.parentNode.removeChild( self.$clipStyles );\n }\n if ( self.image.$container ) {\n self.image.$container.parentNode.removeChild( self.image.$container );\n }\n\n // call onDestroy event\n if ( self.options.onDestroy ) {\n self.options.onDestroy.call( self );\n }\n\n // delete jarallax from item\n delete self.$item.jarallax;\n }\n\n // it will remove some image overlapping\n // overlapping occur due to an image position fixed inside absolute position element\n clipContainer() {\n // needed only when background in fixed position\n if ( 'fixed' !== this.image.position ) {\n return;\n }\n\n const self = this;\n const rect = self.image.$container.getBoundingClientRect();\n const { width, height } = rect;\n\n if ( ! self.$clipStyles ) {\n self.$clipStyles = document.createElement( 'style' );\n self.$clipStyles.setAttribute( 'type', 'text/css' );\n self.$clipStyles.setAttribute( 'id', `jarallax-clip-${ self.instanceID }` );\n const head = document.head || document.getElementsByTagName( 'head' )[ 0 ];\n head.appendChild( self.$clipStyles );\n }\n\n // clip is used for old browsers.\n // clip-path for modern browsers (also fixes Safari v14 bug https://github.com/nk-o/jarallax/issues/181 ).\n const styles = `#jarallax-container-${ self.instanceID } {\n clip: rect(0 ${ width }px ${ height }px 0);\n clip: rect(0, ${ width }px, ${ height }px, 0);\n -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);\n clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);\n }`;\n\n // add clip styles inline (this method need for support IE8 and less browsers)\n if ( self.$clipStyles.styleSheet ) {\n self.$clipStyles.styleSheet.cssText = styles;\n } else {\n self.$clipStyles.innerHTML = styles;\n }\n }\n\n coverImage() {\n const self = this;\n\n const rect = self.image.$container.getBoundingClientRect();\n const contH = rect.height;\n const { speed } = self.options;\n const isScroll = 'scroll' === self.options.type || 'scroll-opacity' === self.options.type;\n let scrollDist = 0;\n let resultH = contH;\n let resultMT = 0;\n\n // scroll parallax\n if ( isScroll ) {\n // scroll distance and height for image\n if ( 0 > speed ) {\n scrollDist = speed * Math.max( contH, wndH );\n\n if ( wndH < contH ) {\n scrollDist -= speed * ( contH - wndH );\n }\n } else {\n scrollDist = speed * ( contH + wndH );\n }\n\n // size for scroll parallax\n if ( 1 < speed ) {\n resultH = Math.abs( scrollDist - wndH );\n } else if ( 0 > speed ) {\n resultH = scrollDist / speed + Math.abs( scrollDist );\n } else {\n resultH += ( wndH - contH ) * ( 1 - speed );\n }\n\n scrollDist /= 2;\n }\n\n // store scroll distance\n self.parallaxScrollDistance = scrollDist;\n\n // vertical center\n if ( isScroll ) {\n resultMT = ( wndH - resultH ) / 2;\n } else {\n resultMT = ( contH - resultH ) / 2;\n }\n\n // apply result to item\n self.css( self.image.$item, {\n height: `${ resultH }px`,\n marginTop: `${ resultMT }px`,\n left: 'fixed' === self.image.position ? `${ rect.left }px` : '0',\n width: `${ rect.width }px`,\n } );\n\n // call onCoverImage event\n if ( self.options.onCoverImage ) {\n self.options.onCoverImage.call( self );\n }\n\n // return some useful data. Used in the video cover function\n return {\n image: {\n height: resultH,\n marginTop: resultMT,\n },\n container: rect,\n };\n }\n\n isVisible() {\n return this.isElementInViewport || false;\n }\n\n onScroll( force ) {\n const self = this;\n\n const rect = self.$item.getBoundingClientRect();\n const contT = rect.top;\n const contH = rect.height;\n const styles = {};\n\n // check if in viewport\n let viewportRect = rect;\n if ( self.options.elementInViewport ) {\n viewportRect = self.options.elementInViewport.getBoundingClientRect();\n }\n self.isElementInViewport = 0 <= viewportRect.bottom\n && 0 <= viewportRect.right\n && viewportRect.top <= wndH\n && viewportRect.left <= window.innerWidth;\n\n // stop calculations if item is not in viewport\n if ( force ? false : ! self.isElementInViewport ) {\n return;\n }\n\n // calculate parallax helping variables\n const beforeTop = Math.max( 0, contT );\n const beforeTopEnd = Math.max( 0, contH + contT );\n const afterTop = Math.max( 0, -contT );\n const beforeBottom = Math.max( 0, contT + contH - wndH );\n const beforeBottomEnd = Math.max( 0, contH - ( contT + contH - wndH ) );\n const afterBottom = Math.max( 0, -contT + wndH - contH );\n const fromViewportCenter = 1 - 2 * ( ( wndH - contT ) / ( wndH + contH ) );\n\n // calculate on how percent of section is visible\n let visiblePercent = 1;\n if ( contH < wndH ) {\n visiblePercent = 1 - ( afterTop || beforeBottom ) / contH;\n } else if ( beforeTopEnd <= wndH ) {\n visiblePercent = beforeTopEnd / wndH;\n } else if ( beforeBottomEnd <= wndH ) {\n visiblePercent = beforeBottomEnd / wndH;\n }\n\n // opacity\n if ( 'opacity' === self.options.type || 'scale-opacity' === self.options.type || 'scroll-opacity' === self.options.type ) {\n styles.transform = 'translate3d(0,0,0)';\n styles.opacity = visiblePercent;\n }\n\n // scale\n if ( 'scale' === self.options.type || 'scale-opacity' === self.options.type ) {\n let scale = 1;\n if ( 0 > self.options.speed ) {\n scale -= self.options.speed * visiblePercent;\n } else {\n scale += self.options.speed * ( 1 - visiblePercent );\n }\n styles.transform = `scale(${ scale }) translate3d(0,0,0)`;\n }\n\n // scroll\n if ( 'scroll' === self.options.type || 'scroll-opacity' === self.options.type ) {\n let positionY = self.parallaxScrollDistance * fromViewportCenter;\n\n // fix if parallax block in absolute position\n if ( 'absolute' === self.image.position ) {\n positionY -= contT;\n }\n\n styles.transform = `translate3d(0,${ positionY }px,0)`;\n }\n\n self.css( self.image.$item, styles );\n\n // call onScroll event\n if ( self.options.onScroll ) {\n self.options.onScroll.call( self, {\n section: rect,\n\n beforeTop,\n beforeTopEnd,\n afterTop,\n beforeBottom,\n beforeBottomEnd,\n afterBottom,\n\n visiblePercent,\n fromViewportCenter,\n } );\n }\n }\n\n onResize() {\n this.coverImage();\n this.clipContainer();\n }\n}\n\n// global definition\nconst plugin = function( items, options, ...args ) {\n // check for dom element\n // thanks: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n if ( 'object' === typeof HTMLElement ? items instanceof HTMLElement : items && 'object' === typeof items && null !== items && 1 === items.nodeType && 'string' === typeof items.nodeName ) {\n items = [ items ];\n }\n\n const len = items.length;\n let k = 0;\n let ret;\n\n for ( k; k < len; k += 1 ) {\n if ( 'object' === typeof options || 'undefined' === typeof options ) {\n if ( ! items[ k ].jarallax ) {\n items[ k ].jarallax = new Jarallax( items[ k ], options );\n }\n } else if ( items[ k ].jarallax ) {\n // eslint-disable-next-line prefer-spread\n ret = items[ k ].jarallax[ options ].apply( items[ k ].jarallax, args );\n }\n if ( 'undefined' !== typeof ret ) {\n return ret;\n }\n }\n\n return items;\n};\nplugin.constructor = Jarallax;\n\nexport default plugin;\n","module.exports = function (callback) {\r\n\r\n\tif (document.readyState === 'complete' || document.readyState === 'interactive') {\r\n\t\t// Already ready or interactive, execute callback\r\n\t\tcallback.call();\r\n\t}\r\n\telse if (document.attachEvent) {\r\n\t\t// Old browsers\r\n\t\tdocument.attachEvent('onreadystatechange', function () {\r\n\t\t\tif (document.readyState === 'interactive')\r\n\t\t\t\tcallback.call();\r\n\t\t});\r\n\t}\r\n\telse if (document.addEventListener) {\r\n\t\t// Modern browsers\r\n\t\tdocument.addEventListener('DOMContentLoaded', callback);\r\n\t}\r\n}\r\n","/*!\n * Masonry v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer'),\n require('get-size')\n );\n } else {\n // browser global\n window.Masonry = factory(\n window.Outlayer,\n window.getSize\n );\n }\n\n}( window, function factory( Outlayer, getSize ) {\n\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n\n var proto = Masonry.prototype;\n\n proto._resetLayout = function() {\n this.getSize();\n this._getMeasurement( 'columnWidth', 'outerWidth' );\n this._getMeasurement( 'gutter', 'outerWidth' );\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for ( var i=0; i < this.cols; i++ ) {\n this.colYs.push( 0 );\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function() {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if ( !this.columnWidth ) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[ mathMethod ]( cols );\n this.cols = Math.max( cols, 1 );\n };\n\n proto.getContainerWidth = function() {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize( container );\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function( item ) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );\n colSpan = Math.min( colSpan, this.cols );\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ?\n '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[ colPosMethod ]( colSpan, item );\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for ( var i = colPosition.col; i < setMax; i++ ) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function( colSpan ) {\n var colGroup = this._getTopColGroup( colSpan );\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply( Math, colGroup );\n\n return {\n col: colGroup.indexOf( minimumY ),\n y: minimumY,\n };\n };\n\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n proto._getTopColGroup = function( colSpan ) {\n if ( colSpan < 2 ) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for ( var i = 0; i < groupCount; i++ ) {\n colGroup[i] = this._getColGroupY( i, colSpan );\n }\n return colGroup;\n };\n\n proto._getColGroupY = function( col, colSpan ) {\n if ( colSpan < 2 ) {\n return this.colYs[ col ];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice( col, col + colSpan );\n // and get the max value of the array\n return Math.max.apply( Math, groupColYs );\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function( colSpan, item ) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n\n return {\n col: col,\n y: this._getColGroupY( col, colSpan ),\n };\n };\n\n proto._manageStamp = function( stamp ) {\n var stampSize = getSize( stamp );\n var offset = this._getElementOffset( stamp );\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor( firstX / this.columnWidth );\n firstCol = Math.max( 0, firstCol );\n var lastCol = Math.floor( lastX / this.columnWidth );\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min( this.cols - 1, lastCol );\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +\n stampSize.outerHeight;\n for ( var i = firstCol; i <= lastCol; i++ ) {\n this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );\n }\n };\n\n proto._getContainerSize = function() {\n this.maxY = Math.max.apply( Math, this.colYs );\n var size = {\n height: this.maxY\n };\n\n if ( this._getOption('fitWidth') ) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function() {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while ( --i ) {\n if ( this.colYs[i] !== 0 ) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function() {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n\n}));\n","/**\n * Outlayer Item\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size'\n ],\n factory\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n require('ev-emitter'),\n require('get-size')\n );\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(\n window.EvEmitter,\n window.getSize\n );\n }\n\n}( window, function factory( EvEmitter, getSize ) {\n'use strict';\n\n// ----- helpers ----- //\n\nfunction isEmptyObj( obj ) {\n for ( var prop in obj ) {\n return false;\n }\n prop = null;\n return true;\n}\n\n// -------------------------- CSS3 support -------------------------- //\n\n\nvar docElemStyle = document.documentElement.style;\n\nvar transitionProperty = typeof docElemStyle.transition == 'string' ?\n 'transition' : 'WebkitTransition';\nvar transformProperty = typeof docElemStyle.transform == 'string' ?\n 'transform' : 'WebkitTransform';\n\nvar transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n}[ transitionProperty ];\n\n// cache all vendor properties that could have vendor prefix\nvar vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n};\n\n// -------------------------- Item -------------------------- //\n\nfunction Item( element, layout ) {\n if ( !element ) {\n return;\n }\n\n this.element = element;\n // parent layout class, i.e. Masonry, Isotope, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n}\n\n// inherit EvEmitter\nvar proto = Item.prototype = Object.create( EvEmitter.prototype );\nproto.constructor = Item;\n\nproto._create = function() {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n\n this.css({\n position: 'absolute'\n });\n};\n\n// trigger specified handler for event type\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * apply CSS styles to element\n * @param {Object} style\n */\nproto.css = function( style ) {\n var elemStyle = this.element.style;\n\n for ( var prop in style ) {\n // use vendor property if available\n var supportedProp = vendorProperties[ prop ] || prop;\n elemStyle[ supportedProp ] = style[ prop ];\n }\n};\n\n // measure position, and sets it\nproto.getPosition = function() {\n var style = getComputedStyle( this.element );\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[ isOriginLeft ? 'left' : 'right' ];\n var yValue = style[ isOriginTop ? 'top' : 'bottom' ];\n var x = parseFloat( xValue );\n var y = parseFloat( yValue );\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if ( xValue.indexOf('%') != -1 ) {\n x = ( x / 100 ) * layoutSize.width;\n }\n if ( yValue.indexOf('%') != -1 ) {\n y = ( y / 100 ) * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN( x ) ? 0 : x;\n y = isNaN( y ) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n\n this.position.x = x;\n this.position.y = y;\n};\n\n// set settled position, apply padding\nproto.layoutPosition = function() {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n\n var x = this.position.x + layoutSize[ xPadding ];\n // set in percentage or pixels\n style[ xProperty ] = this.getXValue( x );\n // reset other property\n style[ xResetProperty ] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n\n var y = this.position.y + layoutSize[ yPadding ];\n // set in percentage or pixels\n style[ yProperty ] = this.getYValue( y );\n // reset other property\n style[ yResetProperty ] = '';\n\n this.css( style );\n this.emitEvent( 'layout', [ this ] );\n};\n\nproto.getXValue = function( x ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ?\n ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';\n};\n\nproto.getYValue = function( y ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ?\n ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';\n};\n\nproto._transitionTo = function( x, y ) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition( x, y );\n\n // if did not move and not transitioning, just go to layout\n if ( didNotMove && !this.isTransitioning ) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate( transX, transY );\n\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n};\n\nproto.getTranslate = function( x, y ) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n};\n\n// non transition + transform support\nproto.goTo = function( x, y ) {\n this.setPosition( x, y );\n this.layoutPosition();\n};\n\nproto.moveTo = proto._transitionTo;\n\nproto.setPosition = function( x, y ) {\n this.position.x = parseFloat( x );\n this.position.y = parseFloat( y );\n};\n\n// ----- transition ----- //\n\n/**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n\n// non transition, just trigger callback\nproto._nonTransition = function( args ) {\n this.css( args.to );\n if ( args.isCleaning ) {\n this._removeStyles( args.to );\n }\n for ( var prop in args.onTransitionEnd ) {\n args.onTransitionEnd[ prop ].call( this );\n }\n};\n\n/**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\nproto.transition = function( args ) {\n // redirect to nonTransition if no transition duration\n if ( !parseFloat( this.layout.options.transitionDuration ) ) {\n this._nonTransition( args );\n return;\n }\n\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for ( var prop in args.onTransitionEnd ) {\n _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];\n }\n // keep track of properties that are transitioning\n for ( prop in args.to ) {\n _transition.ingProperties[ prop ] = true;\n // keep track of properties to clean up when transition is done\n if ( args.isCleaning ) {\n _transition.clean[ prop ] = true;\n }\n }\n\n // set from styles\n if ( args.from ) {\n this.css( args.from );\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition( args.to );\n // set styles that are transitioning\n this.css( args.to );\n\n this.isTransitioning = true;\n\n};\n\n// dash before all cap letters, including first for\n// WebkitTransform => -webkit-transform\nfunction toDashedAll( str ) {\n return str.replace( /([A-Z])/g, function( $1 ) {\n return '-' + $1.toLowerCase();\n });\n}\n\nvar transitionProps = 'opacity,' + toDashedAll( transformProperty );\n\nproto.enableTransition = function(/* style */) {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if ( this.isTransitioning ) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener( transitionEndEvent, this, false );\n};\n\n// ----- events ----- //\n\nproto.onwebkitTransitionEnd = function( event ) {\n this.ontransitionend( event );\n};\n\nproto.onotransitionend = function( event ) {\n this.ontransitionend( event );\n};\n\n// properties that I munge to make my life easier\nvar dashedVendorProperties = {\n '-webkit-transform': 'transform'\n};\n\nproto.ontransitionend = function( event ) {\n // disregard bubbled events from children\n if ( event.target !== this.element ) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[ propertyName ];\n // check if any properties are still transitioning\n if ( isEmptyObj( _transition.ingProperties ) ) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if ( propertyName in _transition.clean ) {\n // clean up style\n this.element.style[ event.propertyName ] = '';\n delete _transition.clean[ propertyName ];\n }\n // trigger onTransitionEnd callback\n if ( propertyName in _transition.onEnd ) {\n var onTransitionEnd = _transition.onEnd[ propertyName ];\n onTransitionEnd.call( this );\n delete _transition.onEnd[ propertyName ];\n }\n\n this.emitEvent( 'transitionEnd', [ this ] );\n};\n\nproto.disableTransition = function() {\n this.removeTransitionStyles();\n this.element.removeEventListener( transitionEndEvent, this, false );\n this.isTransitioning = false;\n};\n\n/**\n * removes style property from element\n * @param {Object} style\n**/\nproto._removeStyles = function( style ) {\n // clean up transition styles\n var cleanStyle = {};\n for ( var prop in style ) {\n cleanStyle[ prop ] = '';\n }\n this.css( cleanStyle );\n};\n\nvar cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n};\n\nproto.removeTransitionStyles = function() {\n // remove transition\n this.css( cleanTransitionStyle );\n};\n\n// ----- stagger ----- //\n\nproto.stagger = function( delay ) {\n delay = isNaN( delay ) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n};\n\n// ----- show/hide/remove ----- //\n\n// remove element from DOM\nproto.removeElem = function() {\n this.element.parentNode.removeChild( this.element );\n // remove display: none\n this.css({ display: '' });\n this.emitEvent( 'remove', [ this ] );\n};\n\nproto.remove = function() {\n // just remove element if no transition support or no transition\n if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once( 'transitionEnd', function() {\n this.removeElem();\n });\n this.hide();\n};\n\nproto.reveal = function() {\n delete this.isHidden;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;\n\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onRevealTransitionEnd = function() {\n // check if still visible\n // during transition, item may have been hidden\n if ( !this.isHidden ) {\n this.emitEvent('reveal');\n }\n};\n\n/**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\nproto.getHideRevealTransitionEndProperty = function( styleProperty ) {\n var optionStyle = this.layout.options[ styleProperty ];\n // use opacity\n if ( optionStyle.opacity ) {\n return 'opacity';\n }\n // get first property\n for ( var prop in optionStyle ) {\n return prop;\n }\n};\n\nproto.hide = function() {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;\n\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onHideTransitionEnd = function() {\n // check if still hidden\n // during transition, item may have been un-hidden\n if ( this.isHidden ) {\n this.css({ display: 'none' });\n this.emitEvent('hide');\n }\n};\n\nproto.destroy = function() {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n};\n\nreturn Item;\n\n}));\n","/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n\n( function( window, factory ) {\n 'use strict';\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './item'\n ],\n function( EvEmitter, getSize, utils, Item ) {\n return factory( window, EvEmitter, getSize, utils, Item);\n }\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./item')\n );\n } else {\n // browser global\n window.Outlayer = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n window.Outlayer.Item\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize, utils, Item ) {\n'use strict';\n\n// ----- vars ----- //\n\nvar console = window.console;\nvar jQuery = window.jQuery;\nvar noop = function() {};\n\n// -------------------------- Outlayer -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Outlayer intances\nvar instances = {};\n\n\n/**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\nfunction Outlayer( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for ' + this.constructor.namespace +\n ': ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[ id ] = this; // associate via id\n\n // kick it off\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n if ( isInitLayout ) {\n this.layout();\n }\n}\n\n// settings are for internal use only\nOutlayer.namespace = 'outlayer';\nOutlayer.Item = Item;\n\n// default options\nOutlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n};\n\nvar proto = Outlayer.prototype;\n// inherit EvEmitter\nutils.extend( proto, EvEmitter.prototype );\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\n/**\n * get backwards compatible option value, check old name\n */\nproto._getOption = function( option ) {\n var oldOption = this.constructor.compatOptions[ option ];\n return oldOption && this.options[ oldOption ] !== undefined ?\n this.options[ oldOption ] : this.options[ option ];\n};\n\nOutlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n};\n\nproto._create = function() {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp( this.options.stamp );\n // set container style\n utils.extend( this.element.style, this.options.containerStyle );\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if ( canBindResize ) {\n this.bindResize();\n }\n};\n\n// goes through all children again and gets bricks in proper order\nproto.reloadItems = function() {\n // collection of item elements\n this.items = this._itemize( this.element.children );\n};\n\n\n/**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\nproto._itemize = function( elems ) {\n\n var itemElems = this._filterFindItemElements( elems );\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for ( var i=0; i < itemElems.length; i++ ) {\n var elem = itemElems[i];\n var item = new Item( elem, this );\n items.push( item );\n }\n\n return items;\n};\n\n/**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\nproto._filterFindItemElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.itemSelector );\n};\n\n/**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\nproto.getItemElements = function() {\n return this.items.map( function( item ) {\n return item.element;\n });\n};\n\n// ----- init & layout ----- //\n\n/**\n * lays out all items\n */\nproto.layout = function() {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ?\n layoutInstant : !this._isLayoutInited;\n this.layoutItems( this.items, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n};\n\n// _init is alias for layout\nproto._init = proto.layout;\n\n/**\n * logic before any new layout\n */\nproto._resetLayout = function() {\n this.getSize();\n};\n\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\nproto._getMeasurement = function( measurement, size ) {\n var option = this.options[ measurement ];\n var elem;\n if ( !option ) {\n // default to 0\n this[ measurement ] = 0;\n } else {\n // use option as an element\n if ( typeof option == 'string' ) {\n elem = this.element.querySelector( option );\n } else if ( option instanceof HTMLElement ) {\n elem = option;\n }\n // use size of element, if element\n this[ measurement ] = elem ? getSize( elem )[ size ] : option;\n }\n};\n\n/**\n * layout a collection of item elements\n * @api public\n */\nproto.layoutItems = function( items, isInstant ) {\n items = this._getItemsForLayout( items );\n\n this._layoutItems( items, isInstant );\n\n this._postLayout();\n};\n\n/**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\nproto._getItemsForLayout = function( items ) {\n return items.filter( function( item ) {\n return !item.isIgnored;\n });\n};\n\n/**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\nproto._layoutItems = function( items, isInstant ) {\n this._emitCompleteOnItems( 'layout', items );\n\n if ( !items || !items.length ) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n\n items.forEach( function( item ) {\n // get x/y object from method\n var position = this._getItemLayoutPosition( item );\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push( position );\n }, this );\n\n this._processLayoutQueue( queue );\n};\n\n/**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\nproto._getItemLayoutPosition = function( /* item */ ) {\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\nproto._processLayoutQueue = function( queue ) {\n this.updateStagger();\n queue.forEach( function( obj, i ) {\n this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );\n }, this );\n};\n\n// set stagger from option in milliseconds number\nproto.updateStagger = function() {\n var stagger = this.options.stagger;\n if ( stagger === null || stagger === undefined ) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds( stagger );\n return this.stagger;\n};\n\n/**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\nproto._positionItem = function( item, x, y, isInstant, i ) {\n if ( isInstant ) {\n // if not transition, just set CSS\n item.goTo( x, y );\n } else {\n item.stagger( i * this.stagger );\n item.moveTo( x, y );\n }\n};\n\n/**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\nproto._postLayout = function() {\n this.resizeContainer();\n};\n\nproto.resizeContainer = function() {\n var isResizingContainer = this._getOption('resizeContainer');\n if ( !isResizingContainer ) {\n return;\n }\n var size = this._getContainerSize();\n if ( size ) {\n this._setContainerMeasure( size.width, true );\n this._setContainerMeasure( size.height, false );\n }\n};\n\n/**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\nproto._getContainerSize = noop;\n\n/**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\nproto._setContainerMeasure = function( measure, isWidth ) {\n if ( measure === undefined ) {\n return;\n }\n\n var elemSize = this.size;\n // add padding and border width if border box\n if ( elemSize.isBorderBox ) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\n elemSize.paddingBottom + elemSize.paddingTop +\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max( measure, 0 );\n this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';\n};\n\n/**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\nproto._emitCompleteOnItems = function( eventName, items ) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent( eventName + 'Complete', null, [ items ] );\n }\n\n var count = items.length;\n if ( !items || !count ) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n function tick() {\n doneCount++;\n if ( doneCount == count ) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach( function( item ) {\n item.once( eventName, tick );\n });\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n // add original event to arguments\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery ) {\n // set this.$element\n this.$element = this.$element || jQuery( this.element );\n if ( event ) {\n // create jQuery event\n var $event = jQuery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n } else {\n // just trigger with type if no event available\n this.$element.trigger( type, args );\n }\n }\n};\n\n// -------------------------- ignore & stamps -------------------------- //\n\n\n/**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\nproto.ignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n item.isIgnored = true;\n }\n};\n\n/**\n * return item to layout collection\n * @param {Element} elem\n */\nproto.unignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n delete item.isIgnored;\n }\n};\n\n/**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\nproto.stamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ) {\n return;\n }\n\n this.stamps = this.stamps.concat( elems );\n // ignore\n elems.forEach( this.ignore, this );\n};\n\n/**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\nproto.unstamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ){\n return;\n }\n\n elems.forEach( function( elem ) {\n // filter out removed stamp elements\n utils.removeFrom( this.stamps, elem );\n this.unignore( elem );\n }, this );\n};\n\n/**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\nproto._find = function( elems ) {\n if ( !elems ) {\n return;\n }\n // if string, use argument as selector string\n if ( typeof elems == 'string' ) {\n elems = this.element.querySelectorAll( elems );\n }\n elems = utils.makeArray( elems );\n return elems;\n};\n\nproto._manageStamps = function() {\n if ( !this.stamps || !this.stamps.length ) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach( this._manageStamp, this );\n};\n\n// update boundingLeft / Top\nproto._getBoundingRect = function() {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),\n bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )\n };\n};\n\n/**\n * @param {Element} stamp\n**/\nproto._manageStamp = noop;\n\n/**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\nproto._getElementOffset = function( elem ) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize( elem );\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n};\n\n// -------------------------- resize -------------------------- //\n\n// enable event handlers for listeners\n// i.e. resize -> onresize\nproto.handleEvent = utils.handleEvent;\n\n/**\n * Bind layout to window resizing\n */\nproto.bindResize = function() {\n window.addEventListener( 'resize', this );\n this.isResizeBound = true;\n};\n\n/**\n * Unbind layout to window resizing\n */\nproto.unbindResize = function() {\n window.removeEventListener( 'resize', this );\n this.isResizeBound = false;\n};\n\nproto.onresize = function() {\n this.resize();\n};\n\nutils.debounceMethod( Outlayer, 'onresize', 100 );\n\nproto.resize = function() {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if ( !this.isResizeBound || !this.needsResizeLayout() ) {\n return;\n }\n\n this.layout();\n};\n\n/**\n * check if layout is needed post layout\n * @returns Boolean\n */\nproto.needsResizeLayout = function() {\n var size = getSize( this.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n};\n\n// -------------------------- methods -------------------------- //\n\n/**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n**/\nproto.addItems = function( elems ) {\n var items = this._itemize( elems );\n // add items to collection\n if ( items.length ) {\n this.items = this.items.concat( items );\n }\n return items;\n};\n\n/**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\nproto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems( items, true );\n this.reveal( items );\n};\n\n/**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\nproto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat( previousItems );\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems( items, true );\n this.reveal( items );\n // layout previous items\n this.layoutItems( previousItems );\n};\n\n/**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.reveal = function( items ) {\n this._emitCompleteOnItems( 'reveal', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.reveal();\n });\n};\n\n/**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.hide = function( items ) {\n this._emitCompleteOnItems( 'hide', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.hide();\n });\n};\n\n/**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.revealItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.reveal( items );\n};\n\n/**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.hideItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.hide( items );\n};\n\n/**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\nproto.getItem = function( elem ) {\n // loop through items to get the one that matches\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n if ( item.element == elem ) {\n // return item\n return item;\n }\n }\n};\n\n/**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\nproto.getItems = function( elems ) {\n elems = utils.makeArray( elems );\n var items = [];\n elems.forEach( function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n items.push( item );\n }\n }, this );\n\n return items;\n};\n\n/**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\nproto.remove = function( elems ) {\n var removeItems = this.getItems( elems );\n\n this._emitCompleteOnItems( 'remove', removeItems );\n\n // bail if no items to remove\n if ( !removeItems || !removeItems.length ) {\n return;\n }\n\n removeItems.forEach( function( item ) {\n item.remove();\n // remove item from collection\n utils.removeFrom( this.items, item );\n }, this );\n};\n\n// ----- destroy ----- //\n\n// remove and disable Outlayer instance\nproto.destroy = function() {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach( function( item ) {\n item.destroy();\n });\n\n this.unbindResize();\n\n var id = this.element.outlayerGUID;\n delete instances[ id ]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if ( jQuery ) {\n jQuery.removeData( this.element, this.constructor.namespace );\n }\n\n};\n\n// -------------------------- data -------------------------- //\n\n/**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\nOutlayer.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.outlayerGUID;\n return id && instances[ id ];\n};\n\n\n// -------------------------- create Outlayer class -------------------------- //\n\n/**\n * create a layout class\n * @param {String} namespace\n */\nOutlayer.create = function( namespace, options ) {\n // sub-class Outlayer\n var Layout = subclass( Outlayer );\n // apply new options and compatOptions\n Layout.defaults = utils.extend( {}, Outlayer.defaults );\n utils.extend( Layout.defaults, options );\n Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );\n\n Layout.namespace = namespace;\n\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass( Item );\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit( Layout, namespace );\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if ( jQuery && jQuery.bridget ) {\n jQuery.bridget( namespace, Layout );\n }\n\n return Layout;\n};\n\nfunction subclass( Parent ) {\n function SubClass() {\n Parent.apply( this, arguments );\n }\n\n SubClass.prototype = Object.create( Parent.prototype );\n SubClass.prototype.constructor = SubClass;\n\n return SubClass;\n}\n\n// ----- helpers ----- //\n\n// how many milliseconds are in each unit\nvar msUnits = {\n ms: 1,\n s: 1000\n};\n\n// munge time-like parameter into millisecond number\n// '0.4s' -> 40\nfunction getMilliseconds( time ) {\n if ( typeof time == 'number' ) {\n return time;\n }\n var matches = time.match( /(^\\d*\\.?\\d*)(\\w*)/ );\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if ( !num.length ) {\n return 0;\n }\n num = parseFloat( num );\n var mult = msUnits[ unit ] || 1;\n return num * mult;\n}\n\n// ----- fin ----- //\n\n// back in global\nOutlayer.Item = Item;\n\nreturn Outlayer;\n\n}));\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === 'ðŸ¶', '\\uD83D\\uDC2F' === 'ðŸ¯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[e[t]+\"CancelAnimationFrame\"]||window[e[t]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),o=Math.max(0,16-(n-r)),a=window.setTimeout((function(){e(n+o)}),o);return r=n+o,a}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(M){\"use strict\";var q={ignore:\"[data-scroll-ignore]\",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:\"easeInOutCubic\",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},I=function(){var n={};return Array.prototype.forEach.call(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}})),n},r=function(e){\"#\"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r=\"\",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?r+=\"\\\\\"+t.toString(16)+\" \":r+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?n.charAt(a):\"\\\\\"+n.charAt(a)}return\"#\"+r},F=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},L=function(e){return e?(t=e,parseInt(M.getComputedStyle(t).height,10)+e.offsetTop):0;var t},x=function(e,t,n){0===e&&document.body.focus(),n||(e.focus(),document.activeElement!==e&&(e.setAttribute(\"tabindex\",\"-1\"),e.focus(),e.style.outline=\"none\"),M.scrollTo(0,t))},H=function(e,t,n,o){if(t.emitEvents&&\"function\"==typeof M.CustomEvent){var a=new CustomEvent(e,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(a)}};return function(o,e){var b,a,A,O,C={};C.cancelScroll=function(e){cancelAnimationFrame(O),O=null,e||H(\"scrollCancel\",b)},C.animateScroll=function(a,r,e){C.cancelScroll();var i=I(b||q,e||{}),c=\"[object Number]\"===Object.prototype.toString.call(a),t=c||!a.tagName?null:a;if(c||t){var s=M.pageYOffset;i.header&&!A&&(A=document.querySelector(i.header));var n,o,u,l,m,d,f,h,p=L(A),g=c?a:(function(e,t,n,o){var a=0;if(e.offsetParent)for(;a+=e.offsetTop,e=e.offsetParent;);return a=Math.max(a-t-n,0),o&&(a=Math.min(a,F()-M.innerHeight)),a})(t,p,parseInt(\"function\"==typeof i.offset?i.offset(a,r):i.offset,10),i.clip),y=g-s,v=F(),w=0,S=(n=y,u=(o=i).speedAsDuration?o.speed:Math.abs(n/1e3*o.speed),o.durationMax&&u>o.durationMax?o.durationMax:o.durationMin&&u<o.durationMin?o.durationMin:parseInt(u,10)),E=function(e){var t,n,o;l||(l=e),w+=e-l,d=s+y*(n=m=1<(m=0===S?0:w/S)?1:m,\"easeInQuad\"===(t=i).easing&&(o=n*n),\"easeOutQuad\"===t.easing&&(o=n*(2-n)),\"easeInOutQuad\"===t.easing&&(o=n<.5?2*n*n:(4-2*n)*n-1),\"easeInCubic\"===t.easing&&(o=n*n*n),\"easeOutCubic\"===t.easing&&(o=--n*n*n+1),\"easeInOutCubic\"===t.easing&&(o=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),\"easeInQuart\"===t.easing&&(o=n*n*n*n),\"easeOutQuart\"===t.easing&&(o=1- --n*n*n*n),\"easeInOutQuart\"===t.easing&&(o=n<.5?8*n*n*n*n:1-8*--n*n*n*n),\"easeInQuint\"===t.easing&&(o=n*n*n*n*n),\"easeOutQuint\"===t.easing&&(o=1+--n*n*n*n*n),\"easeInOutQuint\"===t.easing&&(o=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(o=t.customEasing(n)),o||n),M.scrollTo(0,Math.floor(d)),(function(e,t){var n=M.pageYOffset;if(e==t||n==t||(s<t&&M.innerHeight+n)>=v)return C.cancelScroll(!0),x(a,t,c),H(\"scrollStop\",i,a,r),!(O=l=null)})(d,g)||(O=M.requestAnimationFrame(E),l=e)};0===M.pageYOffset&&M.scrollTo(0,0),f=a,h=i,c||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in M&&M.matchMedia(\"(prefers-reduced-motion)\").matches?x(a,Math.floor(g),!1):(H(\"scrollStart\",i,a,r),C.cancelScroll(!0),M.requestAnimationFrame(E))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(b.ignore)&&a.hostname===M.location.hostname&&a.pathname===M.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if(\"#\"===t){if(!b.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||\"#top\"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=M.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||M.pageYOffset},document.title,t||M.location.href)}})(b),C.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(b)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||C.animateScroll(t,null,{updateURL:!1})}};C.destroy=function(){b&&(document.removeEventListener(\"click\",t,!1),M.removeEventListener(\"popstate\",n,!1),C.cancelScroll(),O=A=a=b=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in M&&\"requestAnimationFrame\"in M&&\"closest\"in M.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";C.destroy(),b=I(q,e||{}),A=b.header?document.querySelector(b.header):null,document.addEventListener(\"click\",t,!1),b.updateURL&&b.popstate&&M.addEventListener(\"popstate\",n,!1)})(),C}}));","/*!\n * \n * typed.js - A JavaScript Typing Animation Library\n * Author: Matt Boldt <me@mattboldt.com>\n * Version: v2.0.12\n * Url: https://github.com/mattboldt/typed.js\n * License(s): MIT\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Typed\"] = factory();\n\telse\n\t\troot[\"Typed\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _initializerJs = __webpack_require__(1);\n\t\n\tvar _htmlParserJs = __webpack_require__(3);\n\t\n\t/**\n\t * Welcome to Typed.js!\n\t * @param {string} elementId HTML element ID _OR_ HTML element\n\t * @param {object} options options object\n\t * @returns {object} a new Typed object\n\t */\n\t\n\tvar Typed = (function () {\n\t function Typed(elementId, options) {\n\t _classCallCheck(this, Typed);\n\t\n\t // Initialize it up\n\t _initializerJs.initializer.load(this, options, elementId);\n\t // All systems go!\n\t this.begin();\n\t }\n\t\n\t /**\n\t * Toggle start() and stop() of the Typed instance\n\t * @public\n\t */\n\t\n\t _createClass(Typed, [{\n\t key: 'toggle',\n\t value: function toggle() {\n\t this.pause.status ? this.start() : this.stop();\n\t }\n\t\n\t /**\n\t * Stop typing / backspacing and enable cursor blinking\n\t * @public\n\t */\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this.typingComplete) return;\n\t if (this.pause.status) return;\n\t this.toggleBlinking(true);\n\t this.pause.status = true;\n\t this.options.onStop(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Start typing / backspacing after being stopped\n\t * @public\n\t */\n\t }, {\n\t key: 'start',\n\t value: function start() {\n\t if (this.typingComplete) return;\n\t if (!this.pause.status) return;\n\t this.pause.status = false;\n\t if (this.pause.typewrite) {\n\t this.typewrite(this.pause.curString, this.pause.curStrPos);\n\t } else {\n\t this.backspace(this.pause.curString, this.pause.curStrPos);\n\t }\n\t this.options.onStart(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Destroy this instance of Typed\n\t * @public\n\t */\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this.reset(false);\n\t this.options.onDestroy(this);\n\t }\n\t\n\t /**\n\t * Reset Typed and optionally restarts\n\t * @param {boolean} restart\n\t * @public\n\t */\n\t }, {\n\t key: 'reset',\n\t value: function reset() {\n\t var restart = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\t\n\t clearInterval(this.timeout);\n\t this.replaceText('');\n\t if (this.cursor && this.cursor.parentNode) {\n\t this.cursor.parentNode.removeChild(this.cursor);\n\t this.cursor = null;\n\t }\n\t this.strPos = 0;\n\t this.arrayPos = 0;\n\t this.curLoop = 0;\n\t if (restart) {\n\t this.insertCursor();\n\t this.options.onReset(this);\n\t this.begin();\n\t }\n\t }\n\t\n\t /**\n\t * Begins the typing animation\n\t * @private\n\t */\n\t }, {\n\t key: 'begin',\n\t value: function begin() {\n\t var _this = this;\n\t\n\t this.options.onBegin(this);\n\t this.typingComplete = false;\n\t this.shuffleStringsIfNeeded(this);\n\t this.insertCursor();\n\t if (this.bindInputFocusEvents) this.bindFocusEvents();\n\t this.timeout = setTimeout(function () {\n\t // Check if there is some text in the element, if yes start by backspacing the default message\n\t if (!_this.currentElContent || _this.currentElContent.length === 0) {\n\t _this.typewrite(_this.strings[_this.sequence[_this.arrayPos]], _this.strPos);\n\t } else {\n\t // Start typing\n\t _this.backspace(_this.currentElContent, _this.currentElContent.length);\n\t }\n\t }, this.startDelay);\n\t }\n\t\n\t /**\n\t * Called for each character typed\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'typewrite',\n\t value: function typewrite(curString, curStrPos) {\n\t var _this2 = this;\n\t\n\t if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n\t this.el.classList.remove(this.fadeOutClass);\n\t if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n\t }\n\t\n\t var humanize = this.humanizer(this.typeSpeed);\n\t var numChars = 1;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, true);\n\t return;\n\t }\n\t\n\t // contain typing function in a timeout humanize'd delay\n\t this.timeout = setTimeout(function () {\n\t // skip over any HTML chars\n\t curStrPos = _htmlParserJs.htmlParser.typeHtmlChars(curString, curStrPos, _this2);\n\t\n\t var pauseTime = 0;\n\t var substr = curString.substr(curStrPos);\n\t // check for an escape character before a pause value\n\t // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n\t // single ^ are removed from string\n\t if (substr.charAt(0) === '^') {\n\t if (/^\\^\\d+/.test(substr)) {\n\t var skip = 1; // skip at least 1\n\t substr = /\\d+/.exec(substr)[0];\n\t skip += substr.length;\n\t pauseTime = parseInt(substr);\n\t _this2.temporaryPause = true;\n\t _this2.options.onTypingPaused(_this2.arrayPos, _this2);\n\t // strip out the escape character and pause value so they're not printed\n\t curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);\n\t _this2.toggleBlinking(true);\n\t }\n\t }\n\t\n\t // check for skip characters formatted as\n\t // \"this is a `string to print NOW` ...\"\n\t if (substr.charAt(0) === '`') {\n\t while (curString.substr(curStrPos + numChars).charAt(0) !== '`') {\n\t numChars++;\n\t if (curStrPos + numChars > curString.length) break;\n\t }\n\t // strip out the escape characters and append all the string in between\n\t var stringBeforeSkip = curString.substring(0, curStrPos);\n\t var stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars);\n\t var stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n\t curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n\t numChars--;\n\t }\n\t\n\t // timeout for any pause after a character\n\t _this2.timeout = setTimeout(function () {\n\t // Accounts for blinking while paused\n\t _this2.toggleBlinking(false);\n\t\n\t // We're done with this sentence!\n\t if (curStrPos >= curString.length) {\n\t _this2.doneTyping(curString, curStrPos);\n\t } else {\n\t _this2.keepTyping(curString, curStrPos, numChars);\n\t }\n\t // end of character pause\n\t if (_this2.temporaryPause) {\n\t _this2.temporaryPause = false;\n\t _this2.options.onTypingResumed(_this2.arrayPos, _this2);\n\t }\n\t }, pauseTime);\n\t\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Continue to the next string & begin typing\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'keepTyping',\n\t value: function keepTyping(curString, curStrPos, numChars) {\n\t // call before functions if applicable\n\t if (curStrPos === 0) {\n\t this.toggleBlinking(false);\n\t this.options.preStringTyped(this.arrayPos, this);\n\t }\n\t // start typing each new char into existing string\n\t // curString: arg, this.el.html: original text inside element\n\t curStrPos += numChars;\n\t var nextString = curString.substr(0, curStrPos);\n\t this.replaceText(nextString);\n\t // loop the function\n\t this.typewrite(curString, curStrPos);\n\t }\n\t\n\t /**\n\t * We're done typing the current string\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'doneTyping',\n\t value: function doneTyping(curString, curStrPos) {\n\t var _this3 = this;\n\t\n\t // fires callback function\n\t this.options.onStringTyped(this.arrayPos, this);\n\t this.toggleBlinking(true);\n\t // is this the final string\n\t if (this.arrayPos === this.strings.length - 1) {\n\t // callback that occurs on the last typed string\n\t this.complete();\n\t // quit if we wont loop back\n\t if (this.loop === false || this.curLoop === this.loopCount) {\n\t return;\n\t }\n\t }\n\t this.timeout = setTimeout(function () {\n\t _this3.backspace(curString, curStrPos);\n\t }, this.backDelay);\n\t }\n\t\n\t /**\n\t * Backspaces 1 character at a time\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'backspace',\n\t value: function backspace(curString, curStrPos) {\n\t var _this4 = this;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, false);\n\t return;\n\t }\n\t if (this.fadeOut) return this.initFadeOut();\n\t\n\t this.toggleBlinking(false);\n\t var humanize = this.humanizer(this.backSpeed);\n\t\n\t this.timeout = setTimeout(function () {\n\t curStrPos = _htmlParserJs.htmlParser.backSpaceHtmlChars(curString, curStrPos, _this4);\n\t // replace text with base text + typed characters\n\t var curStringAtPosition = curString.substr(0, curStrPos);\n\t _this4.replaceText(curStringAtPosition);\n\t\n\t // if smartBack is enabled\n\t if (_this4.smartBackspace) {\n\t // the remaining part of the current string is equal of the same part of the new string\n\t var nextString = _this4.strings[_this4.arrayPos + 1];\n\t if (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) {\n\t _this4.stopNum = curStrPos;\n\t } else {\n\t _this4.stopNum = 0;\n\t }\n\t }\n\t\n\t // if the number (id of character in current string) is\n\t // less than the stop number, keep going\n\t if (curStrPos > _this4.stopNum) {\n\t // subtract characters one by one\n\t curStrPos--;\n\t // loop the function\n\t _this4.backspace(curString, curStrPos);\n\t } else if (curStrPos <= _this4.stopNum) {\n\t // if the stop number has been reached, increase\n\t // array position to next string\n\t _this4.arrayPos++;\n\t // When looping, begin at the beginning after backspace complete\n\t if (_this4.arrayPos === _this4.strings.length) {\n\t _this4.arrayPos = 0;\n\t _this4.options.onLastStringBackspaced();\n\t _this4.shuffleStringsIfNeeded();\n\t _this4.begin();\n\t } else {\n\t _this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]], curStrPos);\n\t }\n\t }\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Full animation is complete\n\t * @private\n\t */\n\t }, {\n\t key: 'complete',\n\t value: function complete() {\n\t this.options.onComplete(this);\n\t if (this.loop) {\n\t this.curLoop++;\n\t } else {\n\t this.typingComplete = true;\n\t }\n\t }\n\t\n\t /**\n\t * Has the typing been stopped\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @param {boolean} isTyping\n\t * @private\n\t */\n\t }, {\n\t key: 'setPauseStatus',\n\t value: function setPauseStatus(curString, curStrPos, isTyping) {\n\t this.pause.typewrite = isTyping;\n\t this.pause.curString = curString;\n\t this.pause.curStrPos = curStrPos;\n\t }\n\t\n\t /**\n\t * Toggle the blinking cursor\n\t * @param {boolean} isBlinking\n\t * @private\n\t */\n\t }, {\n\t key: 'toggleBlinking',\n\t value: function toggleBlinking(isBlinking) {\n\t if (!this.cursor) return;\n\t // if in paused state, don't toggle blinking a 2nd time\n\t if (this.pause.status) return;\n\t if (this.cursorBlinking === isBlinking) return;\n\t this.cursorBlinking = isBlinking;\n\t if (isBlinking) {\n\t this.cursor.classList.add('typed-cursor--blink');\n\t } else {\n\t this.cursor.classList.remove('typed-cursor--blink');\n\t }\n\t }\n\t\n\t /**\n\t * Speed in MS to type\n\t * @param {number} speed\n\t * @private\n\t */\n\t }, {\n\t key: 'humanizer',\n\t value: function humanizer(speed) {\n\t return Math.round(Math.random() * speed / 2) + speed;\n\t }\n\t\n\t /**\n\t * Shuffle the sequence of the strings array\n\t * @private\n\t */\n\t }, {\n\t key: 'shuffleStringsIfNeeded',\n\t value: function shuffleStringsIfNeeded() {\n\t if (!this.shuffle) return;\n\t this.sequence = this.sequence.sort(function () {\n\t return Math.random() - 0.5;\n\t });\n\t }\n\t\n\t /**\n\t * Adds a CSS class to fade out current string\n\t * @private\n\t */\n\t }, {\n\t key: 'initFadeOut',\n\t value: function initFadeOut() {\n\t var _this5 = this;\n\t\n\t this.el.className += ' ' + this.fadeOutClass;\n\t if (this.cursor) this.cursor.className += ' ' + this.fadeOutClass;\n\t return setTimeout(function () {\n\t _this5.arrayPos++;\n\t _this5.replaceText('');\n\t\n\t // Resets current string if end of loop reached\n\t if (_this5.strings.length > _this5.arrayPos) {\n\t _this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]], 0);\n\t } else {\n\t _this5.typewrite(_this5.strings[0], 0);\n\t _this5.arrayPos = 0;\n\t }\n\t }, this.fadeOutDelay);\n\t }\n\t\n\t /**\n\t * Replaces current text in the HTML element\n\t * depending on element type\n\t * @param {string} str\n\t * @private\n\t */\n\t }, {\n\t key: 'replaceText',\n\t value: function replaceText(str) {\n\t if (this.attr) {\n\t this.el.setAttribute(this.attr, str);\n\t } else {\n\t if (this.isInput) {\n\t this.el.value = str;\n\t } else if (this.contentType === 'html') {\n\t this.el.innerHTML = str;\n\t } else {\n\t this.el.textContent = str;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * If using input elements, bind focus in order to\n\t * start and stop the animation\n\t * @private\n\t */\n\t }, {\n\t key: 'bindFocusEvents',\n\t value: function bindFocusEvents() {\n\t var _this6 = this;\n\t\n\t if (!this.isInput) return;\n\t this.el.addEventListener('focus', function (e) {\n\t _this6.stop();\n\t });\n\t this.el.addEventListener('blur', function (e) {\n\t if (_this6.el.value && _this6.el.value.length !== 0) {\n\t return;\n\t }\n\t _this6.start();\n\t });\n\t }\n\t\n\t /**\n\t * On init, insert the cursor element\n\t * @private\n\t */\n\t }, {\n\t key: 'insertCursor',\n\t value: function insertCursor() {\n\t if (!this.showCursor) return;\n\t if (this.cursor) return;\n\t this.cursor = document.createElement('span');\n\t this.cursor.className = 'typed-cursor';\n\t this.cursor.setAttribute('aria-hidden', true);\n\t this.cursor.innerHTML = this.cursorChar;\n\t this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n\t }\n\t }]);\n\t\n\t return Typed;\n\t})();\n\t\n\texports['default'] = Typed;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _defaultsJs = __webpack_require__(2);\n\t\n\tvar _defaultsJs2 = _interopRequireDefault(_defaultsJs);\n\t\n\t/**\n\t * Initialize the Typed object\n\t */\n\t\n\tvar Initializer = (function () {\n\t function Initializer() {\n\t _classCallCheck(this, Initializer);\n\t }\n\t\n\t _createClass(Initializer, [{\n\t key: 'load',\n\t\n\t /**\n\t * Load up defaults & options on the Typed instance\n\t * @param {Typed} self instance of Typed\n\t * @param {object} options options object\n\t * @param {string} elementId HTML element ID _OR_ instance of HTML element\n\t * @private\n\t */\n\t\n\t value: function load(self, options, elementId) {\n\t // chosen element to manipulate text\n\t if (typeof elementId === 'string') {\n\t self.el = document.querySelector(elementId);\n\t } else {\n\t self.el = elementId;\n\t }\n\t\n\t self.options = _extends({}, _defaultsJs2['default'], options);\n\t\n\t // attribute to type into\n\t self.isInput = self.el.tagName.toLowerCase() === 'input';\n\t self.attr = self.options.attr;\n\t self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\t\n\t // show cursor\n\t self.showCursor = self.isInput ? false : self.options.showCursor;\n\t\n\t // custom cursor\n\t self.cursorChar = self.options.cursorChar;\n\t\n\t // Is the cursor blinking\n\t self.cursorBlinking = true;\n\t\n\t // text content of element\n\t self.elContent = self.attr ? self.el.getAttribute(self.attr) : self.el.textContent;\n\t\n\t // html or plain text\n\t self.contentType = self.options.contentType;\n\t\n\t // typing speed\n\t self.typeSpeed = self.options.typeSpeed;\n\t\n\t // add a delay before typing starts\n\t self.startDelay = self.options.startDelay;\n\t\n\t // backspacing speed\n\t self.backSpeed = self.options.backSpeed;\n\t\n\t // only backspace what doesn't match the previous string\n\t self.smartBackspace = self.options.smartBackspace;\n\t\n\t // amount of time to wait before backspacing\n\t self.backDelay = self.options.backDelay;\n\t\n\t // Fade out instead of backspace\n\t self.fadeOut = self.options.fadeOut;\n\t self.fadeOutClass = self.options.fadeOutClass;\n\t self.fadeOutDelay = self.options.fadeOutDelay;\n\t\n\t // variable to check whether typing is currently paused\n\t self.isPaused = false;\n\t\n\t // input strings of text\n\t self.strings = self.options.strings.map(function (s) {\n\t return s.trim();\n\t });\n\t\n\t // div containing strings\n\t if (typeof self.options.stringsElement === 'string') {\n\t self.stringsElement = document.querySelector(self.options.stringsElement);\n\t } else {\n\t self.stringsElement = self.options.stringsElement;\n\t }\n\t\n\t if (self.stringsElement) {\n\t self.strings = [];\n\t self.stringsElement.style.display = 'none';\n\t var strings = Array.prototype.slice.apply(self.stringsElement.children);\n\t var stringsLength = strings.length;\n\t\n\t if (stringsLength) {\n\t for (var i = 0; i < stringsLength; i += 1) {\n\t var stringEl = strings[i];\n\t self.strings.push(stringEl.innerHTML.trim());\n\t }\n\t }\n\t }\n\t\n\t // character number position of current string\n\t self.strPos = 0;\n\t\n\t // current array position\n\t self.arrayPos = 0;\n\t\n\t // index of string to stop backspacing on\n\t self.stopNum = 0;\n\t\n\t // Looping logic\n\t self.loop = self.options.loop;\n\t self.loopCount = self.options.loopCount;\n\t self.curLoop = 0;\n\t\n\t // shuffle the strings\n\t self.shuffle = self.options.shuffle;\n\t // the order of strings\n\t self.sequence = [];\n\t\n\t self.pause = {\n\t status: false,\n\t typewrite: true,\n\t curString: '',\n\t curStrPos: 0\n\t };\n\t\n\t // When the typing is complete (when not looped)\n\t self.typingComplete = false;\n\t\n\t // Set the order in which the strings are typed\n\t for (var i in self.strings) {\n\t self.sequence[i] = i;\n\t }\n\t\n\t // If there is some text in the element\n\t self.currentElContent = this.getCurrentElContent(self);\n\t\n\t self.autoInsertCss = self.options.autoInsertCss;\n\t\n\t this.appendAnimationCss(self);\n\t }\n\t }, {\n\t key: 'getCurrentElContent',\n\t value: function getCurrentElContent(self) {\n\t var elContent = '';\n\t if (self.attr) {\n\t elContent = self.el.getAttribute(self.attr);\n\t } else if (self.isInput) {\n\t elContent = self.el.value;\n\t } else if (self.contentType === 'html') {\n\t elContent = self.el.innerHTML;\n\t } else {\n\t elContent = self.el.textContent;\n\t }\n\t return elContent;\n\t }\n\t }, {\n\t key: 'appendAnimationCss',\n\t value: function appendAnimationCss(self) {\n\t var cssDataName = 'data-typed-js-css';\n\t if (!self.autoInsertCss) {\n\t return;\n\t }\n\t if (!self.showCursor && !self.fadeOut) {\n\t return;\n\t }\n\t if (document.querySelector('[' + cssDataName + ']')) {\n\t return;\n\t }\n\t\n\t var css = document.createElement('style');\n\t css.type = 'text/css';\n\t css.setAttribute(cssDataName, true);\n\t\n\t var innerCss = '';\n\t if (self.showCursor) {\n\t innerCss += '\\n .typed-cursor{\\n opacity: 1;\\n }\\n .typed-cursor.typed-cursor--blink{\\n animation: typedjsBlink 0.7s infinite;\\n -webkit-animation: typedjsBlink 0.7s infinite;\\n animation: typedjsBlink 0.7s infinite;\\n }\\n @keyframes typedjsBlink{\\n 50% { opacity: 0.0; }\\n }\\n @-webkit-keyframes typedjsBlink{\\n 0% { opacity: 1; }\\n 50% { opacity: 0.0; }\\n 100% { opacity: 1; }\\n }\\n ';\n\t }\n\t if (self.fadeOut) {\n\t innerCss += '\\n .typed-fade-out{\\n opacity: 0;\\n transition: opacity .25s;\\n }\\n .typed-cursor.typed-cursor--blink.typed-fade-out{\\n -webkit-animation: 0;\\n animation: 0;\\n }\\n ';\n\t }\n\t if (css.length === 0) {\n\t return;\n\t }\n\t css.innerHTML = innerCss;\n\t document.body.appendChild(css);\n\t }\n\t }]);\n\t\n\t return Initializer;\n\t})();\n\t\n\texports['default'] = Initializer;\n\tvar initializer = new Initializer();\n\texports.initializer = initializer;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Defaults & options\n\t * @returns {object} Typed defaults & options\n\t * @public\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\tvar defaults = {\n\t /**\n\t * @property {array} strings strings to be typed\n\t * @property {string} stringsElement ID of element containing string children\n\t */\n\t strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],\n\t stringsElement: null,\n\t\n\t /**\n\t * @property {number} typeSpeed type speed in milliseconds\n\t */\n\t typeSpeed: 0,\n\t\n\t /**\n\t * @property {number} startDelay time before typing starts in milliseconds\n\t */\n\t startDelay: 0,\n\t\n\t /**\n\t * @property {number} backSpeed backspacing speed in milliseconds\n\t */\n\t backSpeed: 0,\n\t\n\t /**\n\t * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n\t */\n\t smartBackspace: true,\n\t\n\t /**\n\t * @property {boolean} shuffle shuffle the strings\n\t */\n\t shuffle: false,\n\t\n\t /**\n\t * @property {number} backDelay time before backspacing in milliseconds\n\t */\n\t backDelay: 700,\n\t\n\t /**\n\t * @property {boolean} fadeOut Fade out instead of backspace\n\t * @property {string} fadeOutClass css class for fade animation\n\t * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n\t */\n\t fadeOut: false,\n\t fadeOutClass: 'typed-fade-out',\n\t fadeOutDelay: 500,\n\t\n\t /**\n\t * @property {boolean} loop loop strings\n\t * @property {number} loopCount amount of loops\n\t */\n\t loop: false,\n\t loopCount: Infinity,\n\t\n\t /**\n\t * @property {boolean} showCursor show cursor\n\t * @property {string} cursorChar character for cursor\n\t * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML <head>\n\t */\n\t showCursor: true,\n\t cursorChar: '|',\n\t autoInsertCss: true,\n\t\n\t /**\n\t * @property {string} attr attribute for typing\n\t * Ex: input placeholder, value, or just HTML text\n\t */\n\t attr: null,\n\t\n\t /**\n\t * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n\t */\n\t bindInputFocusEvents: false,\n\t\n\t /**\n\t * @property {string} contentType 'html' or 'null' for plaintext\n\t */\n\t contentType: 'html',\n\t\n\t /**\n\t * Before it begins typing\n\t * @param {Typed} self\n\t */\n\t onBegin: function onBegin(self) {},\n\t\n\t /**\n\t * All typing is complete\n\t * @param {Typed} self\n\t */\n\t onComplete: function onComplete(self) {},\n\t\n\t /**\n\t * Before each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t preStringTyped: function preStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * After each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStringTyped: function onStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * During looping, after last string is typed\n\t * @param {Typed} self\n\t */\n\t onLastStringBackspaced: function onLastStringBackspaced(self) {},\n\t\n\t /**\n\t * Typing has been stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingPaused: function onTypingPaused(arrayPos, self) {},\n\t\n\t /**\n\t * Typing has been started after being stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingResumed: function onTypingResumed(arrayPos, self) {},\n\t\n\t /**\n\t * After reset\n\t * @param {Typed} self\n\t */\n\t onReset: function onReset(self) {},\n\t\n\t /**\n\t * After stop\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStop: function onStop(arrayPos, self) {},\n\t\n\t /**\n\t * After start\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStart: function onStart(arrayPos, self) {},\n\t\n\t /**\n\t * After destroy\n\t * @param {Typed} self\n\t */\n\t onDestroy: function onDestroy(self) {}\n\t};\n\t\n\texports['default'] = defaults;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * TODO: These methods can probably be combined somehow\n\t * Parse HTML tags & HTML Characters\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar HTMLParser = (function () {\n\t function HTMLParser() {\n\t _classCallCheck(this, HTMLParser);\n\t }\n\t\n\t _createClass(HTMLParser, [{\n\t key: 'typeHtmlChars',\n\t\n\t /**\n\t * Type HTML tags & HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t\n\t value: function typeHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '<' || curChar === '&') {\n\t var endTag = '';\n\t if (curChar === '<') {\n\t endTag = '>';\n\t } else {\n\t endTag = ';';\n\t }\n\t while (curString.substr(curStrPos + 1).charAt(0) !== endTag) {\n\t curStrPos++;\n\t if (curStrPos + 1 > curString.length) {\n\t break;\n\t }\n\t }\n\t curStrPos++;\n\t }\n\t return curStrPos;\n\t }\n\t\n\t /**\n\t * Backspace HTML tags and HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t }, {\n\t key: 'backSpaceHtmlChars',\n\t value: function backSpaceHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '>' || curChar === ';') {\n\t var endTag = '';\n\t if (curChar === '>') {\n\t endTag = '<';\n\t } else {\n\t endTag = '&';\n\t }\n\t while (curString.substr(curStrPos - 1).charAt(0) !== endTag) {\n\t curStrPos--;\n\t if (curStrPos < 0) {\n\t break;\n\t }\n\t }\n\t curStrPos--;\n\t }\n\t return curStrPos;\n\t }\n\t }]);\n\t\n\t return HTMLParser;\n\t})();\n\t\n\texports['default'] = HTMLParser;\n\tvar htmlParser = new HTMLParser();\n\texports.htmlParser = htmlParser;\n\n/***/ })\n/******/ ])\n});\n;","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n"],"names":["module","exports","e","window","g","self","t","n","NaN","o","i","a","r","c","s","parseInt","u","Object","d","l","Function","f","prototype","toString","m","Math","max","p","min","b","Date","now","v","TypeError","y","apply","h","k","x","setTimeout","O","arguments","this","w","leading","maxWait","trailing","cancel","clearTimeout","flush","call","valueOf","replace","test","slice","j","E","N","z","C","A","q","L","T","M","S","D","H","$","W","P","forEach","Array","addedNodes","removedNodes","length","dataset","aos","children","concat","Y","MutationObserver","WebKitMutationObserver","MozMutationObserver","_","isSupported","ready","document","observe","documentElement","childList","subtree","B","F","enumerable","configurable","writable","defineProperty","key","I","assign","hasOwnProperty","K","G","J","Q","R","navigator","userAgent","vendor","opera","U","value","substr","mobile","phone","style","V","ie11","createEvent","initCustomEvent","detail","CustomEvent","dispatchEvent","X","options","position","node","data","animated","classList","remove","animatedClassNames","id","mirror","out","once","in","add","pageYOffset","Z","isNaN","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","top","left","ee","getAttribute","te","useClassNames","animatedClassName","split","filter","initClassName","innerHeight","Number","querySelectorAll","offsetHeight","offset","anchorPlacement","ne","map","oe","ie","ae","delay","easing","duration","disable","startEvent","disableMutationObserver","throttleDelay","debounceDelay","re","all","atob","ce","addEventListener","se","de","ue","removeAttribute","tablet","init","console","info","querySelector","setAttribute","indexOf","readyState","refresh","refreshHard","el","initialized","container","displayElement","displayImage","displayVideo","displayAudio","iframeContainer","iframeSiteVid","imgSrc","closeButton","siteVidID","isLoading","checkMediaTimeout","loadingIcon","caption","captionText","captionContent","captionHideButton","isOpen","galleryOpen","isClosing","remoteImage","animationStart","animationEnd","onChangeImage","rightArrowBtn","leftArrowBtn","galleryPosition","galleryEls","galleryCounter","supportsTouch","opts","imgCache","preloadedImages","appendEl","createEl","removeEl","getRect","ref","getBoundingClientRect","width","height","clientWidth","clientHeight","updateGallery","movement","galleryLength","loop","changeCSS","src","img","addToImgCache","bind","complete","changeGalleryImage","onload","onerror","error","activeEl","alert","oldimg","innerHTML","toggleCaption","updateIframeDimensions","windowHeight","windowWidth","innerWidth","windowAspect","dimensions","dimensionWidth","dimensionHeight","iframeAspect","cssText","checkMedia","errMsg","open","play","toggleLoadingIcon","bool","noLoader","parentElement","url","push","err","removeContainer","onError","close","target","clickEls","blur","body","images","onClose","newStyle","source","startX","createCloseButton","className","createArrowSymbol","direction","onclick","stopPropagation","head","ontouchstart","changedTouches","pageX","ontouchmove","preventDefault","ontouchend","distX","controls","allow","keyCode","contains","focus","initialize","ytSrc","vimeoSrc","gallery","galleryAttribute","isArray","elIndex","makeGallery","iframeSrc","prefix","suffix","ytNoCookie","createIframe","audio","vidSrc","cloneNode","type","match","getComputedStyle","backgroundImage","next","prev","bottom","right","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","nodeName","toLowerCase","getWindow","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","name","enabled","phase","fn","_ref","state","keys","elements","styles","attributes","effect","_ref2","initialStyles","strategy","margin","arrow","property","attribute","requires","getBasePlacement","includeScale","rect","getLayoutRect","clientRect","offsetWidth","abs","parent","child","rootNode","getRootNode","isSameNode","parentNode","host","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","round","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","len","padding","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","_ref3","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","update","removeEventListener","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","pageXOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","_element$ownerDocumen","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","sort","computeAutoPlacement","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","set","_loop","_i","fittingPlacement","find","get","reset","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scaleX","scaleY","isElementScaled","order","modifiers","visited","Set","result","modifier","dep","has","depModifier","DEFAULT_OPTIONS","areValidElements","_len","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","orderModifiers","merged","current","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","index","_state$orderedModifie","_state$orderedModifie2","Promise","resolve","then","undefined","destroy","onFirstUpdate","createPopper","eventListeners","TRANSITION_END","getSelector","selector","hrefAttr","includes","startsWith","trim","getSelectorFromElement","getElementFromSelector","triggerTransitionEnd","Event","obj","jquery","nodeType","getElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","RegExp","toUpperCase","isVisible","getClientRects","getPropertyValue","isDisabled","Node","ELEMENT_NODE","disabled","hasAttribute","findShadowRoot","attachShadow","root","noop","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","isRTL","dir","defineJQueryPlugin","plugin","callback","NAME","JQUERY_NO_CONFLICT","jQueryInterface","Constructor","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","handler","getNextActiveElement","activeElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","uid","getEvent","findHandler","events","delegationSelector","uidEventList","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","relatedTarget","delegateTarget","handlers","previousFn","domElements","EventHandler","off","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","on","one","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","trigger","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","initEvent","cancelable","elementMap","Data","instanceMap","size","from","delete","BaseComponent","constructor","_element","DATA_KEY","dispose","EVENT_KEY","getOwnPropertyNames","propertyName","_queueCallback","isAnimated","static","getInstance","VERSION","Error","enableDismissTrigger","component","method","clickEvent","closest","getOrCreateInstance","Alert","_destroyElement","each","SELECTOR_DATA_TOGGLE$5","Button","toggle","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","charAt","getDataAttribute","SelectorEngine","findOne","matches","parents","ancestor","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","join","NAME$b","Default$a","interval","keyboard","slide","pause","wrap","touch","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLID","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","Default","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","to","activeIndex","_getItemIndex","_handleSwipe","absDeltax","_keydown","_addTouchEventListeners","hasPointerPenTouch","pointerType","clientX","touches","move","itemImg","_getItemByOrder","isNext","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","triggerSlidEvent","completeCallBack","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$a","DATA_KEY$9","Default$9","DefaultType$9","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activesData","actives","tempActiveData","elemActive","dimension","_getDimension","scrollSize","triggerArrayLength","selected","triggerArray","NAME$9","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","display","popperConfig","autoClose","DefaultType$8","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","DefaultType","getParentFromElement","_createPopper","_completeHide","referenceElement","_getPopperConfig","isDisplayStatic","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","_selectMenuItem","items","toggles","context","composedPath","isMenuTarget","isActive","getToggleButton","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","getWidth","documentWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","isOverflowing","Default$7","rootElement","clickCallback","DefaultType$7","NAME$8","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","createElement","append","Default$6","trapElement","autofocus","DefaultType$6","EVENT_KEY$7","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","shiftKey","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","_triggerBackdropTransition","_resetAdjustments","currentTarget","isModalOverflowing","isBodyOverflowing","paddingLeft","paddingRight","showEvent","allReadyOpen","NAME$5","Default$4","DefaultType$4","CLASS_NAME_SHOW$3","OPEN_SELECTOR","EVENT_HIDDEN$2","Offcanvas","visibility","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attributeName","nodeValue","regExp","attributeRegex","DefaultAllowlist","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","strong","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","NAME$4","DISALLOWED_ATTRIBUTES","DefaultType$3","animation","template","title","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","shadowRoot","isInTheDom","getTitle","tipId","floor","random","getElementById","getUID","attachment","_getAttachment","_addAttachmentClass","_resolvePossibleFunction","prevHoverState","_cleanTipClass","setContent","_sanitizeAndSetContent","content","templateElement","setElementContent","textContent","updateAttachment","_getDelegateConfig","_handlePopperPlacementChange","_getBasicClassPrefix","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","token","tClass","Default$2","DefaultType$2","Event$1","Popover","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LINK_ITEMS","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","listGroup","navItem","spy","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","listElement","itemSelector","hideEvent","active","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","_onInteraction","isInteracting","factory","modules","installedModules","moduleId","getter","Symbol","toStringTag","mode","__esModule","ns","create","object","__webpack_require__","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","mergeObject","destination","unused","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","array","deepmerge_1","__webpack_exports__","global","_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__","default","iterator","location","threshold","maxPatternLength","caseSensitive","tokenSeparator","findAllMatches","minMatchCharLength","shouldSort","getFn","sortFn","score","tokenize","matchAllTokens","includeMatches","includeScore","verbose","isCaseSensitive","setCollection","limit","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","results","_computeScore","_sort","_format","_analyze","record","resultMap","weight","arrayIndex","search","pattern","isMatch","output","matchedIndices","nScore","JSON","stringify","indices","log","patternAlphabet","errors","currentLocation","expectedLocation","lastIndexOf","symbolObservablePonyfill","observable","originalModule","webpackPolyfill","dist_fuse","fuse_default","cjs","cjs_default","es","randomString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listener","isSubscribed","splice","dispatch","listeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","unsubscribe","getUndefinedStateErrorMessage","actionType","String","tmpEl","defaultState","groups_defaultState","choices_defaultState","general_defaultState","loading","reducers_general","generateChars","getType","isType","sanitise","strToEl","str","cleanedInput","firldChild","firstChild","removeChild","sortByScore","cloneObject","parse","appReducer","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","errorMessage","combineReducers","choiceId","groupId","label","highlighted","customProperties","placeholder","groups","choices","elementId","activateOptions","choice","general","passedState","_defineProperties","props","descriptor","store_Store","Store","_store","__REDUX_DEVTOOLS_EXTENSION__","protoProps","staticProps","_proto","onChange","getChoiceById","activeChoices","getGroupById","group","selectableChoices","reverse","hasActiveOptions","dropdown_defineProperties","classNames","getChild","activeState","DEFAULT_CONFIG","silent","renderChoiceLimit","maxItemCount","addItems","addItemFilter","removeItems","removeItemButton","editItems","duplicateItemsAllowed","delimiter","paste","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSortItems","sorter","_ref$label","value2","_ref2$label","label2","localeCompare","sensitivity","ignorePunctuation","numeric","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","customAddItemText","addItemText","maxItemText","valueComparer","value1","fuseOptions","callbackOnInit","callbackOnCreateTemplates","containerOuter","containerInner","input","inputCloned","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","groupHeading","focusState","openState","disabledState","highlightedState","selectedState","flippedState","loadingState","noResults","noChoices","EVENTS","ACTION_TYPES","KEY_CODES","TEXT_TYPE","SELECT_ONE_TYPE","SELECT_MULTIPLE_TYPE","container_Container","Container","isFlipped","isFocussed","_onFocus","_onBlur","addEventListeners","removeEventListeners","shouldFlip","dropdownPos","matchMedia","setActiveDescendant","activeDescendantID","removeActiveDescendant","addFocusState","removeFocusState","wrapper","nextSibling","insertBefore","appendChild","utils_wrap","unwrap","addLoadingState","removeLoadingState","input_defineProperties","input_Input","Input","preventPaste","_onPaste","_onInput","clear","setWidth","_this$element","minWidth","list_List","List","scrollPos","hasChildren","hasChildNodes","scrollToTop","scrollToChildElement","_this","listHeight","listScrollPosition","elementHeight","elementPos","requestAnimationFrame","_animateScroll","_scrollDown","strength","_scrollUp","_this2","choiceListScrollTop","continueAnimation","wrapped_element_defineProperties","wrapped_element_WrappedElement","WrappedElement","HTMLInputElement","HTMLSelectElement","conceal","tabIndex","origStyle","reveal","triggerEvent","eventType","customArgs","wrapped_input_defineProperties","WrappedInput","_WrappedElement","subClass","superClass","__proto__","joinedValues","wrapped_select_defineProperties","WrappedSelect","appendDocFragment","fragment","getElementsByTagName","createDocumentFragment","optionData","option","TEMPLATES","isSelectElement","isSelectOneElement","passedElementType","_containerOuter","_containerInner","itemList","_placeholder","_ref5","_ref6","_item","isPlaceholder","deletable","REMOVE_ITEM_TEXT","removeButton","choiceList","_ref7","choiceGroup","_ref8","_ref9","_ref10","_ref11","selectText","isSelected","choiceDisabled","choiceSelectable","_ref12","_input","inp","autocomplete","autocapitalize","spellcheck","_ref13","notice","_ref14","classes","_ref15","opt","Option","choices_activateChoices","items_highlightItem","groups_addGroup","setIsLoading","choices_defineProperties","IS_IE11","USER_DEFAULTS","choices_Choices","Choices","userConfig","defaults","sourceArray","aKeys","bKeys","invalidConfigOptions","warn","passedElement","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","_templates","initialised","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","generateId","_direction","elementDirection","_idNames","_presetGroups","optionGroups","_presetOptions","_presetChoices","_presetItems","_render","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onAKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","preventExtensions","templates","_createTemplates","_createElements","_createStructure","_removeEventListeners","clearStore","highlightItem","runEvent","_item$groupId","_item$value","_item$label","groupValue","unhighlightItem","_item$groupId2","_item$value2","_item$label2","highlightAll","unhighlightAll","_this3","removeActiveItemsByValue","_this4","activeItems","_removeItem","removeActiveItems","excludedId","_this5","removeHighlightedItems","_this6","highlightedActiveItems","_triggerChange","showDropdown","preventInputFocus","_this7","distanceFromTopWindow","hideDropdown","preventInputBlur","_this8","getValue","valueOnly","values","selectedItems","itemValue","setValue","_this9","_setChoiceOrItem","setChoiceByValue","_this10","_findAndSelectChoiceByValue","setChoices","choicesArrayOrFetcher","replaceChoices","_this11","ReferenceError","clearChoices","fetcher","_handleLoadingState","catch","_startLoading","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","_stopLoading","clearInput","shouldSetInputWidth","_isSearching","stateChanged","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","_this12","_this$_store","activeGroups","choiceListFragment","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","childNodes","canAddItem","_canAddItem","response","_highlightChoice","_getTemplate","dropdownItem","itemListFragment","_createItemsFragment","_this13","groupChoices","getGroupChoices","dropdownGroup","withinGroup","_this14","_this$config","appendChoice","rendererableChoices","_rendererableChoices$","placeholderChoices","normalChoices","choiceLimit","sortedChoices","_this15","_this$config2","listItem","_selectPlaceholderChoice","placeholderChoice","_addItem","_handleButtonAction","itemId","itemToRemove","_handleItemAction","hasShiftKey","_this16","passedId","_handleChoiceAction","passedKeyCode","hasActiveDropdown","_handleBackspace","lastItem","hasHighlightedItems","setLoading","placeholderItem","_handleSearch","_this$config3","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","existsInArray","newValue","currentValue","haystack","searchableChoices","needle","choices_filterChoices","form","_keyDownActions","ctrlKey","metaKey","hasFocusedInput","hasItems","keyString","fromCharCode","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","hasCtrlDownKeyPressed","keyDownActions","backKey","deleteKey","outerHTML","userHasRemovedValue","canReactivateChoices","canSearch","enterKey","targetWasButton","highlightedChoice","downKey","pageUpKey","pageDownKey","nextEl","directionInt","selectableChoiceIdentifier","currentEl","startEl","prop","sibling","getAdjacentEl","firstChoice","firstElementChild","isOnScrollbar","offsetX","_focusActions","_this17","_this18","_blurActions","_this19","passedEl","_ref13$label","_ref13$choiceId","_ref13$groupId","_ref13$customProperti","_ref13$placeholder","_ref13$keyCode","passedValue","passedCustomProperties","passedLabel","passedOptionId","items_addItem","items_removeItem","_ref14$label","_ref14$isSelected","_ref14$isDisabled","_ref14$groupId","_ref14$customProperti","_ref14$placeholder","_ref14$keyCode","choiceLabel","choiceElementId","choices_addChoice","_this20","_ref15$valueKey","_ref15$labelKey","isOptDisabled","_this$_templates$temp","userTemplates","_addPredefinedGroups","_addPredefinedChoices","_addPredefinedItems","_this21","placeholderOption","_this22","hasSelectedChoice","firstEnabledChoiceIndex","findIndex","_this23","_this24","string","_this25","foundChoice","text","_this$config4","__assign","CountUp","endVal","version","startVal","decimalPlaces","useEasing","useGrouping","smartEasingThreshold","smartEasingAmount","separator","decimal","finalEndVal","countDown","paused","count","startTime","remaining","frameVal","easingFn","toFixed","printValue","rAF","formatNumber","numerals","easeOutExpo","pow","formattingFn","validateValue","resetDuration","determineDirectionAndSmartEasing","pauseResume","cancelAnimationFrame","ensureNumber","matchesMethod","ElemProto","matchesSelector","prefixes","__webpack_modules__","it","__unused_webpack_exports","isObject","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","unicode","ArrayBuffer","DataView","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","createNonEnumerableProperty","redefine","setPrototypeOf","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","klass","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","forced","exportTypedArrayStaticMethod","isView","redefineAll","fails","anInstance","toInteger","toLength","toIndex","IEEE754","arrayFill","setToStringTag","InternalStateModule","getInternalState","setInternalState","ARRAY_BUFFER","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","store","byteLength","bytes","byteOffset","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","copyWithin","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","step","mapfn","mapping","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","that","specificCreate","boundFunction","filterOut","nativeLastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","foo","argument","aFunction","IS_RIGHT","memo","originalArray","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyDescriptor","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","bitmap","toPrimitive","propertyKey","createIteratorConstructor","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","getBuiltIn","process","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","arg","path","variable","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","globalThis","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","Infinity","nBits","dummy","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","feature","detection","normalize","POLYFILL","NATIVE","MATCH","isRegExp","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","URL","searchParams","pathname","toJSON","href","URLSearchParams","username","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","alphabet","activeXDocument","defineProperties","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","temp","parentWindow","NullProtoObjectViaActiveX","contentWindow","Properties","__unused_webpack_module","IE8_DOM_DEFINE","nativeDefineProperty","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","names","nativePropertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","setter","CORRECT_SETTER","getOwnPropertyNamesModule","enforceInternalState","TEMPLATE","simple","re1","re2","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","RE","CONSTRUCTOR_NAME","TAG","SHARED","copyright","defaultConstructor","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","charCodeAt","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","counter","extra","ucs2decode","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","whitespaces","whitespace","ltrim","rtrim","integer","ceil","toPositiveInteger","BYTES","PREFERRED_STRING","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","checkCorrectnessOfIteration","iterable","speciesConstructor","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayBufferModule","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","$filter","$indexOf","nativeIndexOf","addToUnscopables","defineIterator","ARRAY_ITERATOR","iterated","kind","Arguments","$map","HAS_SPECIES_SUPPORT","nativeSlice","fin","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","FunctionPrototype","FunctionPrototypeToString","nameRE","nativeGetPrototypeOf","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","getSubstitution","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","accumulatedResult","nextSourcePosition","replacerArgs","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","$trim","forcedStringTrimMethod","$copyWithin","$every","$fill","fromSpeciesAndList","$findIndex","predicate","$find","$includes","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$reduceRight","$reduce","middle","$slice","$some","$sort","comparefn","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","createTypedArrayConstructor","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","USE_NATIVE_URL","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","serialize","encodeURIComponent","parseSearchParams","query","entry","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","updateURL","URLSearchParamsPrototype","getAll","found","entriesIndex","sliceIndex","fetch","headers","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","pop","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","__webpack_module_cache__","definition","_createForOfIteratorHelper","allowArrayLike","_arrayLikeToArray","_unsupportedIterableToArray","_e","normalCompletion","didErr","_e2","return","arr","arr2","Dropzone","dropzone_dist","Emitter","_classCallCheck","_callbacks","callbacks","_step","_iterator","makeEvent","eventName","options_createForOfIteratorHelper","options_arrayLikeToArray","options_unsupportedIterableToArray","src_options","withCredentials","timeout","parallelUploads","uploadMultiple","chunking","forceChunking","chunkSize","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","maxFiles","clickable","ignoreHiddenFiles","acceptedFiles","acceptedMimeTypes","autoProcessQueue","autoQueue","addRemoveLinks","previewsContainer","disablePreviews","hiddenInputContainer","renameFilename","renameFile","forceFallback","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictUploadCanceled","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","gb","mb","kb","files","xhr","chunk","dzuuid","upload","uuid","dzchunkindex","dztotalfilesize","dzchunksize","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","accept","chunksUploaded","fallback","messageElement","innerText","getFallbackForm","srcX","srcY","srcWidth","srcHeight","srcRatio","trgRatio","trgWidth","trgHeight","transformFile","resizeImage","previewTemplate","drop","dragstart","dragend","dragenter","dragover","dragleave","addedfile","previewElement","_step2","_iterator2","_step3","_iterator3","filesize","_removeLink","_step4","removeFileEvent","status","UPLOADING","confirm","removeFile","_iterator4","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","_step5","_iterator5","thumbnailElement","alt","message","_step6","_iterator6","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","_step7","_iterator7","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","emit","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_typeof","dropzone_createForOfIteratorHelper","dropzone_arrayLikeToArray","dropzone_unsupportedIterableToArray","dropzone_classCallCheck","dropzone_defineProperties","dropzone_createClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","_Emitter","_inherits","_super","clickableElements","dropzone","instances","elementOptions","optionsForElement","extend","isBrowserSupported","getExistingFallback","getElements","accepted","getFilesWithStatus","QUEUED","ADDED","setupHiddenFileInput","hiddenFileInput","addFile","webkitURL","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","noPropagation","dataTransfer","types","containsFiles","returnValue","efct","effectAllowed","dropEffect","clickableElement","elementInside","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","getActiveFiles","total","existingFallback","fieldsString","_getParamName","fields","getFallback","_arr","elementListeners","cancelUpload","setupEventListeners","selectedSize","selectedUnit","units","unit","getAcceptedFiles","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","isFile","getAsFile","isDirectory","_addFilesFromDirectory","directory","dirReader","createReader","errorHandler","methodName","readEntries","fullPath","isValidFile","uuidv4","filename","_renameFile","_enqueueThumbnail","_errorProcessing","enqueueFile","_step8","_iterator8","processQueue","_thumbnailQueue","_processThumbnailQueue","_processingThumbnail","createThumbnail","without","cancelIfNecessary","_step9","_iterator9","canvas","resizedDataURL","toDataURL","ExifRestore","restore","dataURL","dataURItoBlob","fixOrientation","fileReader","FileReader","createThumbnailFromUrl","readAsDataURL","mockFile","imageUrl","crossOrigin","resizeThumbnail","onDone","loadExif","EXIF","getData","getTag","orientation","resizeInfo","ctx","getContext","translate","scale","rotate","PI","drawImageIOSFix","trgX","trgY","processingLength","queuedFiles","processFiles","processFile","_step10","_iterator10","uploadFiles","_step11","groupedFiles","_getFilesWithXhr","_iterator11","CANCELED","abort","_step12","_iterator12","_groupedFile","_transformFiles","transformedFiles","transformedFile","chunked","_transformedFile","chunks","handleNextChunk","chunkIndex","dataBlock","webkitSlice","retries","_uploadData","finishedChunkUpload","allFinished","SUCCESS","_finished","dataBlocks","_i2","_step13","XMLHttpRequest","_iterator13","resolveOption","_finishedUploading","ontimeout","_handleUploadError","onprogress","_updateFilesUploadProgress","Accept","headerName","headerValue","setRequestHeader","formData","FormData","additionalParams","_getChunk","_step14","_iterator14","_file","_addFormElementData","_i3","submitRequest","doneCounter","_step15","_iterator15","inputName","inputType","_step16","_iterator16","checked","_file2","loaded","_step17","_iterator17","responseType","responseText","getResponseHeader","send","_step18","_iterator18","_step19","_iterator19","ERROR","_len2","objects","_key2","_i4","_objects","initClass","camelize","forElement","autoDiscover","discover","dropzones","checkElements","_step20","_iterator20","_step21","_iterator21","blockedBrowsers","capableBrowser","File","Blob","blacklistedBrowsers","_step22","_iterator22","dataURI","byteString","mimeString","ab","ia","asc","rejectedItem","els","_step23","_iterator23","_step24","_iterator24","question","rejected","_step25","mimeType","baseMimeType","_iterator25","validType","ACCEPTED","PROCESSING","sx","sy","sw","sh","dx","dy","dw","dh","vertSquashRatio","naturalWidth","ih","naturalHeight","drawImage","getImageData","ey","py","ratio","detectVerticalSquash","KEY_STR","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","image","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","seg","imageData","buf","separatePoint","mae","ato","rawImageArray","endPoint","_autoDiscoverFunction","doc","rem","createEventObject","doScroll","frameElement","poll","contentLoaded","EvEmitter","_events","onceEvents","_onceEvents","emitEvent","onceListeners","allOff","utils","num","arraySlice","makeArray","removeFrom","ary","getParent","getQueryElement","handleEvent","filterFindElements","elems","ffElems","childElems","debounceMethod","_class","timeoutName","docReady","toDashed","$1","$2","htmlInit","WidgetClass","dashedNamespace","dataAttrElems","jsDashElems","dataOptionsAttr","attr","Flickity","createMethods","lerp","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","isInstant","selectedCell","selectedCells","firstIndex","cells","selectIndex","cellAlign","selectCell","removeNavSelectedElements","navSelectedElements","cell","changeNavSelectedClass","navElem","cellElement","cellIndex","Slide","slideUpdateTarget","updateTarget","fade","slideTargetX","firstCellX","targetX","renderPosition","setOpacity","alpha","opacity","_createFade","fadeIndex","selectedIndex","prevSelectedIndex","onSelectFade","onDragEndFade","onSettleFade","onActivateFade","onDeactivateFade","updateSlides","slides","didDragEnd","selectedSlide","positionSlider","fadeSlides","dispatchScrollEvent","positionSliderAtSelected","setTranslateX","indexes","getFadeIndexes","fadeSlideA","fadeSlideB","wrapDifference","fadeHideIndex","isDragging","wrapAround","getFadeDragWrapIndexes","getFadeDragLimitIndexes","distances","getSlideDistance","absDistances","minDistance","closestIndex","modulo","dragIndex","diff","diffPlus","slideableWidth","diffMinus","_getWrapShiftCells","shiftWrapCells","imagesLoaded","_createImagesLoaded","slider","onImagesLoadedProgress","getParentCell","cellSizeChange","freeScroll","getCellsFragment","insert","_makeCells","isAppend","insertCellElement","endCells","_sizeCells","cellChange","prepend","getCells","minCellIndex","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","setGallerySize","getCellSlideIndex","select","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","settle","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","firstSlide","positionX","slidesWidth","velocity","percentPosition","isPointerDown","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Cell","unselect","originSide","setPosition","setDefaultTarget","marginProperty","Unidragger","draggable","dragThreshold","_touchActionValue","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","bindHandles","unbindHandles","bindDrag","unbindDrag","pointerDown","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageY","_bindPostStartEvents","focusNodes","INPUT","TEXTAREA","SELECT","isTouchStart","isTouchPointer","isFocusNode","hasDragStarted","moveVector","pointerUp","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","startAnimation","pointerMove","_dragPointerMove","_dragMove","dragMove","previousDragX","originBound","endBound","getLastSlide","dragMoveTime","dragEnd","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","positiveResting","_getClosestResting","negativeResting","increment","condition","dist","minDist","isWrapAround","staticClick","clickedCell","cellElem","onscroll","scrollMoveX","scrollMoveY","_pointerDone","animatePrototype","moveElements","toElem","GUID","queryElement","flickityGUID","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","guid","_createSlider","watchCSS","_filterFindCellElements","reloadCells","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","cellX","startCell","outerHeight","_containSlides","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","percentMatch","percent","_init","reposition","setCellAlign","cellAlignShorthands","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","emitArgs","$event","jQEvent","isWrap","_wrapSelect","prevIndex","wrapIndex","backWrapDelta","forewardWrapDelta","unselectSelectedSlide","selectedElements","getCellElements","initialIndex","queryCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","onkeydown","isNotFocused","keyboardHandlers","leftMethod","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","getCellLazyImages","lazyloadAttr","srcAttr","srcsetAttr","lazySelector","imgs","LazyLoader","flickity","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","srcset","Unipointer","PageDots","holder","dots","handleClick","onClick","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","tick","time","autoPlay","stop","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","svgURI","PrevNextButton","getArrowMovements","shape","x0","x1","y1","x2","y2","x3","isEnabled","isPrevious","leftDirection","isLeft","svg","createSVG","createElementNS","pathMovements","arrowShape","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","isOriginLeft","lastCell","lastMargin","getStyleSize","logError","measurements","measurementsLength","getZeroSize","getStyle","isBoxSizeOuter","isSetup","setup","borderStyle","borderWidth","boxSizing","isBorderBox","measurement","paddingWidth","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","deepFreeze","freeze","isFrozen","deepFreezeEs6","_default","Response","isMatchIgnored","ignoreMatch","escapeHTML","inherit","original","emitsWrappingTags","HTMLRenderer","parseTree","classPrefix","walk","addText","openNode","sublanguage","closeNode","TokenTree","stack","closeAllNodes","builder","_walk","_collapse","TokenTreeEmitter","addKeyword","addSublanguage","emitter","toHTML","finalize","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","relevance","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","resp","END_SAME_AS_BEGIN","_beginMatch","skipIfhasPrecedingDot","beginKeywords","__beforeBegin","keywords","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keywordList","keyword","pair","scoreForKeyword","providedScore","commonKeyword","compileLanguage","language","plugins","langRe","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","countMatchGroups","compile","terminators","matcherRe","regexps","numCaptures","regex","matchData","ResumableMultiRegex","rules","multiRegexes","regexIndex","getMatcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","ext","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","variants","cachedVariants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","BuildVuePlugin","hljs","Component","detectedLanguage","unknownLanguage","computed","autoDetect","getLanguage","highlightAuto","highlight","ignoreIllegals","autodetect","render","class","domProps","VuePlugin","install","Vue","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","stream","mergeStreams","_nodeStream","seenDeprecations","deprecated","escape$1","inherit$1","NO_MATCH","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","codeOrlanguageName","optionsOrCode","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","keywordRelevance","cssClass","processKeywords","startNewMode","endOfMode","matchPlusRemainder","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","skip","excludeBegin","returnBegin","doEndMatch","endMode","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","badRule","iterations","md","processContinuations","processedCount","illegalBy","msg","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","autoDetection","sorted","supersetOf","best","secondBest","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","block","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","wantsHighlight","registerAliases","aliasList","alias","lang","fixMarkup","highlightBlock","configure","userOptions","initHighlightingOnLoad","registerLanguage","languageDefinition","error$1","rawDefinition","unregisterLanguage","listLanguages","requireLanguage","addPlugin","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","KEYWORDS","LITERALS","BUILT_INS","lookahead","IDENT_RE$1","XML_TAG","isTrulyOpeningTag","afterMatchIndex","nextChar","after","hasClosingTag","KEYWORDS$1","literal","built_in","frac","decimalInteger","NUMBER","SUBST","HTML_TEMPLATE","CSS_TEMPLATE","TEMPLATE_STRING","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","TAG_NAME_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","ImagesLoaded","onAlways","queryElem","getImages","jqDeferred","Deferred","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","LoadingImage","Background","Image","reURL","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","notify","debug","isComplete","jqMethod","getIsImageComplete","proxyImage","unbindEvents","makeJQueryPlugin","promise","Outlayer","Item","LayoutMode","Isotope","layoutMode","isJQueryFiltering","sortAscending","itemGUID","_sorters","_getSorters","modes","filteredItems","sortHistory","_initLayoutMode","reloadItems","_itemize","_updateItemsSortData","Mode","initialOpts","layout","_isLayoutInited","_getOption","_layout","arrange","_getIsInstant","_resetLayout","_manageStamps","layoutItems","filtered","_filter","_bindArrangeComplete","_isInstant","_noTransition","_hideReveal","needReveal","needHide","isLayoutInstant","isLayoutComplete","isHideComplete","isRevealComplete","arrangeParallelCallback","hiddenMatched","visibleUnmatched","_getFilterTest","isIgnored","isMatched","isHidden","is","updateSortData","getItems","getSortData","mungeSorter","attrMatch","getValueGetter","parser","sortDataParsers","getItemSorter","sortBys","sortAsc","itemA","itemB","sortBy","sortData","_getIsSameSortBy","itemSorter","_mode","_getItemLayoutPosition","_manageStamp","stamp","_getContainerSize","needsResizeLayout","appended","_filterRevealAdded","prepended","filteredInsertItems","_remove","shuffle","getFilteredItemElements","sorters","_destroy","isotope","needsVerticalResizeLayout","_getMeasurement","getColumnWidth","getSegmentSize","getRowHeight","segmentName","outerSize","firstItemSize","getFirstItemSize","firstItem","FitRows","maxY","itemWidth","gutter","containerWidth","Masonry","MasonryMode","keepModeMethods","_getElementOffset","measureColumns","isFitWidth","fitWidth","Vertical","horizontalAlignment","jarallax","jarallaxVideo","jarallaxElement","Jarallax","def","$item","pureOptions","speed","speedArr","speedY","speedX","thresholdArr","thresholdY","thresholdX","originalStylesTag","defTransform","itemData","getWindowData","wnd","centerPercent","moveY","moveX","my","mx","doneCallbacks","failCallbacks","reject","fail","ID","YoutubeAPIadded","VimeoAPIadded","loadingYoutubePlayer","loadingVimeoPlayer","loadingYoutubeDefer","loadingVimeoDefer","VideoWorker","options_default","autoplay","mute","volume","showControls","accessibilityHidden","endTime","showContols","videoID","loadAPI","Youtube","ytUrl","getYoutubeID","Vimeo","vmUrl","getVimeoID","Local","locUrl","videoFormats","getLocalVideos","isValid","userEventsList","playVideo","seekTo","getPlayerState","setCurrentTime","getPaused","currentTime","pauseVideo","setVolume","$video","muted","unmute","unMute","getVolume","getMuted","isMuted","getImageURL","videoImage","availableSizes","tempImg","request","onreadystatechange","thumbnail_large","getIframe","getVideo","onAPIready","hiddenDiv","ytStarted","ytProgressInterval","playerOptions","videoId","playerVars","rel","playsinline","iv_load_policy","modestbranding","showinfo","disablekb","onReady","secondsOffset","getDuration","onStateChange","getCurrentTime","firstInit","playerID","videoWidth","videoHeight","dnt","autopause","transparent","badge","byline","portrait","playerOptionsString","vmStarted","getVideoWidth","getVideoHeight","seconds","locStarted","addSourceToLocal","onYouTubeIframeAPIReady","vimeoInterval","defOnScroll","onScroll","isVideoInserted","video","videoLazyLoading","isElementInViewport","disableVideo","$parent","maxWidth","maxHeight","pointerEvents","transformStyle","backfaceVisibility","zIndex","$container","defCoverImage","coverImage","ml","mt","defInitImg","initImg","defaultResult","videoSrc","defaultInitImgResult","defCanInitParallax","canInitParallax","videoLoop","videoStartTime","videoEndTime","videoVolume","resetDefaultImage","$default_item","clipContainer","disableParallax","videoPlayOnlyVisible","oldOnScroll","videoError","videoEnded","bgImage","curStyle","defDestroy","isIE","isMobile","supportTransform","$deviceHelper","wndH","updateWndVars","jarallaxList","updateParallax","oldData","newData","wndW","isResized","isScrolled","onResize","instanceID","imgElement","imgSize","imgPosition","imgRepeat","keepImg","elementInViewport","onInit","onDestroy","onCoverImage","dataOptions","pureDataOptions","loweCaseOption","disableParallaxRegexp","disableVideoRegexp","elementInVP","useImgTag","$imgElement","$itemParent","containerStyles","imageStyles","curImgStyle","$parents","getParents","parentTransform","addToParallaxList","removeFromParallaxList","originalStylesImgTag","$clipStyles","styleSheet","contH","isScroll","scrollDist","resultH","resultMT","parallaxScrollDistance","contT","viewportRect","beforeTop","beforeTopEnd","afterTop","beforeBottom","beforeBottomEnd","afterBottom","fromViewportCenter","visiblePercent","positionY","section","ret","attachEvent","compatOptions","colYs","cols","horizontalColIndex","getContainerWidth","columnWidth","firstItemElem","excess","remainder","colSpan","colPosition","horizontalOrder","setHeight","setMax","_getTopColPosition","colGroup","_getTopColGroup","minimumY","groupCount","_getColGroupY","groupColYs","_getHorizontalColPosition","hasSize","stampSize","firstX","lastX","firstCol","lastCol","stampMaxY","_getContainerFitWidth","unusedCols","previousWidth","isEmptyObj","docElemStyle","transitionProperty","transition","transformProperty","transitionEndEvent","WebkitTransition","vendorProperties","toDashedAll","_transn","ingProperties","clean","onEnd","elemStyle","getPosition","isOriginTop","xValue","yValue","layoutSize","layoutPosition","xPadding","xProperty","xResetProperty","getXValue","yPadding","yProperty","yResetProperty","getYValue","isHorizontal","_transitionTo","curX","curY","didNotMove","transX","transY","transitionStyle","getTranslate","onTransitionEnd","isCleaning","goTo","moveTo","_nonTransition","_removeStyles","_transition","enableTransition","transitionProps","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","dashedVendorProperties","disableTransition","removeTransitionStyles","cleanStyle","cleanTransitionStyle","stagger","removeElem","getHideRevealTransitionEndProperty","onRevealTransitionEnd","hiddenStyle","visibleStyle","styleProperty","optionStyle","onHideTransitionEnd","outlayerGUID","containerStyle","initLayout","originLeft","originTop","resizeContainer","subclass","Parent","SubClass","oldOption","horizontal","layoutInstant","stamps","bindResize","itemElems","_filterFindItemElements","getItemElements","_getItemsForLayout","_layoutItems","_postLayout","_emitCompleteOnItems","queue","_processLayoutQueue","updateStagger","_positionItem","getMilliseconds","_setContainerMeasure","measure","isWidth","elemSize","onComplete","doneCount","ignore","getItem","unignore","_find","unstamp","_getBoundingRect","boundingRect","_boundingRect","thisRect","isResizeBound","unbindResize","previousItems","revealItemElements","hideItemElements","Layout","msUnits","ms","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","register","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","extendStatics","__extends","__","ParchmentError","tags","scope","ANY","TEXT_NODE","LEVEL","BLOCK","INLINE","BlotClass","bubble","blot","Definitions","Definition","blotName","attrName","keyName","tagNames","equal","op","NULL_CHARACTER","Delta","ops","newOp","retain","lastOp","chop","partition","failed","initial","changeLength","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","priority","transformPosition","nextType","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copy","copyIsArray","deep","BlockEmbed","bubbleFormats","_createClass","_get","receiver","desc","_extend2","_interopRequireDefault","_quillDelta2","_parchment2","_break2","_inline2","_text2","_Parchment$Embed","domNode","formats","BLOCK_ATTRIBUTE","format","endsWith","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","tail","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","_n","_d","_s","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","_defineProperty","Quill","__quill","addContainer","scrollingContainer","whitelist","editor","selection","theme","addModule","clipboard","history","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","contents","convert","setContents","readOnly","level","imports","overwrite","refNode","setRange","_overload","_overload2","deleteText","scrollIntoView","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","insertEmbed","_overload11","_overload12","insertText","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","deleted","applied","applyDelta","_overload15","_overload16","Range","USER","DEFAULTS","import","themeConfig","moduleConfig","moduleClass","toolbar","strict","oldDelta","shiftRange","_emitter","_emitter2","_map","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","_node$__quill$emitter","handleDOM","_EventEmitter","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","logger","newLevel","pSlice","isArguments","deepEqual","actual","expected","getTime","isUndefinedOrNull","isBuffer","ka","objEquiv","attributeBit","ATTRIBUTE","canAdd","Code","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","optimize","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","_toConsumableArray","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","nativeRange","collapsed","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","rangeCount","getRangeAt","normalizeNative","normalizedToRange","positions","_position","startContainer","endContainer","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","insertInto","targetParent","inclusive","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","attrs","allPropertyNames","__objToStr","clonePrototype","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","getLines","takeRecords","SHORTKEY","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","altKey","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","binding","which","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","makeEmbedArrowHandler","where","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","_inline","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","togglePicker","escape","selectItem","buildItem","buildLabel","buildOptions","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","undo","redo","dest","changeDelta","undoDelta","timestamp","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","pickers","picker","extendToolbar","buttons","icons","selects","fillSelect","align","formula","edit","fileInput","reader","_Tooltip","boundsContainer","save","preview","linkRange","restoreFocus","defaultValue","LinkedList","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","ScrollBlot","disconnect","records","mark","markParent","previousSibling","grandChild","InlineBlot","obj1","obj2","isEqual","BlockBlot","EmbedBlot","splitText","_toggle","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","k2_offset","diff_bisectSplit_","k2","diff_bisect_","diff_compute_","diff_cleanupMerge","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","fix_emoji","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","count_delete","count_insert","text_delete","text_insert","changes","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","Events","EE","EventEmitter","_eventsCount","eventNames","exists","available","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","fontStyle","computeStyle","italic","fontWeight","bold","applyFormat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","_pair","endText","childrenDelta","nodeHeight","whiteSpace","collapse","Bold","addControls","Toolbar","_ret","_this$quill$selection","_quill$selection$getR","prompt","addButton","control","addSelect","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","cachedText","Syntax","timer","BubbleTooltip","BubbleTheme","lastLine","_bounds","topOnEmptyHash","speedAsDuration","durationMax","durationMin","clip","customEasing","popstate","emitEvents","InvalidCharacterError","outline","cancelScroll","pushState","smoothScroll","replaceState","animateScroll","_initializerJs","_htmlParserJs","Typed","initializer","typingComplete","toggleBlinking","onStop","arrayPos","typewrite","curString","curStrPos","backspace","onStart","restart","replaceText","strPos","curLoop","insertCursor","onReset","onBegin","shuffleStringsIfNeeded","bindInputFocusEvents","bindFocusEvents","currentElContent","startDelay","fadeOut","fadeOutClass","humanize","humanizer","typeSpeed","numChars","htmlParser","typeHtmlChars","pauseTime","temporaryPause","onTypingPaused","stringBeforeSkip","stringSkipped","stringAfterSkip","doneTyping","keepTyping","onTypingResumed","setPauseStatus","preStringTyped","nextString","onStringTyped","loopCount","backDelay","initFadeOut","backSpeed","backSpaceHtmlChars","curStringAtPosition","smartBackspace","stopNum","onLastStringBackspaced","isTyping","isBlinking","cursorBlinking","fadeOutDelay","isInput","contentType","showCursor","cursorChar","_extends","_defaultsJs","_defaultsJs2","Initializer","elContent","isPaused","stringsElement","stringsLength","stringEl","getCurrentElContent","autoInsertCss","appendAnimationCss","cssDataName","innerCss","HTMLParser","curChar","endTag","_bindHandles","isAdd","bindMethod","touchAction","handle","_bindStartEvent","cursorNodes","OPTION","clickTypes","radio","checkbox","submit","isCursorNode","isClickType","isOkay","_pointerReset","focused","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","onpointerdown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","onmouseup","_pointerUp","onpointerup","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel"],"sourceRoot":""}