j1-template 2021.3.2 → 2022.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +4 -4
  3. data/_includes/themes/j1/layouts/content_generator_post.html +3 -3
  4. data/_includes/themes/j1/modules/navigator/generator.html +9 -11
  5. data/_includes/themes/j1/modules/search/docsearch.html +1 -1
  6. data/_includes/themes/j1/procedures/global/create_bs_button.proc +5 -5
  7. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +3 -1
  8. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  9. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  10. data/_layouts/default.html +66 -22
  11. data/_layouts/home.html +1 -1
  12. data/_layouts/raw.html +2 -1
  13. data/assets/data/article_navigator/index.html +1 -1
  14. data/assets/data/banner.html +6 -12
  15. data/assets/data/cookieconsent.html +11 -11
  16. data/assets/data/{fam.html → fab.html} +41 -24
  17. data/assets/data/gallery_customizer.html +2 -2
  18. data/assets/data/panel.html +12 -18
  19. data/assets/data/private.json +5 -1
  20. data/assets/data/quicklinks.html +4 -5
  21. data/assets/data/themes.bootswatch.json +75 -0
  22. data/assets/data/themes.json +6 -6
  23. data/assets/data/translator.html +15 -15
  24. data/assets/error_pages/HTTP445.html +110 -0
  25. data/assets/themes/j1/adapter/js/bmd.js +1 -1
  26. data/assets/themes/j1/adapter/js/cookieConsent.js +7 -1
  27. data/assets/themes/j1/adapter/js/{fam.js → fab.js} +114 -111
  28. data/assets/themes/j1/adapter/js/j1.js +202 -142
  29. data/assets/themes/j1/adapter/js/mmenu.js +18 -24
  30. data/assets/themes/j1/adapter/js/navigator.js +3 -1
  31. data/assets/themes/j1/adapter/js/toccer.js +37 -76
  32. data/assets/themes/j1/adapter/js/translator.js +6 -0
  33. data/assets/themes/j1/core/country-flags/css/theme/uno.min.css +15 -0
  34. data/assets/themes/j1/core/css/icon-fonts/mdi.css +22307 -0
  35. data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -0
  36. data/assets/themes/j1/core/css/icon-fonts/mdil.css +1222 -0
  37. data/assets/themes/j1/core/css/icon-fonts/mdil.min.css +1 -0
  38. data/assets/themes/j1/core/css/icon-fonts/twemoji.css +4 -0
  39. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +5341 -4730
  40. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -1
  41. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +8301 -0
  42. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +3 -0
  43. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +5293 -4702
  44. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +3 -1
  45. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +11929 -12546
  46. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +18 -18
  47. data/assets/themes/j1/core/css/vendor.css +2 -28
  48. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  49. data/assets/themes/j1/core/js/template.js +41 -27
  50. data/assets/themes/j1/core/js/template.min.js +5 -5
  51. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  52. data/assets/themes/j1/modules/bmd/js/bmd.js +2280 -0
  53. data/assets/themes/j1/modules/bmd/js/bmd.min.js +20 -0
  54. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +5072 -0
  55. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +7 -0
  56. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +1 -0
  57. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +19 -17
  58. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  59. data/assets/themes/j1/modules/{fam/css/theme/uno/fam.css → fab/css/theme/uno/fab.css} +32 -28
  60. data/assets/themes/j1/modules/{fam/css/theme/uno/fam.min.css → fab/css/theme/uno/fab.min.css} +3 -3
  61. data/assets/themes/j1/modules/{materialize → fab}/js/cash.js +20 -2
  62. data/assets/themes/j1/modules/{fam/js/fam.js → fab/js/fab.js} +4 -2
  63. data/assets/themes/j1/modules/{util → gtag-opt-in}/js/gtag-opt-in.js +15 -1
  64. data/assets/themes/j1/modules/gtag-opt-in/js/gtag-opt-in.min.js +15 -0
  65. data/assets/themes/j1/modules/lightGallery/js/modules/lg-thumbnail.min.js +4 -1
  66. data/assets/themes/j1/modules/materialize/js/bin/materialize.js +12374 -0
  67. data/assets/themes/j1/modules/materialize/js/bin/materialize.min.js +6 -0
  68. data/assets/themes/j1/modules/materialize/js/{tapTarget.js → tapTarget.cash.js} +0 -0
  69. data/assets/themes/j1/modules/materialize/js/tapTarget.jQuery.js +187 -0
  70. data/assets/themes/j1/modules/popper/js/popper.js +1670 -2346
  71. data/assets/themes/j1/modules/popper/js/popper.min.js +6 -4
  72. data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -1
  73. data/assets/themes/j1/modules/translator/js/translator.js +6 -2
  74. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  75. data/lib/j1/version.rb +1 -1
  76. data/lib/starter_web/Gemfile +1 -1
  77. data/lib/starter_web/_config.yml +21 -24
  78. data/lib/starter_web/_data/blocks/banner.yml +22 -7
  79. data/lib/starter_web/_data/blocks/panel.yml +2 -2
  80. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +42 -35
  81. data/lib/starter_web/_data/j1_config.yml +1 -1
  82. data/lib/starter_web/_data/layouts/article_navigator.yml +1 -1
  83. data/lib/starter_web/_data/layouts/blog_archive.yml +1 -1
  84. data/lib/starter_web/_data/layouts/collection.yml +1 -1
  85. data/lib/starter_web/_data/layouts/home.yml +5 -5
  86. data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -1
  87. data/lib/starter_web/_data/layouts/page.yml +1 -1
  88. data/lib/starter_web/_data/layouts/post.yml +1 -1
  89. data/lib/starter_web/_data/modules/defaults/{fam.yml → fab.yml} +8 -7
  90. data/lib/starter_web/_data/modules/defaults/navigator.yml +3 -0
  91. data/lib/starter_web/_data/modules/defaults/rtable.yml +2 -1
  92. data/lib/starter_web/_data/modules/defaults/scoller.yml +33 -0
  93. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -1
  94. data/lib/starter_web/_data/modules/defaults/toccer.yml +5 -4
  95. data/lib/starter_web/_data/modules/{fam.yml → fab.yml} +31 -31
  96. data/lib/starter_web/_data/modules/scroller.yml +2 -2
  97. data/lib/starter_web/_data/modules/toccer.yml +3 -5
  98. data/lib/starter_web/_data/resources.yml +45 -31
  99. data/lib/starter_web/_includes/attributes.asciidoc +48 -48
  100. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  101. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +1 -4
  102. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +2 -2
  103. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -2
  104. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +2 -2
  105. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -1
  106. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -1
  107. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +2 -2
  108. data/lib/starter_web/index.html +1 -1
  109. data/lib/starter_web/package.json +1 -1
  110. data/lib/starter_web/pages/_test_pages/100_side-bar-tester.adoc +244 -0
  111. data/lib/starter_web/pages/_test_pages/_includes/attributes.asciidoc +110 -0
  112. data/lib/starter_web/pages/_test_pages/_includes/documents/100_gistblock.asciidoc +28 -0
  113. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_info.asciidoc +14 -0
  114. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  115. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  116. data/lib/starter_web/pages/_test_pages/_includes/documents/410_central_success.asciidoc +11 -0
  117. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_left_info.asciidoc +11 -0
  118. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_right_success.asciidoc +11 -0
  119. data/lib/starter_web/pages/_test_pages/_includes/documents/410_table_bs_modal_examples.asciidoc +47 -0
  120. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_info.asciidoc +11 -0
  121. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_left_info.asciidoc +11 -0
  122. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_right_success.asciidoc +11 -0
  123. data/lib/starter_web/pages/_test_pages/_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  124. data/lib/starter_web/pages/_test_pages/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  125. data/lib/starter_web/pages/_test_pages/accordion-01-tester.adoc +220 -0
  126. data/lib/starter_web/pages/_test_pages/accordion-02-tester.adoc +177 -0
  127. data/lib/starter_web/pages/_test_pages/accordion-03-tester.adoc +148 -0
  128. data/lib/starter_web/pages/_test_pages/attribute-changes-01-tester.adoc +226 -0
  129. data/lib/starter_web/pages/_test_pages/backdrop-tester.adoc +109 -0
  130. data/lib/starter_web/pages/_test_pages/button-tester-1.adoc +127 -0
  131. data/lib/starter_web/pages/_test_pages/card-tester.adoc +128 -0
  132. data/lib/starter_web/pages/_test_pages/cookieConsent.adoc +96 -0
  133. data/lib/starter_web/pages/_test_pages/deepl.0.adoc +258 -0
  134. data/lib/starter_web/pages/_test_pages/deepl.adoc +204 -0
  135. data/lib/starter_web/pages/_test_pages/desandro-button.adoc +171 -0
  136. data/lib/starter_web/pages/_test_pages/desandro.adoc +147 -0
  137. data/lib/starter_web/pages/_test_pages/flipcard-1-tester.adoc +308 -0
  138. data/lib/starter_web/pages/_test_pages/formular-01-tester.adoc +167 -0
  139. data/lib/starter_web/pages/_test_pages/formular-02-tester.adoc +727 -0
  140. data/lib/starter_web/pages/_test_pages/google-translate-tester.0.adoc +113 -0
  141. data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +233 -0
  142. data/lib/starter_web/pages/_test_pages/google-translate-tester.3.adoc +149 -0
  143. data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +239 -0
  144. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-2.adoc +183 -0
  145. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-3.adoc +235 -0
  146. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-4.adoc +222 -0
  147. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-5.adoc +119 -0
  148. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.1.adoc +236 -0
  149. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.adoc +225 -0
  150. data/lib/starter_web/pages/_test_pages/list-group-tester.adoc +265 -0
  151. data/lib/starter_web/pages/_test_pages/tictok.adoc +127 -0
  152. data/lib/starter_web/pages/public/about/about_site.adoc +1 -1
  153. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
  154. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
  155. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
  156. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.a2p +1 -1
  157. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  158. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  159. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  160. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +5 -5
  161. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +3 -3
  162. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +3 -3
  163. data/lib/starter_web/pages/public/blog/navigator/archive.html +3 -3
  164. data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
  165. data/lib/starter_web/pages/public/learn/quickstart.adoc +2 -2
  166. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  167. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
  168. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  169. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
  170. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
  171. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +2 -2
  172. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
  173. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +2 -2
  174. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +13 -11
  175. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
  176. data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -2
  177. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +2 -2
  178. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +2 -2
  179. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +2 -2
  180. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +2 -2
  181. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +2 -2
  182. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +2 -2
  183. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -2
  184. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -2
  185. data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +1 -1
  186. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +2 -2
  187. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1578 -666
  188. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  189. data/lib/starter_web/utilsrv/package.json +1 -1
  190. metadata +73 -20
  191. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.css +0 -12177
  192. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.min.css +0 -8
  193. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.full.js +0 -6930
  194. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +0 -6936
  195. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js.map +0 -1
  196. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.min.js +0 -1
  197. data/assets/themes/j1/modules/popper/js/popper.js.map +0 -1
  198. data/assets/themes/j1/modules/util/js/domready.js +0 -146
@@ -1 +0,0 @@
1
- (function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["jquery","popper.js"],t):(e=e||self,t(e.jQuery,e.Popper))})(this,function(e,t){'use strict';var f=Math.max;function n(e){return{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()}function o(){return{bindType:u,delegateType:u,handle(t){return e(t.target).is(this)?t.handleObj.handler.apply(this,arguments):void 0}}}function a(t){let n=!1;return e(this).one(_.TRANSITION_END,()=>{n=!0}),setTimeout(()=>{n||_.triggerTransitionEnd(this)},t),this}function r(){e.fn.emulateTransitionEnd=a,e.event.special[_.TRANSITION_END]=o()}function i(e,t){const n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===se.indexOf(n)||!!(e.nodeValue.match(fe)||e.nodeValue.match(ue));const o=t.filter(e=>e instanceof RegExp);for(let a=0,r=o.length;a<r;a++)if(n.match(o[a]))return!0;return!1}function l(e,t,n){if(0===e.length)return e;if(n&&"function"==typeof n)return n(e);const o=new window.DOMParser,a=o.parseFromString(e,"text/html"),r=Object.keys(t),l=[].slice.call(a.body.querySelectorAll("*"));for(let o=0,a=l.length;o<a;o++){const e=l[o],n=e.nodeName.toLowerCase();if(-1===r.indexOf(e.nodeName.toLowerCase())){e.parentNode.removeChild(e);continue}const a=[].slice.call(e.attributes),d=[].concat(t["*"]||[],t[n]||[]);a.forEach(t=>{i(t,d)||e.removeAttribute(t.nodeName)})}return a.body.innerHTML}function d(e,t){for(var n,o=0;o<t.length;o++)n=t[o],n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}function s(e,t,n){return t&&d(e.prototype,t),n&&d(e,n),e}function c(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}e=e&&e.hasOwnProperty("default")?e["default"]:e,t=t&&t.hasOwnProperty("default")?t["default"]:t;const u="transitionend",_={TRANSITION_END:"bsTransitionEnd",getUID(e){do e+=~~(Math.random()*1e6);while(document.getElementById(e));return e},getSelectorFromElement(e){let t=e.getAttribute("data-target");if(!t||"#"===t){const n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement(t){if(!t)return 0;let n=e(t).css("transition-duration"),o=e(t).css("transition-delay");const a=parseFloat(n),r=parseFloat(o);return a||r?(n=n.split(",")[0],o=o.split(",")[0],(parseFloat(n)+parseFloat(o))*1e3):0},reflow(e){return e.offsetHeight},triggerTransitionEnd(t){e(t).trigger(u)},supportsTransitionEnd(){return!0},isElement(e){return(e[0]||e).nodeType},typeCheckConfig(e,t,o){for(const a in o)if(Object.prototype.hasOwnProperty.call(o,a)){const r=o[a],i=t[a],l=i&&_.isElement(i)?"element":n(i);if(!new RegExp(r).test(l))throw new Error(`${e.toUpperCase()}: `+`Option "${a}" provided type "${l}" `+`but expected type "${r}".`)}},findShadowRoot(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?_.findShadowRoot(e.parentNode):null}};r();const m="bs.alert",p=`.${m}`,g=e.fn.alert,E={CLOSE:`close${p}`,CLOSED:`closed${p}`,CLICK_DATA_API:`click${p}${".data-api"}`},h={ALERT:"alert",FADE:"fade",SHOW:"show"};class A{constructor(e){this._element=e}static get VERSION(){return"4.3.1"}close(e){let t=this._element;e&&(t=this._getRootElement(e));const n=this._triggerCloseEvent(t);n.isDefaultPrevented()||this._removeElement(t)}dispose(){e.removeData(this._element,m),this._element=null}_getRootElement(t){const n=_.getSelectorFromElement(t);let o=!1;return n&&(o=document.querySelector(n)),o||(o=e(t).closest(`.${h.ALERT}`)[0]),o}_triggerCloseEvent(t){const n=e.Event(E.CLOSE);return e(t).trigger(n),n}_removeElement(t){if(e(t).removeClass(h.SHOW),!e(t).hasClass(h.FADE))return void this._destroyElement(t);const n=_.getTransitionDurationFromElement(t);e(t).one(_.TRANSITION_END,e=>this._destroyElement(t,e)).emulateTransitionEnd(n)}_destroyElement(t){e(t).detach().trigger(E.CLOSED).remove()}static _jQueryInterface(t){return this.each(function(){const n=e(this);let o=n.data(m);o||(o=new A(this),n.data(m,o)),"close"===t&&o[t](this)})}static _handleDismiss(e){return function(t){t&&t.preventDefault(),e.close(this)}}}e(document).on(E.CLICK_DATA_API,{DISMISS:"[data-dismiss=\"alert\"]"}.DISMISS,A._handleDismiss(new A)),e.fn.alert=A._jQueryInterface,e.fn.alert.Constructor=A,e.fn.alert.noConflict=()=>(e.fn["alert"]=g,A._jQueryInterface);const C="bs.button",T=`.${C}`,I=".data-api",b=e.fn.button,O={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},S={DATA_TOGGLE_CARROT:"[data-toggle^=\"button\"]",DATA_TOGGLE:"[data-toggle=\"buttons\"]",INPUT:"input:not([type=\"hidden\"])",ACTIVE:".active",BUTTON:".btn"},N={CLICK_DATA_API:`click${T}${I}`,FOCUS_BLUR_DATA_API:`focus${T}${I} `+`blur${T}${I}`};class D{constructor(e){this._element=e}static get VERSION(){return"4.3.1"}toggle(){let t=!0,n=!0;const o=e(this._element).closest(S.DATA_TOGGLE)[0];if(o){const a=this._element.querySelector(S.INPUT);if(a){if("radio"===a.type)if(a.checked&&this._element.classList.contains(O.ACTIVE))t=!1;else{const t=o.querySelector(S.ACTIVE);t&&e(t).removeClass(O.ACTIVE)}if(t){if(a.hasAttribute("disabled")||o.hasAttribute("disabled")||a.classList.contains("disabled")||o.classList.contains("disabled"))return;a.checked=!this._element.classList.contains(O.ACTIVE),e(a).trigger("change")}a.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(O.ACTIVE)),t&&e(this._element).toggleClass(O.ACTIVE)}dispose(){e.removeData(this._element,C),this._element=null}static _jQueryInterface(t){return this.each(function(){let n=e(this).data(C);n||(n=new D(this),e(this).data(C,n)),"toggle"===t&&n[t]()})}}e(document).on(N.CLICK_DATA_API,S.DATA_TOGGLE_CARROT,t=>{t.preventDefault();let n=t.target;e(n).hasClass(O.BUTTON)||(n=e(n).closest(S.BUTTON)),D._jQueryInterface.call(e(n),"toggle")}).on(N.FOCUS_BLUR_DATA_API,S.DATA_TOGGLE_CARROT,t=>{const n=e(t.target).closest(S.BUTTON)[0];e(n).toggleClass(O.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn.button=D._jQueryInterface,e.fn.button.Constructor=D,e.fn.button.noConflict=()=>(e.fn["button"]=b,D._jQueryInterface);const y="carousel",v="bs.carousel",R=`.${v}`,L=".data-api",M=e.fn.carousel,U={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},P={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},F={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},w={SLIDE:`slide${R}`,SLID:`slid${R}`,KEYDOWN:`keydown${R}`,MOUSEENTER:`mouseenter${R}`,MOUSELEAVE:`mouseleave${R}`,TOUCHSTART:`touchstart${R}`,TOUCHMOVE:`touchmove${R}`,TOUCHEND:`touchend${R}`,POINTERDOWN:`pointerdown${R}`,POINTERUP:`pointerup${R}`,DRAG_START:`dragstart${R}`,LOAD_DATA_API:`load${R}${L}`,CLICK_DATA_API:`click${R}${L}`},H={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},k={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:"[data-ride=\"carousel\"]"},G={TOUCH:"touch",PEN:"pen"};class Q{constructor(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=this._element.querySelector(k.INDICATORS),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=!!(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}static get VERSION(){return"4.3.1"}static get Default(){return U}next(){this._isSliding||this._slide(F.NEXT)}nextWhenVisible(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()}prev(){this._isSliding||this._slide(F.PREV)}pause(e){e||(this._isPaused=!0),this._element.querySelector(k.NEXT_PREV)&&(_.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=this._element.querySelector(k.ACTIVE_ITEM);const n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||0>t)){if(this._isSliding)return void e(this._element).one(w.SLID,()=>this.to(t));if(n===t)return this.pause(),void this.cycle();const o=t>n?F.NEXT:F.PREV;this._slide(o,this._items[t])}}dispose(){e(this._element).off(R),e.removeData(this._element,v),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(e){return e={...U,...e},_.typeCheckConfig(y,e,P),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(!(e<=40)){const t=e/this.touchDeltaX;0<t&&this.prev(),0>t&&this.next()}}_addEventListeners(){this._config.keyboard&&e(this._element).on(w.KEYDOWN,e=>this._keydown(e)),"hover"===this._config.pause&&e(this._element).on(w.MOUSEENTER,e=>this.pause(e)).on(w.MOUSELEAVE,e=>this.cycle(e)),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const t=e=>{this._pointerEvent&&G[e.originalEvent.pointerType.toUpperCase()]?this.touchStartX=e.originalEvent.clientX:!this._pointerEvent&&(this.touchStartX=e.originalEvent.touches[0].clientX)},n=e=>{this.touchDeltaX=e.originalEvent.touches&&1<e.originalEvent.touches.length?0:e.originalEvent.touches[0].clientX-this.touchStartX},o=e=>{this._pointerEvent&&G[e.originalEvent.pointerType.toUpperCase()]&&(this.touchDeltaX=e.originalEvent.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),500+this._config.interval))};e(this._element.querySelectorAll(k.ITEM_IMG)).on(w.DRAG_START,t=>t.preventDefault()),this._pointerEvent?(e(this._element).on(w.POINTERDOWN,e=>t(e)),e(this._element).on(w.POINTERUP,e=>o(e)),this._element.classList.add(H.POINTER_EVENT)):(e(this._element).on(w.TOUCHSTART,e=>t(e)),e(this._element).on(w.TOUCHMOVE,e=>n(e)),e(this._element).on(w.TOUCHEND,e=>o(e)))}_keydown(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next();}}_getItemIndex(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(k.ITEM)):[],this._items.indexOf(e)}_getItemByDirection(e,t){const n=e===F.NEXT,o=e===F.PREV,a=this._getItemIndex(t),r=this._items.length-1;if((o&&0===a||n&&a===r)&&!this._config.wrap)return t;const i=e===F.PREV?-1:1,l=(a+i)%this._items.length;return-1===l?this._items[this._items.length-1]:this._items[l]}_triggerSlideEvent(t,n){const o=this._getItemIndex(t),a=this._getItemIndex(this._element.querySelector(k.ACTIVE_ITEM)),r=e.Event(w.SLIDE,{relatedTarget:t,direction:n,from:a,to:o});return e(this._element).trigger(r),r}_setActiveIndicatorElement(t){if(this._indicatorsElement){const n=[].slice.call(this._indicatorsElement.querySelectorAll(k.ACTIVE));e(n).removeClass(H.ACTIVE);const o=this._indicatorsElement.children[this._getItemIndex(t)];o&&e(o).addClass(H.ACTIVE)}}_slide(t,n){const o=this._element.querySelector(k.ACTIVE_ITEM),a=this._getItemIndex(o),r=n||o&&this._getItemByDirection(t,o),i=this._getItemIndex(r),l=!!this._interval;let d,s,c;if(t===F.NEXT?(d=H.LEFT,s=H.NEXT,c=F.LEFT):(d=H.RIGHT,s=H.PREV,c=F.RIGHT),r&&e(r).hasClass(H.ACTIVE))return void(this._isSliding=!1);const f=this._triggerSlideEvent(r,c);if(f.isDefaultPrevented())return;if(!o||!r)return;this._isSliding=!0,l&&this.pause(),this._setActiveIndicatorElement(r);const u=e.Event(w.SLID,{relatedTarget:r,direction:c,from:a,to:i});if(e(this._element).hasClass(H.SLIDE)){e(r).addClass(s),_.reflow(r),e(o).addClass(d),e(r).addClass(d);const t=parseInt(r.getAttribute("data-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval;const n=_.getTransitionDurationFromElement(o);e(o).one(_.TRANSITION_END,()=>{e(r).removeClass(`${d} ${s}`).addClass(H.ACTIVE),e(o).removeClass(`${H.ACTIVE} ${s} ${d}`),this._isSliding=!1,setTimeout(()=>e(this._element).trigger(u),0)}).emulateTransitionEnd(n)}else e(o).removeClass(H.ACTIVE),e(r).addClass(H.ACTIVE),this._isSliding=!1,e(this._element).trigger(u);l&&this.cycle()}static _jQueryInterface(t){return this.each(function(){let n=e(this).data(v),o={...U,...e(this).data()};"object"==typeof t&&(o={...o,...t});const a="string"==typeof t?t:o.slide;if(n||(n=new Q(this,o),e(this).data(v,n)),"number"==typeof t)n.to(t);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError(`No method named "${a}"`);n[a]()}else o.interval&&o.ride&&(n.pause(),n.cycle())})}static _dataApiClickHandler(t){const n=_.getSelectorFromElement(this);if(!n)return;const o=e(n)[0];if(!o||!e(o).hasClass(H.CAROUSEL))return;const a={...e(o).data(),...e(this).data()},r=this.getAttribute("data-slide-to");r&&(a.interval=!1),Q._jQueryInterface.call(e(o),a),r&&e(o).data(v).to(r),t.preventDefault()}}e(document).on(w.CLICK_DATA_API,k.DATA_SLIDE,Q._dataApiClickHandler),e(window).on(w.LOAD_DATA_API,()=>{const t=[].slice.call(document.querySelectorAll(k.DATA_RIDE));for(let n=0,o=t.length;n<o;n++){const o=e(t[n]);Q._jQueryInterface.call(o,o.data())}}),e.fn.carousel=Q._jQueryInterface,e.fn.carousel.Constructor=Q,e.fn.carousel.noConflict=()=>(e.fn[y]=M,Q._jQueryInterface);const W="collapse",j="bs.collapse",x=`.${j}`,V=e.fn.collapse,Y={toggle:!0,parent:""},B={toggle:"boolean",parent:"(string|element)"},J={SHOW:`show${x}`,SHOWN:`shown${x}`,HIDE:`hide${x}`,HIDDEN:`hidden${x}`,CLICK_DATA_API:`click${x}${".data-api"}`},q={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},K={WIDTH:"width",HEIGHT:"height"},X={ACTIVES:".show, .collapsing",DATA_TOGGLE:"[data-toggle=\"collapse\"]"};class z{constructor(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll(`[data-toggle="collapse"][href="#${e.id}"],`+`[data-toggle="collapse"][data-target="#${e.id}"]`));const n=[].slice.call(document.querySelectorAll(X.DATA_TOGGLE));for(let o=0,a=n.length;o<a;o++){const t=n[o],a=_.getSelectorFromElement(t),r=[].slice.call(document.querySelectorAll(a)).filter(t=>t===e);null!==a&&0<r.length&&(this._selector=a,this._triggerArray.push(t))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get VERSION(){return"4.3.1"}static get Default(){return Y}toggle(){e(this._element).hasClass(q.SHOW)?this.hide():this.show()}show(){if(this._isTransitioning||e(this._element).hasClass(q.SHOW))return;let t,n;if(this._parent&&(t=[].slice.call(this._parent.querySelectorAll(X.ACTIVES)).filter(e=>"string"==typeof this._config.parent?e.getAttribute("data-parent")===this._config.parent:e.classList.contains(q.COLLAPSE)),0===t.length&&(t=null)),t&&(n=e(t).not(this._selector).data(j),n&&n._isTransitioning))return;const o=e.Event(J.SHOW);if(e(this._element).trigger(o),o.isDefaultPrevented())return;t&&(z._jQueryInterface.call(e(t).not(this._selector),"hide"),!n&&e(t).data(j,null));const a=this._getDimension();e(this._element).removeClass(q.COLLAPSE).addClass(q.COLLAPSING),this._element.style[a]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(q.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);const r=()=>{e(this._element).removeClass(q.COLLAPSING).addClass(q.COLLAPSE).addClass(q.SHOW),this._element.style[a]="",this.setTransitioning(!1),e(this._element).trigger(J.SHOWN)},i=a[0].toUpperCase()+a.slice(1),l=_.getTransitionDurationFromElement(this._element);e(this._element).one(_.TRANSITION_END,r).emulateTransitionEnd(l),this._element.style[a]=`${this._element[`scroll${i}`]}px`}hide(){if(!this._isTransitioning&&e(this._element).hasClass(q.SHOW)){const t=e.Event(J.HIDE);if(e(this._element).trigger(t),!t.isDefaultPrevented()){const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,_.reflow(this._element),e(this._element).addClass(q.COLLAPSING).removeClass(q.COLLAPSE).removeClass(q.SHOW);const n=this._triggerArray.length;if(0<n)for(let t=0;t<n;t++){const n=this._triggerArray[t],o=_.getSelectorFromElement(n);if(null!==o){const t=e([].slice.call(document.querySelectorAll(o)));t.hasClass(q.SHOW)||e(n).addClass(q.COLLAPSED).attr("aria-expanded",!1)}}this.setTransitioning(!0);const o=()=>{this.setTransitioning(!1),e(this._element).removeClass(q.COLLAPSING).addClass(q.COLLAPSE).trigger(J.HIDDEN)};this._element.style[t]="";const a=_.getTransitionDurationFromElement(this._element);e(this._element).one(_.TRANSITION_END,o).emulateTransitionEnd(a)}}}setTransitioning(e){this._isTransitioning=e}dispose(){e.removeData(this._element,j),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(e){return e={...Y,...e},e.toggle=!!e.toggle,_.typeCheckConfig(W,e,B),e}_getDimension(){const t=e(this._element).hasClass(K.WIDTH);return t?K.WIDTH:K.HEIGHT}_getParent(){let t;_.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);const n=`[data-toggle="collapse"][data-parent="${this._config.parent}"]`,o=[].slice.call(t.querySelectorAll(n));return e(o).each((e,t)=>{this._addAriaAndCollapsedClass(z._getTargetFromElement(t),[t])}),t}_addAriaAndCollapsedClass(t,n){const o=e(t).hasClass(q.SHOW);n.length&&e(n).toggleClass(q.COLLAPSED,!o).attr("aria-expanded",o)}static _getTargetFromElement(e){const t=_.getSelectorFromElement(e);return t?document.querySelector(t):null}static _jQueryInterface(t){return this.each(function(){const n=e(this);let o=n.data(j);const a={...Y,...n.data(),...("object"==typeof t&&t?t:{})};if(!o&&a.toggle&&/show|hide/.test(t)&&(a.toggle=!1),o||(o=new z(this,a),n.data(j,o)),"string"==typeof t){if("undefined"==typeof o[t])throw new TypeError(`No method named "${t}"`);o[t]()}})}}e(document).on(J.CLICK_DATA_API,X.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();const n=e(this),o=_.getSelectorFromElement(this),a=[].slice.call(document.querySelectorAll(o));e(a).each(function(){const t=e(this),o=t.data(j),a=o?"toggle":n.data();z._jQueryInterface.call(t,a)})}),e.fn.collapse=z._jQueryInterface,e.fn.collapse.Constructor=z,e.fn.collapse.noConflict=()=>(e.fn[W]=V,z._jQueryInterface);const Z="modal",ee="bs.modal",te=`.${ee}`,ne=e.fn.modal,oe={backdrop:!0,keyboard:!0,focus:!0,show:!0},ae={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},re={HIDE:`hide${te}`,HIDDEN:`hidden${te}`,SHOW:`show${te}`,SHOWN:`shown${te}`,FOCUSIN:`focusin${te}`,RESIZE:`resize${te}`,CLICK_DISMISS:`click.dismiss${te}`,KEYDOWN_DISMISS:`keydown.dismiss${te}`,MOUSEUP_DISMISS:`mouseup.dismiss${te}`,MOUSEDOWN_DISMISS:`mousedown.dismiss${te}`,CLICK_DATA_API:`click${te}${".data-api"}`},ie={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},le={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:"[data-toggle=\"modal\"]",DATA_DISMISS:"[data-dismiss=\"modal\"]",FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"};class de{constructor(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(le.DIALOG),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}static get VERSION(){return"4.3.1"}static get Default(){return oe}toggle(e){return this._isShown?this.hide():this.show(e)}show(t){if(!(this._isShown||this._isTransitioning)){e(this._element).hasClass(ie.FADE)&&(this._isTransitioning=!0);const n=e.Event(re.SHOW,{relatedTarget:t});e(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on(re.CLICK_DISMISS,le.DATA_DISMISS,e=>this.hide(e)),e(this._dialog).on(re.MOUSEDOWN_DISMISS,()=>{e(this._element).one(re.MOUSEUP_DISMISS,t=>{e(t.target).is(this._element)&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}}hide(t){if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){const t=e.Event(re.HIDE);if(e(this._element).trigger(t),this._isShown&&!t.isDefaultPrevented()){this._isShown=!1;const t=e(this._element).hasClass(ie.FADE);if(t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off(re.FOCUSIN),e(this._element).removeClass(ie.SHOW),e(this._element).off(re.CLICK_DISMISS),e(this._dialog).off(re.MOUSEDOWN_DISMISS),t){const t=_.getTransitionDurationFromElement(this._element);e(this._element).one(_.TRANSITION_END,e=>this._hideModal(e)).emulateTransitionEnd(t)}else this._hideModal()}}}dispose(){[window,this._element,this._dialog].forEach(t=>e(t).off(te)),e(document).off(re.FOCUSIN),e.removeData(this._element,ee),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(e){return e={...oe,...e},_.typeCheckConfig(Z,e,ae),e}_showElement(t){const n=e(this._element).hasClass(ie.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),e(this._dialog).hasClass(ie.SCROLLABLE)?this._dialog.querySelector(le.MODAL_BODY).scrollTop=0:this._element.scrollTop=0,n&&_.reflow(this._element),e(this._element).addClass(ie.SHOW),this._config.focus&&this._enforceFocus();const o=e.Event(re.SHOWN,{relatedTarget:t}),a=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,e(this._element).trigger(o)};if(n){const t=_.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(_.TRANSITION_END,a).emulateTransitionEnd(t)}else a()}_enforceFocus(){e(document).off(re.FOCUSIN).on(re.FOCUSIN,t=>{document!==t.target&&this._element!==t.target&&0===e(this._element).has(t.target).length&&this._element.focus()})}_setEscapeEvent(){this._isShown&&this._config.keyboard?e(this._element).on(re.KEYDOWN_DISMISS,e=>{e.which===27&&(e.preventDefault(),this.hide())}):!this._isShown&&e(this._element).off(re.KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?e(window).on(re.RESIZE,e=>this.handleUpdate(e)):e(window).off(re.RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(()=>{e(document.body).removeClass(ie.OPEN),this._resetAdjustments(),this._resetScrollbar(),e(this._element).trigger(re.HIDDEN)})}_removeBackdrop(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)}_showBackdrop(t){const n=e(this._element).hasClass(ie.FADE)?ie.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ie.BACKDROP,n&&this._backdrop.classList.add(n),e(this._backdrop).appendTo(document.body),e(this._element).on(re.CLICK_DISMISS,e=>this._ignoreBackdropClick?void(this._ignoreBackdropClick=!1):void(e.target!==e.currentTarget||("static"===this._config.backdrop?this._element.focus():this.hide()))),n&&_.reflow(this._backdrop),e(this._backdrop).addClass(ie.SHOW),!t)return;if(!n)return void t();const o=_.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(_.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass(ie.SHOW);const n=()=>{this._removeBackdrop(),t&&t()};if(e(this._element).hasClass(ie.FADE)){const t=_.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(_.TRANSITION_END,n).emulateTransitionEnd(t)}else n()}else t&&t()}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=`${this._scrollbarWidth}px`),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=`${this._scrollbarWidth}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){if(this._isBodyOverflowing){const t=[].slice.call(document.querySelectorAll(le.FIXED_CONTENT)),n=[].slice.call(document.querySelectorAll(le.STICKY_CONTENT));e(t).each((t,n)=>{const o=n.style.paddingRight,a=e(n).css("padding-right");e(n).data("padding-right",o).css("padding-right",`${parseFloat(a)+this._scrollbarWidth}px`)}),e(n).each((t,n)=>{const o=n.style.marginRight,a=e(n).css("margin-right");e(n).data("margin-right",o).css("margin-right",`${parseFloat(a)-this._scrollbarWidth}px`)});const o=document.body.style.paddingRight,a=e(document.body).css("padding-right");e(document.body).data("padding-right",o).css("padding-right",`${parseFloat(a)+this._scrollbarWidth}px`)}e(document.body).addClass(ie.OPEN)}_resetScrollbar(){const t=[].slice.call(document.querySelectorAll(le.FIXED_CONTENT));e(t).each((t,n)=>{const o=e(n).data("padding-right");e(n).removeData("padding-right"),n.style.paddingRight=o?o:""});const n=[].slice.call(document.querySelectorAll(`${le.STICKY_CONTENT}`));e(n).each((t,n)=>{const o=e(n).data("margin-right");"undefined"!=typeof o&&e(n).css("margin-right",o).removeData("margin-right")});const o=e(document.body).data("padding-right");e(document.body).removeData("padding-right"),document.body.style.paddingRight=o?o:""}_getScrollbarWidth(){const e=document.createElement("div");e.className=ie.SCROLLBAR_MEASURER,document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t}static _jQueryInterface(t,n){return this.each(function(){let o=e(this).data(ee);const a={...oe,...e(this).data(),...("object"==typeof t&&t?t:{})};if(o||(o=new de(this,a),e(this).data(ee,o)),"string"==typeof t){if("undefined"==typeof o[t])throw new TypeError(`No method named "${t}"`);o[t](n)}else a.show&&o.show(n)})}}e(document).on(re.CLICK_DATA_API,le.DATA_TOGGLE,function(t){let n;const o=_.getSelectorFromElement(this);o&&(n=document.querySelector(o));const a=e(n).data(ee)?"toggle":{...e(n).data(),...e(this).data()};("A"===this.tagName||"AREA"===this.tagName)&&t.preventDefault();const r=e(n).one(re.SHOW,t=>{t.isDefaultPrevented()||r.one(re.HIDDEN,()=>{e(this).is(":visible")&&this.focus()})});de._jQueryInterface.call(e(n),a,this)}),e.fn.modal=de._jQueryInterface,e.fn.modal.Constructor=de,e.fn.modal.noConflict=()=>(e.fn[Z]=ne,de._jQueryInterface);const se=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ce=/^aria-[\w-]*$/i,fe=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,ue=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i,_e="tooltip",me="bs.tooltip",pe=`.${me}`,ge=e.fn[_e],Ee="bs-tooltip",he=new RegExp(`(^|\\s)${Ee}\\S+`,"g"),Ae=["sanitize","whiteList","sanitizeFn"],Ce={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Te={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Ie={animation:!0,template:"<div class=\"tooltip\" role=\"tooltip\"><div class=\"arrow\"></div><div class=\"tooltip-inner\"></div></div>",trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",ce],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}},be={SHOW:"show",OUT:"out"},Oe={HIDE:`hide${pe}`,HIDDEN:`hidden${pe}`,SHOW:`show${pe}`,SHOWN:`shown${pe}`,INSERTED:`inserted${pe}`,CLICK:`click${pe}`,FOCUSIN:`focusin${pe}`,FOCUSOUT:`focusout${pe}`,MOUSEENTER:`mouseenter${pe}`,MOUSELEAVE:`mouseleave${pe}`},Se={FADE:"fade",SHOW:"show"},Ne={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},De={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"};class ye{constructor(e,n){if("undefined"==typeof t)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(n),this.tip=null,this._setListeners()}static get VERSION(){return"4.3.1"}static get Default(){return Ie}static get NAME(){return _e}static get DATA_KEY(){return me}static get Event(){return Oe}static get EVENT_KEY(){return pe}static get DefaultType(){return Ce}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const n=this.constructor.DATA_KEY;let o=e(t.currentTarget).data(n);o||(o=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,o)),o._activeTrigger.click=!o._activeTrigger.click,o._isWithActiveTrigger()?o._enter(null,o):o._leave(null,o)}else{if(e(this.getTipElement()).hasClass(Se.SHOW))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null}show(){if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");const n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);const o=_.findShadowRoot(this.element),a=e.contains(null===o?this.element.ownerDocument.documentElement:o,this.element);if(n.isDefaultPrevented()||!a)return;const r=this.getTipElement(),i=_.getUID(this.constructor.NAME);r.setAttribute("id",i),this.element.setAttribute("aria-describedby",i),this.setContent(),this.config.animation&&e(r).addClass(Se.FADE);const l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,d=this._getAttachment(l);this.addAttachmentClass(d);const s=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(s),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new t(this.element,r,{placement:d,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ne.ARROW},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:e=>{e.originalPlacement!==e.placement&&this._handlePopperPlacementChange(e)},onUpdate:e=>this._handlePopperPlacementChange(e)}),e(r).addClass(Se.SHOW),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);const c=()=>{this.config.animation&&this._fixTransition();const t=this._hoverState;this._hoverState=null,e(this.element).trigger(this.constructor.Event.SHOWN),t===be.OUT&&this._leave(null,this)};if(e(this.tip).hasClass(Se.FADE)){const t=_.getTransitionDurationFromElement(this.tip);e(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(t)}else c()}}hide(t){const n=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),a=()=>{this._hoverState!==be.SHOW&&n.parentNode&&n.parentNode.removeChild(n),this._cleanTipClass(),this.element.removeAttribute("aria-describedby"),e(this.element).trigger(this.constructor.Event.HIDDEN),null!==this._popper&&this._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(n).removeClass(Se.SHOW),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger[De.CLICK]=!1,this._activeTrigger[De.FOCUS]=!1,this._activeTrigger[De.HOVER]=!1,e(this.tip).hasClass(Se.FADE)){const t=_.getTransitionDurationFromElement(n);e(n).one(_.TRANSITION_END,a).emulateTransitionEnd(t)}else a();this._hoverState=""}}update(){null!==this._popper&&this._popper.scheduleUpdate()}isWithContent(){return!!this.getTitle()}addAttachmentClass(t){e(this.getTipElement()).addClass(`${Ee}-${t}`)}getTipElement(){return this.tip=this.tip||e(this.config.template)[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(Ne.TOOLTIP_INNER)),this.getTitle()),e(t).removeClass(`${Se.FADE} ${Se.SHOW}`)}setElementContent(t,n){return"object"==typeof n&&(n.nodeType||n.jquery)?void(this.config.html?!e(n).parent().is(t)&&t.empty().append(n):t.text(e(n).text())):void(this.config.html?(this.config.sanitize&&(n=l(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n))}getTitle(){let e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e}_getOffset(){const e={};return"function"==typeof this.config.offset?e.fn=e=>(e.offsets={...e.offsets,...(this.config.offset(e.offsets,this.element)||{})},e):e.offset=this.config.offset,e}_getContainer(){return!1===this.config.container?document.body:_.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)}_getAttachment(e){return Te[e.toUpperCase()]}_setListeners(){const t=this.config.trigger.split(" ");t.forEach(t=>{if("click"===t)e(this.element).on(this.constructor.Event.CLICK,this.config.selector,e=>this.toggle(e));else if(t!==De.MANUAL){const n=t===De.HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,o=t===De.HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;e(this.element).on(n,this.config.selector,e=>this._enter(e)).on(o,this.config.selector,e=>this._leave(e))}}),e(this.element).closest(".modal").on("hide.bs.modal",()=>{this.element&&this.hide()}),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}_enter(t,n){const o=this.constructor.DATA_KEY;return(n=n||e(t.currentTarget).data(o),n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(o,n)),t&&(n._activeTrigger["focusin"===t.type?De.FOCUS:De.HOVER]=!0),e(n.getTipElement()).hasClass(Se.SHOW)||n._hoverState===be.SHOW)?void(n._hoverState=be.SHOW):(clearTimeout(n._timeout),n._hoverState=be.SHOW,n.config.delay&&n.config.delay.show?void(n._timeout=setTimeout(()=>{n._hoverState===be.SHOW&&n.show()},n.config.delay.show)):void n.show())}_leave(t,n){const o=this.constructor.DATA_KEY;if(n=n||e(t.currentTarget).data(o),n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(o,n)),t&&(n._activeTrigger["focusout"===t.type?De.FOCUS:De.HOVER]=!1),!n._isWithActiveTrigger())return clearTimeout(n._timeout),n._hoverState=be.OUT,n.config.delay&&n.config.delay.hide?void(n._timeout=setTimeout(()=>{n._hoverState===be.OUT&&n.hide()},n.config.delay.hide)):void n.hide()}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(t){const n=e(this.element).data();return Object.keys(n).forEach(e=>{-1!==Ae.indexOf(e)&&delete n[e]}),t={...this.constructor.Default,...n,...("object"==typeof t&&t?t:{})},"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(_e,t,this.constructor.DefaultType),t.sanitize&&(t.template=l(t.template,t.whiteList,t.sanitizeFn)),t}_getDelegateConfig(){const e={};if(this.config)for(const t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e}_cleanTipClass(){const t=e(this.getTipElement()),n=t.attr("class").match(he);null!==n&&n.length&&t.removeClass(n.join(""))}_handlePopperPlacementChange(e){const t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))}_fixTransition(){const t=this.getTipElement(),n=this.config.animation;null!==t.getAttribute("x-placement")||(e(t).removeClass(Se.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)}static _jQueryInterface(t){return this.each(function(){let n=e(this).data(me);if((n||!/dispose|hide/.test(t))&&(n||(n=new ye(this,"object"==typeof t&&t),e(this).data(me,n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}})}}e.fn[_e]=ye._jQueryInterface,e.fn[_e].Constructor=ye,e.fn[_e].noConflict=()=>(e.fn[_e]=ge,ye._jQueryInterface);const ve="popover",Re="bs.popover",Le=`.${Re}`,Me=e.fn.popover,Ue="bs-popover",Pe=new RegExp(`(^|\\s)${Ue}\\S+`,"g"),Fe={...ye.Default,placement:"right",trigger:"click",content:"",template:"<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>"},we={...ye.DefaultType,content:"(string|element|function)"},$e={FADE:"fade",SHOW:"show"},He={TITLE:".popover-header",CONTENT:".popover-body"},ke={HIDE:`hide${Le}`,HIDDEN:`hidden${Le}`,SHOW:`show${Le}`,SHOWN:`shown${Le}`,INSERTED:`inserted${Le}`,CLICK:`click${Le}`,FOCUSIN:`focusin${Le}`,FOCUSOUT:`focusout${Le}`,MOUSEENTER:`mouseenter${Le}`,MOUSELEAVE:`mouseleave${Le}`};class Ge extends ye{static get VERSION(){return"4.3.1"}static get Default(){return Fe}static get NAME(){return ve}static get DATA_KEY(){return Re}static get Event(){return ke}static get EVENT_KEY(){return Le}static get DefaultType(){return we}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(t){e(this.getTipElement()).addClass(`${Ue}-${t}`)}getTipElement(){return this.tip=this.tip||e(this.config.template)[0],this.tip}setContent(){const t=e(this.getTipElement());this.setElementContent(t.find(He.TITLE),this.getTitle());let n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(He.CONTENT),n),t.removeClass(`${$e.FADE} ${$e.SHOW}`)}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const t=e(this.getTipElement()),n=t.attr("class").match(Pe);null!==n&&0<n.length&&t.removeClass(n.join(""))}static _jQueryInterface(t){return this.each(function(){let n=e(this).data(Re);const o="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new Ge(this,o),e(this).data(Re,n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}})}}e.fn.popover=Ge._jQueryInterface,e.fn.popover.Constructor=Ge,e.fn.popover.noConflict=()=>(e.fn[ve]=Me,Ge._jQueryInterface);const Qe="scrollspy",We="bs.scrollspy",je=`.${We}`,xe=e.fn.scrollspy,Ve={offset:10,method:"auto",target:""},Ye={offset:"number",method:"string",target:"(string|element)"},Be={ACTIVATE:`activate${je}`,SCROLL:`scroll${je}`,LOAD_DATA_API:`load${je}${".data-api"}`},Je={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},qe={DATA_SPY:"[data-spy=\"scroll\"]",ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},Ke={OFFSET:"offset",POSITION:"position"};class Xe{constructor(t,n){this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=`${this._config.target} ${qe.NAV_LINKS},`+`${this._config.target} ${qe.LIST_ITEMS},`+`${this._config.target} ${qe.DROPDOWN_ITEMS}`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(Be.SCROLL,e=>this._process(e)),this.refresh(),this._process()}static get VERSION(){return"4.3.1"}static get Default(){return Ve}refresh(){const t=this._scrollElement===this._scrollElement.window?Ke.OFFSET:Ke.POSITION,n="auto"===this._config.method?t:this._config.method,o=n===Ke.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();const a=[].slice.call(document.querySelectorAll(this._selector));a.map(t=>{let a;const r=_.getSelectorFromElement(t);if(r&&(a=document.querySelector(r)),a){const t=a.getBoundingClientRect();if(t.width||t.height)return[e(a)[n]().top+o,r]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){e.removeData(this._element,We),e(this._scrollElement).off(je),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(t){if(t={...Ve,...("object"==typeof t&&t?t:{})},"string"!=typeof t.target){let n=e(t.target).attr("id");n||(n=_.getUID(Qe),e(t.target).attr("id",n)),t.target=`#${n}`}return _.typeCheckConfig(Qe,t,Ye),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||f(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];return void(this._activeTarget!==e&&this._activate(e))}if(this._activeTarget&&e<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();const o=this._offsets.length;for(let t=o;t--;){const n=this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&("undefined"==typeof this._offsets[t+1]||e<this._offsets[t+1]);n&&this._activate(this._targets[t])}}_activate(t){this._activeTarget=t,this._clear();const n=this._selector.split(",").map(e=>`${e}[data-target="${t}"],${e}[href="${t}"]`),o=e([].slice.call(document.querySelectorAll(n.join(","))));o.hasClass(Je.DROPDOWN_ITEM)?(o.closest(qe.DROPDOWN).find(qe.DROPDOWN_TOGGLE).addClass(Je.ACTIVE),o.addClass(Je.ACTIVE)):(o.addClass(Je.ACTIVE),o.parents(qe.NAV_LIST_GROUP).prev(`${qe.NAV_LINKS}, ${qe.LIST_ITEMS}`).addClass(Je.ACTIVE),o.parents(qe.NAV_LIST_GROUP).prev(qe.NAV_ITEMS).children(qe.NAV_LINKS).addClass(Je.ACTIVE)),e(this._scrollElement).trigger(Be.ACTIVATE,{relatedTarget:t})}_clear(){[].slice.call(document.querySelectorAll(this._selector)).filter(e=>e.classList.contains(Je.ACTIVE)).forEach(e=>e.classList.remove(Je.ACTIVE))}static _jQueryInterface(t){return this.each(function(){let n=e(this).data(We);if(n||(n=new Xe(this,"object"==typeof t&&t),e(this).data(We,n)),"string"==typeof t){if("undefined"==typeof n[t])throw new TypeError(`No method named "${t}"`);n[t]()}})}}e(window).on(Be.LOAD_DATA_API,()=>{const t=[].slice.call(document.querySelectorAll(qe.DATA_SPY)),n=t.length;for(let o=n;o--;){const n=e(t[o]);Xe._jQueryInterface.call(n,n.data())}}),e.fn.scrollspy=Xe._jQueryInterface,e.fn.scrollspy.Constructor=Xe,e.fn.scrollspy.noConflict=()=>(e.fn[Qe]=xe,Xe._jQueryInterface);const ze="bs.tab",Ze=`.${ze}`,et=e.fn.tab,tt={HIDE:`hide${Ze}`,HIDDEN:`hidden${Ze}`,SHOW:`show${Ze}`,SHOWN:`shown${Ze}`,CLICK_DATA_API:`click${Ze}${".data-api"}`},nt={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},ot={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:"> li > .active",DATA_TOGGLE:"[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]",DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"};class at{constructor(e){this._element=e}static get VERSION(){return"4.3.1"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(nt.ACTIVE)||e(this._element).hasClass(nt.DISABLED))return;let t,n;const o=e(this._element).closest(ot.NAV_LIST_GROUP)[0],a=_.getSelectorFromElement(this._element);if(o){const t="UL"===o.nodeName||"OL"===o.nodeName?ot.ACTIVE_UL:ot.ACTIVE;n=e.makeArray(e(o).find(t)),n=n[n.length-1]}const r=e.Event(tt.HIDE,{relatedTarget:this._element}),i=e.Event(tt.SHOW,{relatedTarget:n});if(n&&e(n).trigger(r),e(this._element).trigger(i),!(i.isDefaultPrevented()||r.isDefaultPrevented())){a&&(t=document.querySelector(a)),this._activate(this._element,o);const r=()=>{const t=e.Event(tt.HIDDEN,{relatedTarget:this._element}),o=e.Event(tt.SHOWN,{relatedTarget:n});e(n).trigger(t),e(this._element).trigger(o)};t?this._activate(t,t.parentNode,r):r()}}dispose(){e.removeData(this._element,ze),this._element=null}_activate(t,n,o){const a=n&&("UL"===n.nodeName||"OL"===n.nodeName)?e(n).find(ot.ACTIVE_UL):e(n).children(ot.ACTIVE),r=a[0],i=o&&r&&e(r).hasClass(nt.FADE),l=()=>this._transitionComplete(t,r,o);if(r&&i){const t=_.getTransitionDurationFromElement(r);e(r).removeClass(nt.SHOW).one(_.TRANSITION_END,l).emulateTransitionEnd(t)}else l()}_transitionComplete(t,n,o){if(n){e(n).removeClass(nt.ACTIVE);const t=e(n.parentNode).find(ot.DROPDOWN_ACTIVE_CHILD)[0];t&&e(t).removeClass(nt.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(nt.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(nt.FADE)&&t.classList.add(nt.SHOW),t.parentNode&&e(t.parentNode).hasClass(nt.DROPDOWN_MENU)){const n=e(t).closest(ot.DROPDOWN)[0];if(n){const t=[].slice.call(n.querySelectorAll(ot.DROPDOWN_TOGGLE));e(t).addClass(nt.ACTIVE)}t.setAttribute("aria-expanded",!0)}o&&o()}static _jQueryInterface(t){return this.each(function(){const n=e(this);let o=n.data(ze);if(o||(o=new at(this),n.data(ze,o)),"string"==typeof t){if("undefined"==typeof o[t])throw new TypeError(`No method named "${t}"`);o[t]()}})}}e(document).on(tt.CLICK_DATA_API,ot.DATA_TOGGLE,function(t){t.preventDefault(),at._jQueryInterface.call(e(this),"show")}),e.fn.tab=at._jQueryInterface,e.fn.tab.Constructor=at,e.fn.tab.noConflict=()=>(e.fn["tab"]=et,at._jQueryInterface);var rt=function(){function e(){if(window.QUnit)return!1;var e=document.createElement("bmd");for(var t in o)if(void 0!==e.style[t])return o[t];return!1}var t=!1,n="",o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return function(){for(var a in t=e(),o)n+=" "+o[a]}(),{transitionEndSupported:function(){return t},transitionEndSelector:function(){return n},isChar:function(e){return!("undefined"!=typeof e.which)||!!("number"==typeof e.which&&0<e.which)&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&8!==e.which&&9!==e.which&&13!==e.which&&16!==e.which&&17!==e.which&&20!==e.which&&27!==e.which},assert:function(e,t,n){if(t)throw void 0===!e&&e.css("border","1px solid red"),console.error(n,e),n},describe:function(e){return void 0===e?"undefined":0===e.length?"(no matching elements)":e[0].outerHTML.split(">")[0]+">"}}}(jQuery),it=function(e){var t={BMD_FORM_GROUP:"bmd-form-group",IS_FILLED:"is-filled",IS_FOCUSED:"is-focused"},n={BMD_FORM_GROUP:"."+t.BMD_FORM_GROUP},o={},a=function(){function a(t,n,a){for(var r in void 0===a&&(a={}),this.$element=t,this.config=e.extend(!0,{},o,n),a)this[r]=a[r]}var r=a.prototype;return r.dispose=function(e){this.$element.data(e,null),this.$element=null,this.config=null},r.addFormGroupFocus=function(){this.$element.prop("disabled")||this.$bmdFormGroup.addClass(t.IS_FOCUSED)},r.removeFormGroupFocus=function(){this.$bmdFormGroup.removeClass(t.IS_FOCUSED)},r.removeIsFilled=function(){this.$bmdFormGroup.removeClass(t.IS_FILLED)},r.addIsFilled=function(){this.$bmdFormGroup.addClass(t.IS_FILLED)},r.findMdbFormGroup=function(t){void 0===t&&(t=!0);var o=this.$element.closest(n.BMD_FORM_GROUP);return 0===o.length&&t&&e.error("Failed to find "+n.BMD_FORM_GROUP+" for "+rt.describe(this.$element)),o},a}();return a}(jQuery),lt=function(e){var t={FORM_GROUP:"form-group",BMD_FORM_GROUP:"bmd-form-group",BMD_LABEL:"bmd-label",BMD_LABEL_STATIC:"bmd-label-static",BMD_LABEL_PLACEHOLDER:"bmd-label-placeholder",BMD_LABEL_FLOATING:"bmd-label-floating",HAS_DANGER:"has-danger",IS_FILLED:"is-filled",IS_FOCUSED:"is-focused",INPUT_GROUP:"input-group"},n={FORM_GROUP:"."+t.FORM_GROUP,BMD_FORM_GROUP:"."+t.BMD_FORM_GROUP,BMD_LABEL_WILDCARD:"label[class^='"+t.BMD_LABEL+"'], label[class*=' "+t.BMD_LABEL+"']"},o={validate:!1,formGroup:{required:!1},bmdFormGroup:{template:"<span class='"+t.BMD_FORM_GROUP+"'></span>",create:!0,required:!0},label:{required:!1,selectors:[".form-control-label","> label"],className:t.BMD_LABEL_STATIC},requiredClasses:[],invalidComponentMatches:[],convertInputSizeVariations:!0},a={"form-control-lg":"bmd-form-group-lg","form-control-sm":"bmd-form-group-sm"},r=function(r){function i(t,n,a){var i;return void 0===a&&(a={}),i=r.call(this,t,e.extend(!0,{},o,n),a)||this,i._rejectInvalidComponentMatches(),i.rejectWithoutRequiredStructure(),i._rejectWithoutRequiredClasses(),i.$formGroup=i.findFormGroup(i.config.formGroup.required),i.$bmdFormGroup=i.resolveMdbFormGroup(),i.$bmdLabel=i.resolveMdbLabel(),i.resolveMdbFormGroupSizing(),i.addFocusListener(),i.addChangeListener(),""!=i.$element.val()&&i.addIsFilled(),i}c(i,r);var l=i.prototype;return l.dispose=function(e){r.prototype.dispose.call(this,e),this.$bmdFormGroup=null,this.$formGroup=null},l.rejectWithoutRequiredStructure=function(){},l.addFocusListener=function(){var e=this;this.$element.on("focus",function(){e.addFormGroupFocus()}).on("blur",function(){e.removeFormGroupFocus()})},l.addChangeListener=function(){var e=this;this.$element.on("keydown paste",function(t){rt.isChar(t)&&e.addIsFilled()}).on("keyup change",function(){if(e.isEmpty()?e.removeIsFilled():e.addIsFilled(),e.config.validate){var t="undefined"==typeof e.$element[0].checkValidity||e.$element[0].checkValidity();t?e.removeHasDanger():e.addHasDanger()}})},l.addHasDanger=function(){this.$bmdFormGroup.addClass(t.HAS_DANGER)},l.removeHasDanger=function(){this.$bmdFormGroup.removeClass(t.HAS_DANGER)},l.isEmpty=function(){return null===this.$element.val()||void 0===this.$element.val()||""===this.$element.val()},l.resolveMdbFormGroup=function(){var e=this.findMdbFormGroup(!1);return(void 0===e||0===e.length)&&(this.config.bmdFormGroup.create&&(void 0===this.$formGroup||0===this.$formGroup.length)?this.outerElement().parent().hasClass(t.INPUT_GROUP)?this.outerElement().parent().wrap(this.config.bmdFormGroup.template):this.outerElement().wrap(this.config.bmdFormGroup.template):this.$formGroup.addClass(t.BMD_FORM_GROUP),e=this.findMdbFormGroup(this.config.bmdFormGroup.required)),e},l.outerElement=function(){return this.$element},l.resolveMdbLabel=function(){var e=this.$bmdFormGroup.find(n.BMD_LABEL_WILDCARD);if(void 0===e||0===e.length)if(e=this.findMdbLabel(this.config.label.required),void 0===e||0===e.length);else e.addClass(this.config.label.className);return e},l.findMdbLabel=function(t){void 0===t&&(t=!0);for(var o=null,a=this.config.label.selectors,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var l;if(r){if(i>=a.length)break;l=a[i++]}else{if(i=a.next(),i.done)break;l=i.value}var d=l;if(o=e.isFunction(d)?d(this):this.$bmdFormGroup.find(d),void 0!==o&&0<o.length)break}return 0===o.length&&t&&e.error("Failed to find "+n.BMD_LABEL_WILDCARD+" within form-group for "+rt.describe(this.$element)),o},l.findFormGroup=function(t){void 0===t&&(t=!0);var o=this.$element.closest(n.FORM_GROUP);return 0===o.length&&t&&e.error("Failed to find "+n.FORM_GROUP+" for "+rt.describe(this.$element)),o},l.resolveMdbFormGroupSizing=function(){if(this.config.convertInputSizeVariations)for(var e in a)this.$element.hasClass(e)&&this.$bmdFormGroup.addClass(a[e])},l._rejectInvalidComponentMatches=function(){for(var e=this.config.invalidComponentMatches,t=Array.isArray(e),n=0,e=t?e:e[Symbol.iterator]();;){var o;if(t){if(n>=e.length)break;o=e[n++]}else{if(n=e.next(),n.done)break;o=n.value}var a=o;a.rejectMatch(this.constructor.name,this.$element)}},l._rejectWithoutRequiredClasses=function(){for(var e=this.config.requiredClasses,t=Array.isArray(e),n=0,e=t?e:e[Symbol.iterator]();;){var o;if(t){if(n>=e.length)break;o=e[n++]}else{if(n=e.next(),n.done)break;o=n.value}var a=o;if(-1!==a.indexOf("||"))for(var r=a.split("||"),i=r,l=Array.isArray(i),d=0,i=l?i:i[Symbol.iterator]();;){var s;if(l){if(d>=i.length)break;s=i[d++]}else{if(d=i.next(),d.done)break;s=d.value}var c=s;if(this.$element.hasClass(c))break}else if(this.$element.hasClass(a));}},i}(it);return r}(jQuery),dt=function(e){var t={label:{required:!1}},n={LABEL:"label"},o=function(o){function a(n,a,r){var i;return i=o.call(this,n,e.extend(!0,{},t,a),r)||this,i.decorateMarkup(),i}c(a,o);var r=a.prototype;return r.decorateMarkup=function(){var t=e(this.config.template);this.$element.after(t),!1!==this.config.ripples&&t.bmdRipples()},r.outerElement=function(){return this.$element.parent().closest("."+this.outerClass)},r.rejectWithoutRequiredStructure=function(){rt.assert(this.$element,"label"===!this.$element.parent().prop("tagName"),this.constructor.name+"'s "+rt.describe(this.$element)+" parent element should be <label>."),rt.assert(this.$element,!this.outerElement().hasClass(this.outerClass),this.constructor.name+"'s "+rt.describe(this.$element)+" outer element should have class "+this.outerClass+".")},r.addFocusListener=function(){var e=this;this.$element.closest(n.LABEL).hover(function(){e.addFormGroupFocus()},function(){e.removeFormGroupFocus()})},r.addChangeListener=function(){var e=this;this.$element.change(function(){e.$element.blur()})},a}(lt);return o}(jQuery),st=function(e){var t="bmd.checkbox",n="bmd"+("c".toUpperCase()+"checkbox".slice(1)),o=e.fn[n],a={template:"<span class='checkbox-decorator'><span class='check'></span></span>"},r=function(n){function o(t,o,r){return void 0===r&&(r={inputType:"checkbox",outerClass:"checkbox"}),n.call(this,t,e.extend(!0,a,o),r)||this}c(o,n);var r=o.prototype;return r.dispose=function(e){void 0===e&&(e=t),n.prototype.dispose.call(this,e)},o.matches=function(e){return"checkbox"===e.attr("type")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for type='checkbox'.")},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(dt);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),ct=function(e){var t="bmd.checkboxInline",n="bmd"+("c".toUpperCase()+"checkboxInline".slice(1)),o=e.fn[n],a={bmdFormGroup:{create:!1,required:!1}},r=function(n){function o(t,o,r){return void 0===r&&(r={inputType:"checkbox",outerClass:"checkbox-inline"}),n.call(this,t,e.extend(!0,{},a,o),r)||this}c(o,n);var r=o.prototype;return r.dispose=function(){n.prototype.dispose.call(this,t)},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(st);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),ft=function(e){var t="bmd.collapseInline",n="bmd"+("c".toUpperCase()+"collapseInline".slice(1)),o=e.fn[n],a={ANY_INPUT:"input, select, textarea"},r={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed",WIDTH:"width"},i={},l=function(n){function o(t,o){var l;l=n.call(this,t,e.extend(!0,{},i,o))||this,l.$bmdFormGroup=l.findMdbFormGroup(!0);var d=t.data("target");l.$collapse=e(d),rt.assert(t,0===l.$collapse.length,"Cannot find collapse target for "+rt.describe(t)),rt.assert(l.$collapse,!l.$collapse.hasClass(r.COLLAPSE),rt.describe(l.$collapse)+" is expected to have the '"+r.COLLAPSE+"' class. It is being targeted by "+rt.describe(t));var s=l.$bmdFormGroup.find(a.ANY_INPUT);return 0<s.length&&(l.$input=s.first()),l.$collapse.hasClass(r.WIDTH)||l.$collapse.addClass(r.WIDTH),l.$input&&(l.$collapse.on("shown.bs.collapse",function(){l.$input.focus()}),l.$input.blur(function(){l.$collapse.collapse("hide")})),l}c(o,n);var l=o.prototype;return l.dispose=function(){n.prototype.dispose.call(this,t),this.$bmdFormGroup=null,this.$collapse=null,this.$input=null},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(it);return e.fn[n]=l._jQueryInterface,e.fn[n].Constructor=l,e.fn[n].noConflict=function(){return e.fn[n]=o,l._jQueryInterface},l}(jQuery),ut=function(e){var t="bmd.file",n="bmd"+("f".toUpperCase()+"file".slice(1)),o=e.fn[n],a={},r={FILE:"file",IS_FILE:"is-file"},i={FILENAMES:"input.form-control[readonly]"},l=function(n){function o(t,o){var i;return i=n.call(this,t,e.extend(!0,a,o))||this,i.$bmdFormGroup.addClass(r.IS_FILE),i}c(o,n);var l=o.prototype;return l.dispose=function(){n.prototype.dispose.call(this,t)},o.matches=function(e){return"file"===e.attr("type")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for type='file'.")},l.outerElement=function(){return this.$element.parent().closest("."+r.FILE)},l.rejectWithoutRequiredStructure=function(){rt.assert(this.$element,"label"===!this.outerElement().prop("tagName"),this.constructor.name+"'s "+rt.describe(this.$element)+" parent element "+rt.describe(this.outerElement())+" should be <label>."),rt.assert(this.$element,!this.outerElement().hasClass(r.FILE),this.constructor.name+"'s "+rt.describe(this.$element)+" parent element "+rt.describe(this.outerElement())+" should have class ."+r.FILE+".")},l.addFocusListener=function(){var e=this;this.$bmdFormGroup.on("focus",function(){e.addFormGroupFocus()}).on("blur",function(){e.removeFormGroupFocus()})},l.addChangeListener=function(){var t=this;this.$element.on("change",function(){var n="";e.each(t.$element.files,function(e,t){n+=t.name+" , "}),n=n.substring(0,n.length-2),n?t.addIsFilled():t.removeIsFilled(),t.$bmdFormGroup.find(i.FILENAMES).val(n)})},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(lt);return e.fn[n]=l._jQueryInterface,e.fn[n].Constructor=l,e.fn[n].noConflict=function(){return e.fn[n]=o,l._jQueryInterface},l}(jQuery),_t=function(e){var t="bmd.radio",n="bmd"+("r".toUpperCase()+"radio".slice(1)),o=e.fn[n],a={template:"<span class='bmd-radio'></span>"},r=function(n){function o(t,o,r){return void 0===r&&(r={inputType:"radio",outerClass:"radio"}),n.call(this,t,e.extend(!0,a,o),r)||this}c(o,n);var r=o.prototype;return r.dispose=function(e){void 0===e&&(e=t),n.prototype.dispose.call(this,e)},o.matches=function(e){return"radio"===e.attr("type")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for type='radio'.")},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(dt);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),mt=function(e){var t="bmd.radioInline",n="bmd"+("r".toUpperCase()+"radioInline".slice(1)),o=e.fn[n],a={bmdFormGroup:{create:!1,required:!1}},r=function(n){function o(t,o,r){return void 0===r&&(r={inputType:"radio",outerClass:"radio-inline"}),n.call(this,t,e.extend(!0,{},a,o),r)||this}c(o,n);var r=o.prototype;return r.dispose=function(){n.prototype.dispose.call(this,t)},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(_t);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),pt=function(e){var t={requiredClasses:["form-control"]},n=function(n){function o(o,a){var r;return r=n.call(this,o,e.extend(!0,t,a))||this,r.isEmpty()&&r.removeIsFilled(),r}return c(o,n),o}(lt);return n}(jQuery),gt=function(e){var t="bmd.select",n="bmd"+("s".toUpperCase()+"select".slice(1)),o=e.fn[n],a={requiredClasses:["form-control||custom-select"]},r=function(n){function o(t,o){var r;return r=n.call(this,t,e.extend(!0,a,o))||this,r.addIsFilled(),r}c(o,n);var r=o.prototype;return r.dispose=function(){n.prototype.dispose.call(this,t)},o.matches=function(e){return"select"===e.prop("tagName")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for <select>.")},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(pt);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),Et=function(e){var t="bmd.switch",n="bmd"+("s".toUpperCase()+"switch".slice(1)),o=e.fn[n],a={template:"<span class='bmd-switch-track'></span>"},r=function(n){function o(t,o,r){return void 0===r&&(r={inputType:"checkbox",outerClass:"switch"}),n.call(this,t,e.extend(!0,{},a,o),r)||this}c(o,n);var r=o.prototype;return r.dispose=function(){n.prototype.dispose.call(this,t)},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(st);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),ht=function(e){var t="bmd.text",n="bmd"+("t".toUpperCase()+"text".slice(1)),o=e.fn[n],a={},r=function(n){function o(t,o){return n.call(this,t,e.extend(!0,a,o))||this}c(o,n);var r=o.prototype;return r.dispose=function(e){void 0===e&&(e=t),n.prototype.dispose.call(this,e)},o.matches=function(e){return"text"===e.attr("type")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for type='text'.")},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(pt);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),At=function(e){var t="bmd.textarea",n="bmd"+("t".toUpperCase()+"textarea".slice(1)),o=e.fn[n],a={},r=function(n){function o(t,o){return n.call(this,t,e.extend(!0,a,o))||this}c(o,n);var r=o.prototype;return r.dispose=function(){n.prototype.dispose.call(this,t)},o.matches=function(e){return"textarea"===e.prop("tagName")},o.rejectMatch=function(e,t){rt.assert(this.$element,this.matches(t),e+" component element "+rt.describe(t)+" is invalid for <textarea>.")},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(pt);return e.fn[n]=r._jQueryInterface,e.fn[n].Constructor=r,e.fn[n].noConflict=function(){return e.fn[n]=o,r._jQueryInterface},r}(jQuery),Ct=function(e){if("undefined"==typeof Popper)throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)");var t="bs.dropdown",n="."+t,o=".data-api",a=e.fn.dropdown,r=27,i=32,l=9,d=38,c=40,f=new RegExp(d+"|"+c+"|"+r),u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,CLICK:"click"+n,CLICK_DATA_API:"click"+n+o,KEYDOWN_DATA_API:"keydown"+n+o,KEYUP_DATA_API:"keyup"+n+o,TRANSITION_END:"transitionend webkitTransitionEnd oTransitionEnd animationend webkitAnimationEnd oAnimationEnd"},m={DISABLED:"disabled",SHOW:"show",SHOWING:"showing",HIDING:"hiding",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left"},p={DATA_TOGGLE:"[data-toggle=\"dropdown\"]",FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled)"},g={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end"},E={placement:g.BOTTOM,offset:0,flip:!0},h={placement:"string",offset:"(number|string)",flip:"boolean"},A=function(){function o(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var a=o.prototype;return a.toggle=function(){var t=this;if(!(this._element.disabled||e(this._element).hasClass(m.DISABLED))){var n=o._getParentFromElement(this._element),a=e(this._menu).hasClass(m.SHOW);if(o._clearMenus(),!a){var r={relatedTarget:this._element},i=e.Event(u.SHOW,r);if(e(n).trigger(i),!i.isDefaultPrevented()){var l=this._element;e(n).hasClass(m.DROPUP)&&(e(this._menu).hasClass(m.MENULEFT)||e(this._menu).hasClass(m.MENURIGHT))&&(l=n),this._popper=new Popper(l,this._menu,this._getPopperConfig()),"ontouchstart"in document.documentElement&&!e(n).closest(p.NAVBAR_NAV).length&&e("body").children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).one(u.TRANSITION_END,function(){e(n).trigger(e.Event(u.SHOWN,r)),e(t._menu).removeClass(m.SHOWING)}),e(this._menu).addClass(m.SHOW+" "+m.SHOWING),e(n).addClass(m.SHOW)}}}},a.dispose=function(){e.removeData(this._element,t),e(this._element).off(n),this._element=null,this._menu=null,null!==this._popper&&this._popper.destroy(),this._popper=null},a.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},a._addEventListeners=function(){var t=this;e(this._element).on(u.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},a._getConfig=function(t){var n=e(this._element).data();return void 0!==n.placement&&(n.placement=g[n.placement.toUpperCase()]),t=e.extend({},this.constructor.Default,e(this._element).data(),t),_.typeCheckConfig("dropdown",t,this.constructor.DefaultType),t},a._getMenuElement=function(){if(!this._menu){var t=o._getParentFromElement(this._element);this._menu=e(t).find(p.MENU)[0]}return this._menu},a._getPlacement=function(){var t=e(this._element).parent(),n=this._config.placement;return t.hasClass(m.DROPUP)||this._config.placement===g.TOP?(n=g.TOP,e(this._menu).hasClass(m.MENURIGHT)&&(n=g.TOPEND)):e(this._menu).hasClass(m.MENURIGHT)&&(n=g.BOTTOMEND),n},a._detectNavbar=function(){return 0<e(this._element).closest(".navbar").length},a._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:{offset:this._config.offset},flip:{enabled:this._config.flip}}};return this._inNavbar&&(e.modifiers.applyStyle={enabled:!this._inNavbar}),e},o._jQueryInterface=function(n){return this.each(function(){var a=e(this).data(t),r="object"==typeof n?n:null;if(a||(a=new o(this,r),e(this).data(t,a)),"string"==typeof n){if(void 0===a[n])throw new Error("No method named \""+n+"\"");a[n]()}})},o._clearMenus=function(n){if(!(n&&(n.which===3||"keyup"===n.type&&n.which!==l)))for(var a,r=e.makeArray(e(p.DATA_TOGGLE)),d=function(a){var i=o._getParentFromElement(r[a]),d=e(r[a]).data(t),s={relatedTarget:r[a]};if(!d)return"continue";var c=d._menu;if(!e(i).hasClass(m.SHOW))return"continue";if(n&&("click"===n.type&&/input|textarea/i.test(n.target.tagName)||"keyup"===n.type&&n.which===l)&&e.contains(i,n.target))return"continue";var f=e.Event(u.HIDE,s);return e(i).trigger(f),f.isDefaultPrevented()?"continue":void(("ontouchstart"in document.documentElement)&&e("body").children().off("mouseover",null,e.noop),r[a].setAttribute("aria-expanded","false"),e(c).addClass(m.HIDING).removeClass(m.SHOW),e(i).removeClass(m.SHOW),e(c).one(u.TRANSITION_END,function(){e(i).trigger(e.Event(u.HIDDEN,s)),e(c).removeClass(m.HIDING)}))},s=0;s<r.length;s++)a=d(s),"continue"===a},o._getParentFromElement=function(t){var n,o=_.getSelectorFromElement(t);return o&&(n=e(o)[0]),n||t.parentNode},o._dataApiKeydownHandler=function(t){if(!(!f.test(t.which)||/button/i.test(t.target.tagName)&&t.which===i||/input|textarea/i.test(t.target.tagName))&&(t.preventDefault(),t.stopPropagation(),!(this.disabled||e(this).hasClass(m.DISABLED)))){var n=o._getParentFromElement(this),a=e(n).hasClass(m.SHOW);if(!a&&(t.which!==r||t.which!==i)||a&&(t.which===r||t.which===i)){if(t.which===r){var l=e(n).find(p.DATA_TOGGLE)[0];e(l).trigger("focus")}return void e(this).trigger("click")}var s=e(n).find(p.VISIBLE_ITEMS).get();if(s.length){var u=s.indexOf(t.target);t.which===d&&0<u&&u--,t.which===c&&u<s.length-1&&u++,0>u&&(u=0),s[u].focus()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return E}},{key:"DefaultType",get:function(){return h}}]),o}();return e(document).on(u.KEYDOWN_DATA_API,p.DATA_TOGGLE,A._dataApiKeydownHandler).on(u.KEYDOWN_DATA_API,p.MENU,A._dataApiKeydownHandler).on(u.CLICK_DATA_API+" "+u.KEYUP_DATA_API,A._clearMenus).on(u.CLICK_DATA_API,p.DATA_TOGGLE,function(t){t.preventDefault(),t.stopPropagation(),A._jQueryInterface.call(e(this),"toggle")}).on(u.CLICK_DATA_API,p.FORM_CHILD,function(t){t.stopPropagation()}),e.fn.dropdown=A._jQueryInterface,e.fn.dropdown.Constructor=A,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=a,A._jQueryInterface},A}(jQuery),Tt=function(e){var t={CANVAS:"bmd-layout-canvas",CONTAINER:"bmd-layout-container",BACKDROP:"bmd-layout-backdrop"},n={CANVAS:"."+t.CANVAS,CONTAINER:"."+t.CONTAINER,BACKDROP:"."+t.BACKDROP},o={canvas:{create:!0,required:!0,template:"<div class=\""+t.CANVAS+"\"></div>"},backdrop:{create:!0,required:!0,template:"<div class=\""+t.BACKDROP+"\"></div>"}},a=function(t){function a(n,a,r){var i;return void 0===r&&(r={}),i=t.call(this,n,e.extend(!0,{},o,a),r)||this,i.$container=i.findContainer(!0),i.$backdrop=i.resolveBackdrop(),i.resolveCanvas(),i}c(a,t);var r=a.prototype;return r.dispose=function(e){t.prototype.dispose.call(this,e),this.$container=null,this.$backdrop=null},r.resolveCanvas=function(){var e=this.findCanvas(!1);return(void 0===e||0===e.length)&&(this.config.canvas.create&&this.$container.wrap(this.config.canvas.template),e=this.findCanvas(this.config.canvas.required)),e},r.findCanvas=function(t,o){void 0===t&&(t=!0),void 0===o&&(o=this.$container);var a=o.closest(n.CANVAS);return 0===a.length&&t&&e.error("Failed to find "+n.CANVAS+" for "+rt.describe(o)),a},r.resolveBackdrop=function(){var e=this.findBackdrop(!1);return(void 0===e||0===e.length)&&(this.config.backdrop.create&&this.$container.append(this.config.backdrop.template),e=this.findBackdrop(this.config.backdrop.required)),e},r.findBackdrop=function(t,o){void 0===t&&(t=!0),void 0===o&&(o=this.$container);var a=o.find("> "+n.BACKDROP);return 0===a.length&&t&&e.error("Failed to find "+n.BACKDROP+" for "+rt.describe(o)),a},r.findContainer=function(t,o){void 0===t&&(t=!0),void 0===o&&(o=this.$element);var a=o.closest(n.CONTAINER);return 0===a.length&&t&&e.error("Failed to find "+n.CONTAINER+" for "+rt.describe(o)),a},a}(it);return a}(jQuery),It=function(e){var t="bmd.drawer",n="bmd"+("d".toUpperCase()+"drawer".slice(1)),o=e.fn[n],a={ESCAPE:27},r={IN:"in",DRAWER_IN:"bmd-drawer-in",DRAWER_OUT:"bmd-drawer-out",DRAWER:"bmd-layout-drawer",CONTAINER:"bmd-layout-container"},i={focusSelector:"a, button, input"},l=function(n){function o(t,o){var r;return r=n.call(this,t,e.extend(!0,{},i,o))||this,r.$toggles=e("[data-toggle=\"drawer\"][href=\"#"+r.$element[0].id+"\"], [data-toggle=\"drawer\"][data-target=\"#"+r.$element[0].id+"\"]"),r._addAria(),r.$backdrop.keydown(function(e){e.which===a.ESCAPE&&r.hide()}).click(function(){r.hide()}),r.$element.keydown(function(e){e.which===a.ESCAPE&&r.hide()}),r.$toggles.click(function(){r.toggle()}),r}c(o,n);var l=o.prototype;return l.dispose=function(){n.prototype.dispose.call(this,t),this.$toggles=null},l.toggle=function(){this._isOpen()?this.hide():this.show()},l.show=function(){if(!(this._isForcedClosed()||this._isOpen())){e(".bmd-layout-drawer").hide(),this.$element.show(),this.$toggles.attr("aria-expanded",!0),this.$element.attr("aria-expanded",!0),this.$element.attr("aria-hidden",!1);var t=this.$element.find(this.config.focusSelector);0<t.length&&t.first().focus(),this.$container.addClass(r.DRAWER_IN),this.$backdrop.addClass(r.IN)}},l.hide=function(){this._isOpen()&&(this.$toggles.attr("aria-expanded",!1),this.$element.attr("aria-expanded",!1),this.$element.attr("aria-hidden",!0),this.$container.removeClass(r.DRAWER_IN),this.$backdrop.removeClass(r.IN))},l._isOpen=function(){return this.$container.hasClass(r.DRAWER_IN)},l._isForcedClosed=function(){return this.$container.hasClass(r.DRAWER_OUT)},l._addAria=function(){var e=this._isOpen();this.$element.attr("aria-expanded",e),this.$element.attr("aria-hidden",e),this.$toggles.length&&this.$toggles.attr("aria-expanded",e)},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(Tt);return e.fn[n]=l._jQueryInterface,e.fn[n].Constructor=l,e.fn[n].noConflict=function(){return e.fn[n]=o,l._jQueryInterface},l}(jQuery),bt=function(e){var t="bmd.ripples",n="bmd"+("r".toUpperCase()+"ripples".slice(1)),o=e.fn[n],a={CONTAINER:"ripple-container",DECORATOR:"ripple-decorator"},r={CONTAINER:"."+a.CONTAINER,DECORATOR:"."+a.DECORATOR},i={container:{template:"<div class='"+a.CONTAINER+"'></div>"},decorator:{template:"<div class='"+a.DECORATOR+"'></div>"},trigger:{start:"mousedown touchstart",end:"mouseup mouseleave touchend"},touchUserAgentRegex:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i,duration:500},l=function(){function n(t,n){var o=this;this.$element=t,this.config=e.extend(!0,{},i,n),this.$element.on(this.config.trigger.start,function(e){o._onStartRipple(e)})}var o=n.prototype;return o.dispose=function(){this.$element.data(t,null),this.$element=null,this.$container=null,this.$decorator=null,this.config=null},o._onStartRipple=function(e){var t=this;if(!(this._isTouch()&&"mousedown"===e.type)){this._findOrCreateContainer();var n=this._getRelY(e),o=this._getRelX(e);(n||o)&&(this.$decorator.css({left:o,top:n,"background-color":this._getRipplesColor()}),this._forceStyleApplication(),this.rippleOn(),setTimeout(function(){t.rippleEnd()},this.config.duration),this.$element.on(this.config.trigger.end,function(){t.$decorator&&(t.$decorator.data("mousedown","off"),"off"===t.$decorator.data("animating")&&t.rippleOut())}))}},o._findOrCreateContainer=function(){(!this.$container||0<!this.$container.length)&&(this.$element.append(this.config.container.template),this.$container=this.$element.find(r.CONTAINER)),this.$container.append(this.config.decorator.template),this.$decorator=this.$container.find(r.DECORATOR)},o._forceStyleApplication=function(){return window.getComputedStyle(this.$decorator[0]).opacity},o._getRelX=function(e){var t=this.$container.offset(),n=null;return this._isTouch()?(e=e.originalEvent,n=1===e.touches.length&&e.touches[0].pageX-t.left):n=e.pageX-t.left,n},o._getRelY=function(e){var t=this.$container.offset(),n=null;return this._isTouch()?(e=e.originalEvent,n=1===e.touches.length&&e.touches[0].pageY-t.top):n=e.pageY-t.top,n},o._getRipplesColor=function(){var e=this.$element.data("ripple-color")?this.$element.data("ripple-color"):window.getComputedStyle(this.$element[0]).color;return e},o._isTouch=function(){return this.config.touchUserAgentRegex.test(navigator.userAgent)},o.rippleEnd=function(){this.$decorator&&(this.$decorator.data("animating","off"),"off"===this.$decorator.data("mousedown")&&this.rippleOut(this.$decorator))},o.rippleOut=function(){var e=this;this.$decorator.off(),rt.transitionEndSupported()?this.$decorator.addClass("ripple-out"):this.$decorator.animate({opacity:0},100,function(){e.$decorator.trigger("transitionend")}),this.$decorator.on(rt.transitionEndSelector(),function(){e.$decorator&&(e.$decorator.remove(),e.$decorator=null)})},o.rippleOn=function(){var e=this,t=this._getNewSize();rt.transitionEndSupported()?this.$decorator.css({"-ms-transform":"scale("+t+")","-moz-transform":"scale("+t+")","-webkit-transform":"scale("+t+")",transform:"scale("+t+")"}).addClass("ripple-on").data("animating","on").data("mousedown","on"):this.$decorator.animate({width:2*f(this.$element.outerWidth(),this.$element.outerHeight()),height:2*f(this.$element.outerWidth(),this.$element.outerHeight()),"margin-left":-1*f(this.$element.outerWidth(),this.$element.outerHeight()),"margin-top":-1*f(this.$element.outerWidth(),this.$element.outerHeight()),opacity:.2},this.config.duration,function(){e.$decorator.trigger("transitionend")})},o._getNewSize=function(){return 2.5*(f(this.$element.outerWidth(),this.$element.outerHeight())/this.$decorator.outerWidth())},n._jQueryInterface=function(o){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new n(a,o),a.data(t,r))})},n}();return e.fn[n]=l._jQueryInterface,e.fn[n].Constructor=l,e.fn[n].noConflict=function(){return e.fn[n]=o,l._jQueryInterface},l}(jQuery),Ot=function(e){var t="bmd.autofill",n="bmd"+("a".toUpperCase()+"autofill".slice(1)),o=e.fn[n],a="bmd.last_value",r={},i=function(n){function o(t,o){var a;return a=n.call(this,t,e.extend(!0,{},r,o))||this,a._watchLoading(),a._attachEventHandlers(),a}c(o,n);var i=o.prototype;return i.dispose=function(){n.prototype.dispose.call(this,t)},i._watchLoading=function(){var e=this;setTimeout(function(){clearInterval(e._onLoading)},1e4)},i._onLoading=function(){setInterval(function(){e("input[type!=checkbox]").each(function(t,n){var o=e(n),r=o.data(a);void 0===r&&(r=o.attr("value")),void 0===r&&(r="");var i=o.val();i!==r&&o.trigger("change"),o.data(a,i)})},100)},i._attachEventHandlers=function(){var t=null;e(document).on("focus","input",function(n){var o=e(n.currentTarget).closest("form").find("input").not("[type=file], [type=date]");t=setInterval(function(){o.each(function(t,n){var o=e(n),r=o.data(a);void 0===r&&(r=o.attr("value")),void 0===r&&(r="");var i=o.val();i!==r&&o.trigger("change"),o.data(a,i)})},100)}).on("blur",".form-group input",function(){clearInterval(t)})},o._jQueryInterface=function(n){return this.each(function(){var a=e(this),r=a.data(t);r||(r=new o(a,n),a.data(t,r))})},o}(it);return e.fn[n]=i._jQueryInterface,e.fn[n].Constructor=i,e.fn[n].noConflict=function(){return e.fn[n]=o,i._jQueryInterface},i}(jQuery);Popper.Defaults.modifiers.computeStyle.gpuAcceleration=!1;(function(t){var e="bmd.bootstrapMaterialDesign",n="bootstrapMaterialDesign",o=t.fn[n],a={global:{validate:!1,label:{className:"bmd-label-static"}},autofill:{selector:"body"},checkbox:{selector:".checkbox > label > input[type=checkbox]"},checkboxInline:{selector:"label.checkbox-inline > input[type=checkbox]"},collapseInline:{selector:".bmd-collapse-inline [data-toggle=\"collapse\"]"},drawer:{selector:".bmd-layout-drawer"},file:{selector:"input[type=file]"},radio:{selector:".radio > label > input[type=radio]"},radioInline:{selector:"label.radio-inline > input[type=radio]"},ripples:{selector:[".btn:not(.btn-link):not(.ripple-none)",".card-image:not(.ripple-none)",".navbar a:not(.ripple-none)",".dropdown-menu a:not(.ripple-none)",".nav-tabs a:not(.ripple-none)",".pagination li:not(.active):not(.disabled) a:not(.ripple-none)",".ripple"]},select:{selector:["select"]},switch:{selector:".switch > label > input[type=checkbox]"},text:{selector:["input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset])"]},textarea:{selector:["textarea"]},arrive:!0,instantiation:["ripples","checkbox","checkboxInline","collapseInline","drawer","radio","radioInline","switch","text","textarea","select","autofill"]},r=function(){function n(e,n){var o=this;this.$element=e,this.config=t.extend(!0,{},a,n);for(var r=t(document),i=function(){if(d){if(s>=l.length)return"break";c=l[s++]}else{if(s=l.next(),s.done)return"break";c=s.value}var e=c,n=o.config[e];if(n){var a=o._resolveSelector(n);n=t.extend(!0,{},o.config.global,n);var i=""+(e.charAt(0).toUpperCase()+e.slice(1)),f="bmd"+i;try{t(a)[f](n),document.arrive&&o.config.arrive&&r.arrive(a,function(){t(this)[f](n)})}catch(o){var u="Failed to instantiate component: $('"+a+"')["+f+"]("+n+")";throw console.error(u,o,"\nSelected elements: ",t(a)),o}}},l=this.config.instantiation,d=Array.isArray(l),s=0,l=d?l:l[Symbol.iterator]();;){var c,f=i();if("break"===f)break}}var o=n.prototype;return o.dispose=function(){this.$element.data(e,null),this.$element=null,this.config=null},o._resolveSelector=function(e){var t=e.selector;return Array.isArray(t)&&(t=t.join(", ")),t},n._jQueryInterface=function(o){return this.each(function(){var a=t(this),r=a.data(e);r||(r=new n(a,o),a.data(e,r))})},n}();return t.fn[n]=r._jQueryInterface,t.fn[n].Constructor=r,t.fn[n].noConflict=function(){return t.fn[n]=o,r._jQueryInterface},r})(jQuery)});
@@ -1 +0,0 @@
1
- {"version":3,"file":"popper.js","sources":["../../src/utils/isBrowser.js","../../src/utils/debounce.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/getReferenceNode.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/utils/getRoundedOffsets.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../../src/index.js"],"sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {browser-window--new}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n"],"names":["window","document","navigator","timeoutDuration","longerTimeoutBrowsers","i","length","isBrowser","userAgent","indexOf","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","element","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","modifiersToRun","undefined","slice","forEach","warn","enabled","update","isDestroyed","options","positionFixed","flip","originalPlacement","position","isCreated","onCreate","onUpdate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","attributes","setAttribute","applyStyle","instance","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","querySelector","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","validPlacements","placements","clockwise","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","preventOverflow","transformProp","popperStyles","transform","priority","escapeWithReference","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Popper","requestAnimationFrame","debounce","bind","Defaults","jquery","onLoad","Utils","global","PopperUtils"],"mappings":"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"}