card 1.96.2 → 1.96.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (409) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/config/initializers/patches.rb +1 -1
  4. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +1 -1
  5. data/db/migrate_core_cards/20170314175313_add_notification_event_card.rb +2 -3
  6. data/db/migrate_core_cards/data/1.11_help_text.json +16 -16
  7. data/db/migrate_core_cards/data/1.13_config_text.json +2 -2
  8. data/db/migrate_core_cards/data/1.14_config_descriptions_etc.json +12 -12
  9. data/db/migrate_core_cards/data/bootstrap_layout.json +1 -1
  10. data/db/seed/new/card_actions.yml +799 -799
  11. data/db/seed/new/card_acts.yml +2 -2
  12. data/db/seed/new/cards.yml +1610 -1610
  13. data/db/seed/new/schema_migrations.yml +8 -10
  14. data/db/seed/test/fixtures/card_actions.yml +1789 -1789
  15. data/db/seed/test/fixtures/card_acts.yml +447 -447
  16. data/db/seed/test/fixtures/card_changes.yml +66 -66
  17. data/db/seed/test/fixtures/card_references.yml +575 -575
  18. data/db/seed/test/fixtures/cards.yml +2612 -2612
  19. data/db/seed/test/seed.rb +2 -1
  20. data/lib/card/format/error.rb +12 -6
  21. data/lib/card/model/save_helper.rb +2 -1
  22. data/lib/card/query.rb +1 -1
  23. data/lib/card/set.rb +22 -12
  24. data/lib/card/view/cache.rb +3 -3
  25. data/lib/cardio.rb +3 -1
  26. data/mod/ace_editor/db/migrate_core_cards/20160804112538_add_ace_cards.rb +1 -1
  27. data/mod/basic_formats/set/all/base.rb +16 -2
  28. data/mod/basic_formats/set/all/json.rb +16 -14
  29. data/mod/bootstrap/lib/stylesheets/style_bootstrap_cards.scss +54 -4
  30. data/mod/bootstrap/vendor/bootstrap/Gemfile +3 -3
  31. data/mod/bootstrap/vendor/bootstrap/Gemfile.lock +15 -15
  32. data/mod/bootstrap/vendor/bootstrap/README.md +36 -30
  33. data/mod/bootstrap/vendor/bootstrap/_config.yml +12 -30
  34. data/mod/bootstrap/vendor/bootstrap/build/build-plugins.js +81 -0
  35. data/mod/bootstrap/vendor/bootstrap/build/generate-sri.js +2 -2
  36. data/mod/bootstrap/vendor/bootstrap/build/workbox.config.json +1 -1
  37. data/mod/bootstrap/vendor/bootstrap/build/workbox.js +1 -1
  38. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-grid.css +1 -1
  39. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-grid.css.map +1 -1
  40. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-grid.min.css +1 -1
  41. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-grid.min.css.map +1 -1
  42. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-reboot.css +5 -4
  43. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-reboot.css.map +1 -1
  44. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-reboot.min.css +2 -2
  45. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-reboot.min.css.map +1 -1
  46. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css +145 -96
  47. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css.map +1 -1
  48. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css +2 -2
  49. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css.map +1 -1
  50. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.bundle.js +123 -106
  51. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.bundle.js.map +1 -1
  52. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.bundle.min.js +2 -2
  53. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -1
  54. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.js +123 -106
  55. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.js.map +1 -1
  56. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.min.js +2 -2
  57. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.min.js.map +1 -1
  58. data/mod/bootstrap/vendor/bootstrap/js/dist/alert.js +160 -134
  59. data/mod/bootstrap/vendor/bootstrap/js/dist/alert.js.map +1 -1
  60. data/mod/bootstrap/vendor/bootstrap/js/dist/button.js +150 -125
  61. data/mod/bootstrap/vendor/bootstrap/js/dist/button.js.map +1 -1
  62. data/mod/bootstrap/vendor/bootstrap/js/dist/carousel.js +465 -406
  63. data/mod/bootstrap/vendor/bootstrap/js/dist/carousel.js.map +1 -1
  64. data/mod/bootstrap/vendor/bootstrap/js/dist/collapse.js +338 -274
  65. data/mod/bootstrap/vendor/bootstrap/js/dist/collapse.js.map +1 -1
  66. data/mod/bootstrap/vendor/bootstrap/js/dist/dropdown.js +442 -379
  67. data/mod/bootstrap/vendor/bootstrap/js/dist/dropdown.js.map +1 -1
  68. data/mod/bootstrap/vendor/bootstrap/js/dist/index.js +1 -1
  69. data/mod/bootstrap/vendor/bootstrap/js/dist/index.js.map +1 -1
  70. data/mod/bootstrap/vendor/bootstrap/js/dist/modal.js +503 -454
  71. data/mod/bootstrap/vendor/bootstrap/js/dist/modal.js.map +1 -1
  72. data/mod/bootstrap/vendor/bootstrap/js/dist/popover.js +224 -164
  73. data/mod/bootstrap/vendor/bootstrap/js/dist/popover.js.map +1 -1
  74. data/mod/bootstrap/vendor/bootstrap/js/dist/scrollspy.js +308 -248
  75. data/mod/bootstrap/vendor/bootstrap/js/dist/scrollspy.js.map +1 -1
  76. data/mod/bootstrap/vendor/bootstrap/js/dist/tab.js +218 -191
  77. data/mod/bootstrap/vendor/bootstrap/js/dist/tab.js.map +1 -1
  78. data/mod/bootstrap/vendor/bootstrap/js/dist/tooltip.js +584 -524
  79. data/mod/bootstrap/vendor/bootstrap/js/dist/tooltip.js.map +1 -1
  80. data/mod/bootstrap/vendor/bootstrap/js/dist/util.js +130 -118
  81. data/mod/bootstrap/vendor/bootstrap/js/dist/util.js.map +1 -1
  82. data/mod/bootstrap/vendor/bootstrap/js/src/alert.js +3 -3
  83. data/mod/bootstrap/vendor/bootstrap/js/src/button.js +7 -7
  84. data/mod/bootstrap/vendor/bootstrap/js/src/carousel.js +16 -13
  85. data/mod/bootstrap/vendor/bootstrap/js/src/collapse.js +25 -21
  86. data/mod/bootstrap/vendor/bootstrap/js/src/dropdown.js +16 -9
  87. data/mod/bootstrap/vendor/bootstrap/js/src/index.js +1 -1
  88. data/mod/bootstrap/vendor/bootstrap/js/src/modal.js +30 -30
  89. data/mod/bootstrap/vendor/bootstrap/js/src/popover.js +2 -2
  90. data/mod/bootstrap/vendor/bootstrap/js/src/scrollspy.js +12 -9
  91. data/mod/bootstrap/vendor/bootstrap/js/src/tab.js +5 -4
  92. data/mod/bootstrap/vendor/bootstrap/js/src/tooltip.js +11 -9
  93. data/mod/bootstrap/vendor/bootstrap/js/src/util.js +2 -3
  94. data/mod/bootstrap/vendor/bootstrap/js/tests/index.html +4 -4
  95. data/mod/bootstrap/vendor/bootstrap/js/tests/karma-bundle.conf.js +2 -2
  96. data/mod/bootstrap/vendor/bootstrap/js/tests/karma.conf.js +7 -2
  97. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/alert.js +1 -0
  98. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/button.js +1 -0
  99. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/carousel.js +1 -0
  100. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/collapse.js +1 -0
  101. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/dropdown.js +69 -0
  102. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/modal.js +3 -43
  103. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/popover.js +1 -0
  104. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/scrollspy.js +1 -0
  105. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tab.js +1 -0
  106. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tooltip.js +24 -40
  107. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/util.js +5 -1
  108. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/alert.html +1 -1
  109. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/button.html +1 -1
  110. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/carousel.html +1 -2
  111. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/collapse.html +15 -1
  112. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/dropdown.html +2 -2
  113. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/modal.html +8 -8
  114. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/popover.html +2 -2
  115. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/scrollspy.html +1 -2
  116. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tab.html +3 -2
  117. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tooltip.html +35 -23
  118. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.nuspec +5 -1
  119. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.sass.nuspec +5 -1
  120. data/mod/bootstrap/vendor/bootstrap/package-lock.json +5397 -7292
  121. data/mod/bootstrap/vendor/bootstrap/package.js +1 -1
  122. data/mod/bootstrap/vendor/bootstrap/package.json +63 -64
  123. data/mod/bootstrap/vendor/bootstrap/scss/_buttons.scss +0 -1
  124. data/mod/bootstrap/vendor/bootstrap/scss/_carousel.scss +1 -1
  125. data/mod/bootstrap/vendor/bootstrap/scss/_close.scss +8 -7
  126. data/mod/bootstrap/vendor/bootstrap/scss/_custom-forms.scss +32 -20
  127. data/mod/bootstrap/vendor/bootstrap/scss/_forms.scss +13 -15
  128. data/mod/bootstrap/vendor/bootstrap/scss/_functions.scss +1 -1
  129. data/mod/bootstrap/vendor/bootstrap/scss/_input-group.scss +22 -7
  130. data/mod/bootstrap/vendor/bootstrap/scss/_modal.scss +18 -6
  131. data/mod/bootstrap/vendor/bootstrap/scss/_navbar.scss +2 -2
  132. data/mod/bootstrap/vendor/bootstrap/scss/_reboot.scss +5 -2
  133. data/mod/bootstrap/vendor/bootstrap/scss/_tables.scss +0 -1
  134. data/mod/bootstrap/vendor/bootstrap/scss/_variables.scss +88 -65
  135. data/mod/bootstrap/vendor/bootstrap/scss/bootstrap-grid.scss +1 -1
  136. data/mod/bootstrap/vendor/bootstrap/scss/bootstrap-reboot.scss +1 -1
  137. data/mod/bootstrap/vendor/bootstrap/scss/bootstrap.scss +1 -1
  138. data/mod/bootstrap/vendor/bootstrap/scss/mixins/_breakpoints.scss +1 -1
  139. data/mod/bootstrap/vendor/bootstrap/scss/mixins/_forms.scss +7 -7
  140. data/mod/bootstrap/vendor/bootstrap/scss/mixins/_hover.scss +1 -1
  141. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/breakpoints.yml +0 -0
  142. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/browser-bugs.yml +5 -5
  143. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/browser-features.yml +0 -0
  144. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/colors.yml +0 -0
  145. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/examples.yml +0 -0
  146. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/grays.yml +0 -0
  147. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/nav.yml +0 -0
  148. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/theme-colors.yml +0 -0
  149. data/mod/bootstrap/vendor/bootstrap/{_data → site/_data}/translations.yml +0 -0
  150. data/mod/bootstrap/vendor/bootstrap/site/_includes/ads.html +1 -0
  151. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/bugify.html +0 -0
  152. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/callout-danger-async-methods.md +0 -0
  153. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/callout-info-mediaqueries-breakpoints.md +0 -0
  154. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/callout-warning-color-assistive-technologies.md +0 -0
  155. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/callout.html +0 -0
  156. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/docs-navbar.html +1 -4
  157. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/docs-sidebar.html +0 -0
  158. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/example.html +0 -0
  159. data/mod/bootstrap/vendor/bootstrap/site/_includes/favicons.html +9 -0
  160. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/footer.html +0 -0
  161. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/header.html +5 -7
  162. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/bootstrap.svg +0 -0
  163. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/download.svg +0 -0
  164. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/github.svg +0 -0
  165. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/import.svg +0 -0
  166. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/lightning.svg +0 -0
  167. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/menu.svg +0 -0
  168. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/slack.svg +0 -0
  169. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/icons/twitter.svg +0 -0
  170. data/mod/bootstrap/vendor/bootstrap/site/_includes/scripts.html +26 -0
  171. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/skippy.html +0 -0
  172. data/mod/bootstrap/vendor/bootstrap/{_includes → site/_includes}/social.html +0 -0
  173. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/default.html +0 -0
  174. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/docs.html +0 -0
  175. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/examples.html +0 -0
  176. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/home.html +0 -0
  177. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/redirect.html +1 -1
  178. data/mod/bootstrap/vendor/bootstrap/{_layouts → site/_layouts}/simple.html +0 -0
  179. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/about/brand.md +5 -5
  180. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/about/license.md +0 -0
  181. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/about/overview.md +0 -0
  182. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/about/translations.md +0 -0
  183. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/assets/brand/bootstrap-outline.svg +4 -0
  184. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/assets/brand/bootstrap-punchout.svg +4 -0
  185. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/brand/bootstrap-social-logo.png +0 -0
  186. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/brand/bootstrap-social.png +0 -0
  187. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/assets/brand/bootstrap-solid.svg +4 -0
  188. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/css/docs.min.css +0 -0
  189. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/assets/css/docs.min.css.map +1 -0
  190. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/bootstrap-stack.png +0 -0
  191. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/bootstrap-themes.png +0 -0
  192. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/android-chrome-192x192.png +0 -0
  193. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/android-chrome-512x512.png +0 -0
  194. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/apple-touch-icon.png +0 -0
  195. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/browserconfig.xml +1 -1
  196. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/favicon-16x16.png +0 -0
  197. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/favicon-32x32.png +0 -0
  198. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/manifest.json +2 -2
  199. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/mstile-144x144.png +0 -0
  200. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/mstile-150x150.png +0 -0
  201. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/mstile-310x150.png +0 -0
  202. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/mstile-310x310.png +0 -0
  203. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/img/favicons/mstile-70x70.png +0 -0
  204. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/assets/img/favicons/safari-pinned-tab.svg +4 -0
  205. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/docs.min.js +0 -0
  206. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/src/application.js +0 -0
  207. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/src/ie-emulation-modes-warning.js +0 -0
  208. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/src/pwa.js +0 -0
  209. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/src/search.js +0 -0
  210. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/vendor/anchor.min.js +0 -0
  211. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/vendor/clipboard.min.js +0 -0
  212. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/vendor/holder.min.js +0 -0
  213. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/vendor/jquery-slim.min.js +0 -0
  214. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/js/vendor/popper.min.js +0 -0
  215. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_ads.scss +0 -0
  216. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_algolia.scss +0 -0
  217. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_anchor.scss +0 -0
  218. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_brand.scss +0 -0
  219. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_browser-bugs.scss +0 -0
  220. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_buttons.scss +0 -0
  221. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_callouts.scss +0 -0
  222. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_clipboard-js.scss +0 -0
  223. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_colors.scss +0 -0
  224. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_component-examples.scss +0 -0
  225. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_content.scss +0 -0
  226. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_examples.scss +0 -0
  227. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_footer.scss +0 -0
  228. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_masthead.scss +0 -0
  229. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_nav.scss +0 -0
  230. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_sidebar.scss +0 -0
  231. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_skiplink.scss +0 -0
  232. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_syntax.scss +0 -0
  233. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/_variables.scss +0 -0
  234. data/mod/bootstrap/vendor/bootstrap/{assets → site/docs/4.1/assets}/scss/docs.scss +3 -3
  235. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/browser-bugs.md +0 -0
  236. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/alerts.md +0 -0
  237. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/badge.md +0 -0
  238. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/breadcrumb.md +0 -0
  239. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/button-group.md +0 -0
  240. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/buttons.md +0 -0
  241. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/card.md +2 -2
  242. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/carousel.md +0 -0
  243. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/collapse.md +0 -0
  244. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/dropdowns.md +3 -2
  245. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/forms.md +17 -17
  246. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/input-group.md +27 -27
  247. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/jumbotron.md +0 -0
  248. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/list-group.md +0 -0
  249. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/modal.md +0 -0
  250. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/navbar.md +3 -3
  251. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/navs.md +0 -0
  252. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/pagination.md +0 -0
  253. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/popovers.md +2 -2
  254. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/progress.md +0 -0
  255. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/scrollspy.md +0 -0
  256. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/components/tooltips.md +11 -0
  257. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/code.md +0 -0
  258. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/figures.md +0 -0
  259. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/images.md +0 -0
  260. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/reboot.md +0 -0
  261. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/tables.md +16 -5
  262. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/content/typography.md +0 -0
  263. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/album/album.css +0 -2
  264. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/album/index.html +15 -15
  265. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/blog/blog.css +0 -5
  266. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/blog/index.html +7 -7
  267. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/carousel/carousel.css +0 -0
  268. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/carousel/index.html +5 -5
  269. data/mod/bootstrap/vendor/bootstrap/site/docs/4.1/examples/checkout/form-validation.css +5 -0
  270. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/checkout/index.html +6 -6
  271. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/cover/cover.css +0 -0
  272. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/cover/index.html +4 -4
  273. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/dashboard/dashboard.css +0 -7
  274. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/dashboard/index.html +4 -4
  275. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/floating-labels/floating-labels.css +23 -0
  276. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/floating-labels/index.html +2 -2
  277. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/grid/grid.css +0 -0
  278. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/grid/index.html +9 -9
  279. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/index.html +0 -0
  280. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/jumbotron/index.html +4 -4
  281. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/jumbotron/jumbotron.css +0 -0
  282. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbar-bottom/index.html +4 -4
  283. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbar-fixed/index.html +4 -4
  284. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbar-fixed/navbar-top-fixed.css +0 -0
  285. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbar-static/index.html +4 -4
  286. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbar-static/navbar-top.css +0 -0
  287. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbars/index.html +4 -4
  288. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/navbars/navbar.css +0 -0
  289. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/offcanvas/index.html +10 -10
  290. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/offcanvas/offcanvas.css +0 -4
  291. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/offcanvas/offcanvas.js +0 -0
  292. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/pricing/index.html +10 -10
  293. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/pricing/pricing.css +0 -5
  294. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/product/index.html +15 -15
  295. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/product/product.css +0 -5
  296. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/album.png +0 -0
  297. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/blog.png +0 -0
  298. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/carousel.png +0 -0
  299. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/checkout.png +0 -0
  300. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/cover.png +0 -0
  301. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/dashboard.png +0 -0
  302. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/floating-labels.png +0 -0
  303. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/grid.png +0 -0
  304. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/jumbotron.png +0 -0
  305. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/navbar-bottom.png +0 -0
  306. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/navbar-fixed.png +0 -0
  307. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/navbar-static.png +0 -0
  308. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/navbars.png +0 -0
  309. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/offcanvas.png +0 -0
  310. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/pricing.png +0 -0
  311. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/product.png +0 -0
  312. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/sign-in.png +0 -0
  313. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/starter-template.png +0 -0
  314. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/sticky-footer-navbar.png +0 -0
  315. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/screenshots/sticky-footer.png +0 -0
  316. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sign-in/index.html +2 -2
  317. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sign-in/signin.css +0 -0
  318. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/starter-template/index.html +4 -4
  319. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/starter-template/starter-template.css +0 -0
  320. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sticky-footer-navbar/index.html +4 -4
  321. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sticky-footer-navbar/sticky-footer-navbar.css +0 -0
  322. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sticky-footer/index.html +1 -1
  323. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/sticky-footer/sticky-footer.css +0 -0
  324. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/tooltip-viewport/index.html +4 -4
  325. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/tooltip-viewport/tooltip-viewport.css +0 -0
  326. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/examples/tooltip-viewport/tooltip-viewport.js +0 -0
  327. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/extend/approach.md +0 -0
  328. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/extend/icons.md +1 -1
  329. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/extend/index.md +0 -0
  330. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/accessibility.md +0 -0
  331. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/best-practices.md +0 -0
  332. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/browsers-devices.md +0 -0
  333. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/build-tools.md +1 -1
  334. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/contents.md +12 -8
  335. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/download.md +0 -0
  336. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/introduction.md +2 -0
  337. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/javascript.md +3 -1
  338. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/theming.md +16 -16
  339. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/getting-started/webpack.md +1 -6
  340. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/layout/grid.md +1 -1
  341. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/layout/media-object.md +0 -0
  342. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/layout/overview.md +0 -0
  343. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/layout/utilities-for-layout.md +0 -0
  344. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/migration.md +0 -0
  345. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/borders.md +0 -0
  346. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/clearfix.md +0 -0
  347. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/close-icon.md +0 -0
  348. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/colors.md +1 -1
  349. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/display.md +0 -0
  350. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/embed.md +0 -0
  351. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/flex.md +0 -0
  352. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/float.md +0 -0
  353. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/image-replacement.md +1 -1
  354. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/position.md +0 -0
  355. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/screenreaders.md +0 -0
  356. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/shadows.md +1 -1
  357. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/sizing.md +0 -0
  358. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/spacing.md +0 -0
  359. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/text.md +0 -0
  360. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/vertical-align.md +0 -0
  361. data/mod/bootstrap/vendor/bootstrap/{docs → site/docs}/4.1/utilities/visibility.md +1 -1
  362. data/mod/bootstrap/vendor/bootstrap/{favicon.ico → site/favicon.ico} +0 -0
  363. data/mod/bootstrap/vendor/bootstrap/{index.html → site/index.html} +2 -2
  364. data/mod/bootstrap/vendor/bootstrap/{robots.txt → site/robots.txt} +0 -0
  365. data/mod/bootstrap/vendor/bootstrap/{sw.js → site/sw.js} +1 -1
  366. data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +1 -1
  367. data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +5 -8
  368. data/mod/carrierwave/template/type/file/file_chooser.haml +1 -1
  369. data/mod/core/set/abstract/code_file.rb +4 -0
  370. data/mod/core/set/all/haml.rb +2 -2
  371. data/mod/follow/spec/set/all/notify_spec.rb +2 -1
  372. data/mod/google_analytics/set/all/google_analytics.rb +5 -3
  373. data/mod/item/set/all/bar.haml +6 -3
  374. data/mod/item/set/all/bar.rb +27 -12
  375. data/mod/item/set/all/box.haml +4 -3
  376. data/mod/item/set/all/box.rb +1 -1
  377. data/mod/item/set/all/expanded_bar.haml +8 -6
  378. data/mod/item/spec/set/all/bar_spec.rb +3 -3
  379. data/mod/machines/lib/javascript/decko_filter.js.coffee +5 -1
  380. data/mod/machines/lib/stylesheets/style_cards.scss +16 -24
  381. data/mod/pointer/set/abstract/01_paging.rb +4 -4
  382. data/mod/pointer/set/abstract/02_pointer/options_api.rb +10 -12
  383. data/mod/prosemirror_editor/db/migrate_core_cards/20160804112548_add_prosemirror_cards.rb +1 -1
  384. data/mod/search/set/abstract/search.rb +9 -6
  385. data/mod/search/set/abstract/wql_search.rb +20 -5
  386. data/mod/search/set/self/search.rb +1 -1
  387. data/mod/standard/set/all/error.rb +15 -0
  388. data/mod/standard/set/all/rich_html/content.rb +30 -21
  389. data/mod/standard/set/all/rich_html/content/labeled.haml +4 -0
  390. data/mod/standard/set/all/rich_html/error.rb +11 -12
  391. data/mod/standard/set/all/rich_html/title.rb +1 -1
  392. data/mod/standard/spec/content/chunk/include_spec.rb +1 -1
  393. data/mod/standard/spec/set/all/error_spec.rb +1 -1
  394. data/mod/standard/spec/set/type/email_template/email_config_spec.rb +10 -9
  395. data/mod/standard/spec/set/type/uri_spec.rb +7 -7
  396. data/mod/tinymce_editor/db/migrate_core_cards/20160804112560_add_tinymce_cards.rb +1 -1
  397. data/mod/utility/set/abstract/bs_badge/labeled_badge.haml +1 -1
  398. data/mod/utility/set/abstract/media/media_snippet.haml +1 -2
  399. metadata +231 -230
  400. data/mod/bootstrap/vendor/bootstrap/_includes/ads.html +0 -1
  401. data/mod/bootstrap/vendor/bootstrap/_includes/favicons.html +0 -9
  402. data/mod/bootstrap/vendor/bootstrap/_includes/scripts.html +0 -26
  403. data/mod/bootstrap/vendor/bootstrap/assets/brand/bootstrap-outline.svg +0 -6
  404. data/mod/bootstrap/vendor/bootstrap/assets/brand/bootstrap-punchout.svg +0 -6
  405. data/mod/bootstrap/vendor/bootstrap/assets/brand/bootstrap-solid.svg +0 -6
  406. data/mod/bootstrap/vendor/bootstrap/assets/css/docs.min.css.map +0 -1
  407. data/mod/bootstrap/vendor/bootstrap/assets/img/favicons/safari-pinned-tab.svg +0 -20
  408. data/mod/bootstrap/vendor/bootstrap/build/upload-preview.sh +0 -13
  409. data/mod/bootstrap/vendor/bootstrap/docs/4.1/examples/checkout/form-validation.css +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\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*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\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 */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && 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 */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\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 */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\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 */\nfunction 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\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar 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 */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\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 */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\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 var 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 TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return 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 */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\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 */\nfunction 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 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\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 var 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/**\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 */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\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 */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var 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/*\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\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var 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\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\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 */\nfunction getBoundingClientRect(element) {\n var 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 var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var 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 var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var 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 var 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\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var 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 var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\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 (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\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 */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\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\nfunction 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 var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\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 */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\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 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\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 */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var 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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\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 */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\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 */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\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 */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\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 */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var 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 var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\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 */\nfunction 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\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 */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\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 */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var 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\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 */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var 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(this.state, this.popper, this.reference, this.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 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\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(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : '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/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\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 */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction 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 explicity 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/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\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 */\nfunction setupEventListeners(reference, options, state, updateBound) {\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 var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\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 */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction 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(function (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\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 */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\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 */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\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 */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\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 */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\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 */\nfunction 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 */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var 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 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\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/**\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 */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var 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 var 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 var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\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 var invertTop = sideA === 'bottom' ? -1 : 1;\n var 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 var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\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 */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\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 */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var 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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var 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 var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = 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 = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\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 */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\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-right` (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 */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar 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 */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar 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 */\nfunction 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 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var 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(function (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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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 = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = 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\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 */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var 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 var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var 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 var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\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 */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var 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 var 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 var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\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 var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\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 var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (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(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (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 */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\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\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 */\nfunction preventOverflow(data, options) {\n var boundariesElement = 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 var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\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 var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\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 */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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\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 */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\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 */\nvar modifiers = {\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 unitless, 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 * > More on this [reading 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 * An 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 has always 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 eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point 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 conjuction 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\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 you 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 informations used by Popper.js\n * this object get 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\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, 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 */\nvar Defaults = {\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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as 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 function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\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 = _extends({}, 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(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\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(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var 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\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\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\n }]);\n return Popper;\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\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","tabClass","join","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;EACrC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;;EAErB,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,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"}
1
+ {"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => elem.getAttribute('data-parent') === this._config.parent)\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\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*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\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 */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && 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 */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\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 */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\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 */\nfunction 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\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar 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 */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\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 */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\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 var 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 TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return 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 */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\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 */\nfunction 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 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\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 var 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/**\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 */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\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 */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var 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/*\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\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var 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\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\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 */\nfunction getBoundingClientRect(element) {\n var 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 var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var 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 var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var 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 var 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\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var 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 var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\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 (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\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 */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\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\nfunction 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 var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\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 */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\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 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\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 */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var 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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\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 */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\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 */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\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 */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\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 */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var 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 var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\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 */\nfunction 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\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 */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\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 */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var 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\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 */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var 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(this.state, this.popper, this.reference, this.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 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\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(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : '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/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\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 */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction 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 explicity 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/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\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 */\nfunction setupEventListeners(reference, options, state, updateBound) {\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 var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\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 */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction 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(function (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\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 */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\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 */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\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 */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\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 */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\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 */\nfunction 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 */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var 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 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\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/**\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 */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var 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 var 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 var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\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 var invertTop = sideA === 'bottom' ? -1 : 1;\n var 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 var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\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 */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\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 */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var 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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var 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 var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = 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 = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\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 */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\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-right` (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 */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar 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 */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar 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 */\nfunction 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 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var 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(function (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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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 = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = 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\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 */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var 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 var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var 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 var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\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 */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var 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 var 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 var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\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 var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\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 var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (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(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (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 */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\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\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 */\nfunction preventOverflow(data, options) {\n var boundariesElement = 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 var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\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 var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\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 */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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\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 */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\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 */\nvar modifiers = {\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 unitless, 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 * > More on this [reading 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 * An 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 has always 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 eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point 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 conjuction 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\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 you 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 informations used by Popper.js\n * this object get 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\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, 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 */\nvar Defaults = {\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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as 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 function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\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 = _extends({}, 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(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\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(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var 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\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\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\n }]);\n return Popper;\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\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(document).find(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n const nodes = [].slice.call(document.querySelectorAll(this._selector))\n $(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY))\n\n const scrollSpysLength = scrollSpys.length\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))\n $(dropdownToggleList).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","hasAttribute","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","direction","off","_keydown","documentElement","clearTimeout","tagName","which","parentNode","slice","querySelectorAll","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","carousels","i","len","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","makeArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","add","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","find","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","$tip","tabClass","join","popperData","popperInstance","instance","popper","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","$link","parents","nodes","scrollSpys","scrollSpysLength","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA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"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e(t.bootstrap={},t.jQuery)}(this,function(t,e){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function c(r){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},e=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=o[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}for(var r,n,o,a,l,f,h,u,d,p,g,m,_,v,E,y,b,T,C,w,I,D,A,S,O,N,k,L,P,x,j,M,R,H,W,F,U,B,K,V,Q,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,ot,st,at,lt,ct,ft,ht,ut,dt,pt,gt=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=e[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e=e&&e.hasOwnProperty("default")?e.default:e),mt=(n="alert",a="."+(o="bs.alert"),l=(r=e).fn[n],f={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},h="alert",u="fade",d="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,o),this._element=null},t._getRootElement=function(t){var e=gt.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+h)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(f.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(d),r(e).hasClass(u)){var t=gt.getTransitionDurationFromElement(e);r(e).one(gt.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(f.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(o);e||(e=new i(this),t.data(o,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.1"}}]),i}(),r(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),r.fn[n]=p._jQueryInterface,r.fn[n].Constructor=p,r.fn[n].noConflict=function(){return r.fn[n]=l,p._jQueryInterface},p),_t=(m="button",v="."+(_="bs.button"),E=".data-api",y=(g=e).fn[m],b="active",T="btn",w='[data-toggle^="button"]',I='[data-toggle="buttons"]',D="input",A=".active",S=".btn",O={CLICK_DATA_API:"click"+v+E,FOCUS_BLUR_DATA_API:(C="focus")+v+E+" blur"+v+E},N=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(I)[0];if(n){var i=g(this._element).find(D)[0];if(i){if("radio"===i.type)if(i.checked&&g(this._element).hasClass(b))t=!1;else{var r=g(n).find(A)[0];r&&g(r).removeClass(b)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!g(this._element).hasClass(b),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!g(this._element).hasClass(b)),t&&g(this._element).toggleClass(b)},t.dispose=function(){g.removeData(this._element,_),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(_);t||(t=new n(this),g(this).data(_,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.1"}}]),n}(),g(document).on(O.CLICK_DATA_API,w,function(t){t.preventDefault();var e=t.target;g(e).hasClass(T)||(e=g(e).closest(S)),N._jQueryInterface.call(g(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,w,function(t){var e=g(t.target).closest(S)[0];g(e).toggleClass(C,/^focus(in)?$/.test(t.type))}),g.fn[m]=N._jQueryInterface,g.fn[m].Constructor=N,g.fn[m].noConflict=function(){return g.fn[m]=y,N._jQueryInterface},N),vt=(L="carousel",x="."+(P="bs.carousel"),j=".data-api",M=(k=e).fn[L],R={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},H={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",F="prev",U="left",B="right",K={SLIDE:"slide"+x,SLID:"slid"+x,KEYDOWN:"keydown"+x,MOUSEENTER:"mouseenter"+x,MOUSELEAVE:"mouseleave"+x,TOUCHEND:"touchend"+x,LOAD_DATA_API:"load"+x+j,CLICK_DATA_API:"click"+x+j},V="carousel",Q="active",Y="slide",G="carousel-item-right",q="carousel-item-left",z="carousel-item-next",X="carousel-item-prev",J={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Z=function(){function o(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=k(t)[0],this._indicatorsElement=k(this._element).find(J.INDICATORS)[0],this._addEventListeners()}var t=o.prototype;return t.next=function(){this._isSliding||this._slide(W)},t.nextWhenVisible=function(){!document.hidden&&k(this._element).is(":visible")&&"hidden"!==k(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(F)},t.pause=function(t){t||(this._isPaused=!0),k(this._element).find(J.NEXT_PREV)[0]&&(gt.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(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))},t.to=function(t){var e=this;this._activeElement=k(this._element).find(J.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)k(this._element).one(K.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?W:F;this._slide(i,this._items[t])}},t.dispose=function(){k(this._element).off(x),k.removeData(this._element,P),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=c({},R,t),gt.typeCheckConfig(L,t,H),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&k(this._element).on(K.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(k(this._element).on(K.MOUSEENTER,function(t){return e.pause(t)}).on(K.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&k(this._element).on(K.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=k.makeArray(k(t).parent().find(J.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===W,i=t===F,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===F?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(k(this._element).find(J.ACTIVE_ITEM)[0]),r=k.Event(K.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return k(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){k(this._indicatorsElement).find(J.ACTIVE).removeClass(Q);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&k(e).addClass(Q)}},t._slide=function(t,e){var n,i,r,o=this,s=k(this._element).find(J.ACTIVE_ITEM)[0],a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),f=Boolean(this._interval);if(t===W?(n=q,i=z,r=U):(n=G,i=X,r=B),l&&k(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(l);var h=k.Event(K.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(k(this._element).hasClass(Y)){k(l).addClass(i),gt.reflow(l),k(s).addClass(n),k(l).addClass(n);var u=gt.getTransitionDurationFromElement(s);k(s).one(gt.TRANSITION_END,function(){k(l).removeClass(n+" "+i).addClass(Q),k(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return k(o._element).trigger(h)},0)}).emulateTransitionEnd(u)}else k(s).removeClass(Q),k(l).addClass(Q),this._isSliding=!1,k(this._element).trigger(h);f&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var t=k(this).data(P),e=c({},R,k(this).data());"object"==typeof i&&(e=c({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new o(this,e),k(this).data(P,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},o._dataApiClickHandler=function(t){var e=gt.getSelectorFromElement(this);if(e){var n=k(e)[0];if(n&&k(n).hasClass(V)){var i=c({},k(n).data(),k(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(k(n),i),r&&k(n).data(P).to(r),t.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return R}}]),o}(),k(document).on(K.CLICK_DATA_API,J.DATA_SLIDE,Z._dataApiClickHandler),k(window).on(K.LOAD_DATA_API,function(){k(J.DATA_RIDE).each(function(){var t=k(this);Z._jQueryInterface.call(t,t.data())})}),k.fn[L]=Z._jQueryInterface,k.fn[L].Constructor=Z,k.fn[L].noConflict=function(){return k.fn[L]=M,Z._jQueryInterface},Z),Et=(tt="collapse",nt="."+(et="bs.collapse"),it=($=e).fn[tt],rt={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},st={SHOW:"show"+nt,SHOWN:"shown"+nt,HIDE:"hide"+nt,HIDDEN:"hidden"+nt,CLICK_DATA_API:"click"+nt+".data-api"},at="show",lt="collapse",ct="collapsing",ft="collapsed",ht="width",ut="height",dt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},pt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=$.makeArray($('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=$(dt.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],o=gt.getSelectorFromElement(r);null!==o&&0<$(o).filter(t).length&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){$(this._element).hasClass(at)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!$(this._element).hasClass(at)&&(this._parent&&0===(t=$.makeArray($(this._parent).find(dt.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=$(t).not(this._selector).data(et))&&e._isTransitioning))){var i=$.Event(st.SHOW);if($(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call($(t).not(this._selector),"hide"),e||$(t).data(et,null));var r=this._getDimension();$(this._element).removeClass(lt).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&$(this._triggerArray).removeClass(ft).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){$(n._element).removeClass(ct).addClass(lt).addClass(at),n._element.style[r]="",n.setTransitioning(!1),$(n._element).trigger(st.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&$(this._element).hasClass(at)){var e=$.Event(st.HIDE);if($(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",gt.reflow(this._element),$(this._element).addClass(ct).removeClass(lt).removeClass(at),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],o=gt.getSelectorFromElement(r);if(null!==o)$(o).hasClass(at)||$(r).addClass(ft).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){t.setTransitioning(!1),$(t._element).removeClass(ct).addClass(lt).trigger(st.HIDDEN)}).emulateTransitionEnd(s)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){$.removeData(this._element,et),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=c({},rt,t)).toggle=Boolean(t.toggle),gt.typeCheckConfig(tt,t,ot),t},t._getDimension=function(){return $(this._element).hasClass(ht)?ht:ut},t._getParent=function(){var n=this,t=null;gt.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=$(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return $(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=$(t).hasClass(at);0<e.length&&$(e).toggleClass(ft,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=gt.getSelectorFromElement(t);return e?$(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=$(this),e=t.data(et),n=c({},rt,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(et,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return rt}}]),a}(),$(document).on(st.CLICK_DATA_API,dt.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=$(this),e=gt.getSelectorFromElement(this);$(e).each(function(){var t=$(this),e=t.data(et)?"toggle":n.data();pt._jQueryInterface.call(t,e)})}),$.fn[tt]=pt._jQueryInterface,$.fn[tt].Constructor=pt,$.fn[tt].noConflict=function(){return $.fn[tt]=it,pt._jQueryInterface},pt),yt="undefined"!=typeof window&&"undefined"!=typeof document,bt=["Edge","Trident","Firefox"],Tt=0,Ct=0;Ct<bt.length;Ct+=1)if(yt&&0<=navigator.userAgent.indexOf(bt[Ct])){Tt=1;break}var wt=yt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Tt))}};function It(t){return t&&"[object Function]"==={}.toString.call(t)}function Dt(t,e){if(1!==t.nodeType)return[];var n=getComputedStyle(t,null);return e?n[e]:n}function At(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function St(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Dt(t),n=e.overflow,i=e.overflowX,r=e.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?t:St(At(t))}var Ot=yt&&!(!window.MSInputMethodContext||!document.documentMode),Nt=yt&&/MSIE 10/.test(navigator.userAgent);function kt(t){return 11===t?Ot:10===t?Nt:Ot||Nt}function Lt(t){if(!t)return document.documentElement;for(var e=kt(10)?document.body:null,n=t.offsetParent;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===Dt(n,"position")?Lt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Pt(t){return null!==t.parentNode?Pt(t.parentNode):t}function xt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,r=n?e:t,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(t!==l&&e!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&Lt(s.firstElementChild)!==s?Lt(l):l;var c=Pt(t);return c.host?xt(c.host,e):xt(t,Pt(e).host)}function jt(t){var e="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function Mt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function Rt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],kt(10)?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function Ht(){var t=document.body,e=document.documentElement,n=kt(10)&&getComputedStyle(e);return{height:Rt("Height",t,e,n),width:Rt("Width",t,e,n)}}var Wt=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Ft=function(){function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}}(),Ut=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Bt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Kt(t){return Bt({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Vt(t){var e={};try{if(kt(10)){e=t.getBoundingClientRect();var n=jt(t,"top"),i=jt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},o="HTML"===t.nodeName?Ht():{},s=o.width||t.clientWidth||r.right-r.left,a=o.height||t.clientHeight||r.bottom-r.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=Dt(t);l-=Mt(f,"x"),c-=Mt(f,"y"),r.width-=l,r.height-=c}return Kt(r)}function Qt(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=kt(10),r="HTML"===e.nodeName,o=Vt(t),s=Vt(e),a=St(t),l=Dt(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&"HTML"===e.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var h=Kt({top:o.top-s.top-c,left:o.left-s.left-f,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);h.top-=c-u,h.bottom-=c-u,h.left-=f-d,h.right-=f-d,h.marginTop=u,h.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(h=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=jt(e,"top"),r=jt(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}(h,e)),h}function Yt(t){if(!t||!t.parentElement||kt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Dt(e,"transform");)e=e.parentElement;return e||document.documentElement}function Gt(t,e,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?Yt(t):xt(t,e);if("viewport"===i)o=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Qt(t,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:jt(n),a=e?0:jt(n,"left");return Kt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=St(At(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Qt(a,s,r);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===Dt(e,"position")||t(At(e)))}(s))o=l;else{var c=Ht(),f=c.height,h=c.width;o.top+=l.top-l.marginTop,o.bottom=f+l.top,o.left+=l.left-l.marginLeft,o.right=h+l.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function qt(t,e,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Gt(i,n,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Bt({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),f=0<c.length?c[0].key:l[0].key,h=t.split("-")[1];return f+(h?"-"+h:"")}function zt(t,e,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return Qt(n,i?Yt(e):xt(e,n),i)}function Xt(t){var e=getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Jt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function Zt(t,e,n){n=n.split("-")[0];var i=Xt(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[Jt(a)],r}function $t(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function te(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=$t(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&It(e)&&(n.offsets.popper=Kt(n.offsets.popper),n.offsets.reference=Kt(n.offsets.reference),n=e(n,t))}),n}function ee(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function ne(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var r=e[i],o=r?""+r+n:t;if("undefined"!=typeof document.body.style[o])return o}return null}function ie(t){var e=t.ownerDocument;return e?e.defaultView:window}function re(t,e,n,i){n.updateBound=i,ie(t).addEventListener("resize",n.updateBound,{passive:!0});var r=St(t);return function t(e,n,i,r){var o="BODY"===e.nodeName,s=o?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),o||t(St(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function oe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,ie(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function se(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function ae(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&se(i[t])&&(e="px"),n.style[t]=i[t]+e})}function le(t,e,n){var i=$t(t,function(t){return t.name===e}),r=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!r){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var ce=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],fe=ce.slice(3);function he(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=fe.indexOf(t),i=fe.slice(n+1).concat(fe.slice(0,n));return e?i.reverse():i}var ue={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function de(t,r,o,e){var s=[0,0],a=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),i=n.indexOf($t(n,function(t){return-1!==t.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(t,e){var n=(1===e?!a:a)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Kt(a)[e]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(t,n,r,o)})})).forEach(function(n,i){n.forEach(function(t,e){se(t)&&(s[i]+=t*("-"===n[e-1]?-1:1))})}),s}var pe={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:Ut({},l,o[l]),end:Ut({},l,o[l]+o[c]-s[c])};t.offsets.popper=Bt({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,r=t.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=se(+n)?[+n,0]:de(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||Lt(t.instance.popper);t.instance.reference===e&&(e=Lt(e));var n=ne("transform"),r=t.instance.popper.style,o=r.top,s=r.left,a=r[n];r.top="",r.left="",r[n]="";var l=Gt(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);r.top=o,r.left=s,r[n]=a,i.boundaries=l;var c=i.priority,f=t.offsets.popper,h={primary:function(t){var e=f[t];return f[t]<l[t]&&!i.escapeWithReference&&(e=Math.max(f[t],l[t])),Ut({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=f[e];return f[t]>l[t]&&!i.escapeWithReference&&(n=Math.min(f[e],l[t]-("right"===t?f.width:f.height))),Ut({},e,n)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=Bt({},f,h[e](t))}),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(t.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!le(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var r=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",f=l?"Top":"Left",h=f.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=Xt(i)[c];a[d]-p<s[h]&&(t.offsets.popper[h]-=s[h]-(a[d]-p)),a[h]+p>s[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]),t.offsets.popper=Kt(t.offsets.popper);var g=a[h]+a[c]/2-p/2,m=Dt(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),E=g-t.offsets.popper[h]-_-v;return E=Math.max(Math.min(s[c]-p,E),0),t.arrowElement=i,t.offsets.arrow=(Ut(n={},h,Math.round(E)),Ut(n,u,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,g){if(ee(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var m=Gt(p.instance.popper,p.instance.reference,g.padding,g.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=Jt(_),E=p.placement.split("-")[1]||"",y=[];switch(g.behavior){case ue.FLIP:y=[_,v];break;case ue.CLOCKWISE:y=he(_);break;case ue.COUNTERCLOCKWISE:y=he(_,!0);break;default:y=g.behavior}return y.forEach(function(t,e){if(_!==t||y.length===e+1)return p;_=p.placement.split("-")[0],v=Jt(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)<o(r.right)||"top"===_&&o(i.bottom)>o(r.top)||"bottom"===_&&o(i.top)<o(r.bottom),a=o(i.left)<o(m.left),l=o(i.right)>o(m.right),c=o(i.top)<o(m.top),f=o(i.bottom)>o(m.bottom),h="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&f,u=-1!==["top","bottom"].indexOf(_),d=!!g.flipVariations&&(u&&"start"===E&&a||u&&"end"===E&&l||!u&&"start"===E&&c||!u&&"end"===E&&f);(s||h||d)&&(p.flipped=!0,(s||h)&&(_=y[e+1]),d&&(E="end"===(n=E)?"start":"start"===n?"end":n),p.placement=_+(E?"-"+E:""),p.offsets.popper=Bt({},p.offsets.popper,Zt(p.instance.popper,p.offsets.reference,p.placement)),p=te(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=Jt(e),t.offsets.popper=Kt(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!le(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=$t(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,r=t.offsets.popper,o=$t(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,a=Vt(Lt(t.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.round(r.top),bottom:Math.round(r.bottom),right:Math.floor(r.right)},f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",u=ne("transform"),d=void 0,p=void 0;if(p="bottom"===f?-a.height+c.bottom:c.top,d="right"===h?-a.width+c.right:c.left,s&&u)l[u]="translate3d("+d+"px, "+p+"px, 0)",l[f]=0,l[h]=0,l.willChange="transform";else{var g="bottom"===f?-1:1,m="right"===h?-1:1;l[f]=p*g,l[h]=d*m,l.willChange=f+", "+h}var _={"x-placement":t.placement};return t.attributes=Bt({},_,t.attributes),t.styles=Bt({},l,t.styles),t.arrowStyles=Bt({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return ae(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&ae(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,r){var o=zt(r,e,t,n.positionFixed),s=qt(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),ae(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},ge=function(){function o(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};Wt(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=wt(this.update.bind(this)),this.options=Bt({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(Bt({},o.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=Bt({},o.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Bt({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&It(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Ft(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=zt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=qt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Zt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=te(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,ee(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ne("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=re(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return oe.call(this)}}]),o}();ge.Utils=("undefined"!=typeof window?window:global).PopperUtils,ge.placements=ce,ge.Defaults=pe;var me,_e,ve,Ee,ye,be,Te,Ce,we,Ie,De,Ae,Se,Oe,Ne,ke,Le,Pe,xe,je,Me,Re,He,We,Fe,Ue,Be,Ke,Ve,Qe,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,on,sn,an,ln,cn,fn,hn,un,dn,pn,gn,mn,_n,vn,En,yn,bn,Tn,Cn,wn,In,Dn,An,Sn,On,Nn,kn,Ln,Pn,xn,jn,Mn,Rn,Hn,Wn,Fn,Un,Bn,Kn,Vn,Qn,Yn,Gn,qn,zn,Xn,Jn,Zn,$n,ti,ei,ni,ii,ri,oi,si,ai,li,ci,fi,hi,ui,di,pi,gi,mi,_i,vi,Ei,yi,bi,Ti=(_e="dropdown",Ee="."+(ve="bs.dropdown"),ye=".data-api",be=(me=e).fn[_e],Te=new RegExp("38|40|27"),Ce={HIDE:"hide"+Ee,HIDDEN:"hidden"+Ee,SHOW:"show"+Ee,SHOWN:"shown"+Ee,CLICK:"click"+Ee,CLICK_DATA_API:"click"+Ee+ye,KEYDOWN_DATA_API:"keydown"+Ee+ye,KEYUP_DATA_API:"keyup"+Ee+ye},we="disabled",Ie="show",De="dropup",Ae="dropright",Se="dropleft",Oe="dropdown-menu-right",Ne="position-static",ke='[data-toggle="dropdown"]',Le=".dropdown form",Pe=".dropdown-menu",xe=".navbar-nav",je=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Me="top-start",Re="top-end",He="bottom-start",We="bottom-end",Fe="right-start",Ue="left-start",Be={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Ke={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Ve=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!me(this._element).hasClass(we)){var t=l._getParentFromElement(this._element),e=me(this._menu).hasClass(Ie);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=me.Event(Ce.SHOW,n);if(me(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof ge)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:gt.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&me(t).addClass(Ne),this._popper=new ge(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===me(t).closest(xe).length&&me(document.body).children().on("mouseover",null,me.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),me(this._menu).toggleClass(Ie),me(t).toggleClass(Ie).trigger(me.Event(Ce.SHOWN,n))}}}},t.dispose=function(){me.removeData(this._element,ve),me(this._element).off(Ee),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;me(this._element).on(Ce.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=c({},this.constructor.Default,me(this._element).data(),t),gt.typeCheckConfig(_e,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=me(t).find(Pe)[0]}return this._menu},t._getPlacement=function(){var t=me(this._element).parent(),e=He;return t.hasClass(De)?(e=Me,me(this._menu).hasClass(Oe)&&(e=Re)):t.hasClass(Ae)?e=Fe:t.hasClass(Se)?e=Ue:me(this._menu).hasClass(Oe)&&(e=We),e},t._detectNavbar=function(){return 0<me(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=c({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=me(this).data(ve);if(t||(t=new l(this,"object"==typeof e?e:null),me(this).data(ve,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=me.makeArray(me(ke)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=me(e[n]).data(ve),o={relatedTarget:e[n]};if(r){var s=r._menu;if(me(i).hasClass(Ie)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&me.contains(i,t.target))){var a=me.Event(Ce.HIDE,o);me(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&me(document.body).children().off("mouseover",null,me.noop),e[n].setAttribute("aria-expanded","false"),me(s).removeClass(Ie),me(i).removeClass(Ie).trigger(me.Event(Ce.HIDDEN,o)))}}}},l._getParentFromElement=function(t){var e,n=gt.getSelectorFromElement(t);return n&&(e=me(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||me(t.target).closest(Pe).length)):Te.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!me(this).hasClass(we))){var e=l._getParentFromElement(this),n=me(e).hasClass(Ie);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=me(e).find(je).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var o=me(e).find(ke)[0];me(o).trigger("focus")}me(this).trigger("click")}}},s(l,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return Be}},{key:"DefaultType",get:function(){return Ke}}]),l}(),me(document).on(Ce.KEYDOWN_DATA_API,ke,Ve._dataApiKeydownHandler).on(Ce.KEYDOWN_DATA_API,Pe,Ve._dataApiKeydownHandler).on(Ce.CLICK_DATA_API+" "+Ce.KEYUP_DATA_API,Ve._clearMenus).on(Ce.CLICK_DATA_API,ke,function(t){t.preventDefault(),t.stopPropagation(),Ve._jQueryInterface.call(me(this),"toggle")}).on(Ce.CLICK_DATA_API,Le,function(t){t.stopPropagation()}),me.fn[_e]=Ve._jQueryInterface,me.fn[_e].Constructor=Ve,me.fn[_e].noConflict=function(){return me.fn[_e]=be,Ve._jQueryInterface},Ve),Ci=(Ye="modal",qe="."+(Ge="bs.modal"),ze=(Qe=e).fn[Ye],Xe={backdrop:!0,keyboard:!0,focus:!0,show:!0},Je={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ze={HIDE:"hide"+qe,HIDDEN:"hidden"+qe,SHOW:"show"+qe,SHOWN:"shown"+qe,FOCUSIN:"focusin"+qe,RESIZE:"resize"+qe,CLICK_DISMISS:"click.dismiss"+qe,KEYDOWN_DISMISS:"keydown.dismiss"+qe,MOUSEUP_DISMISS:"mouseup.dismiss"+qe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qe,CLICK_DATA_API:"click"+qe+".data-api"},$e="modal-scrollbar-measure",tn="modal-backdrop",en="modal-open",nn="fade",rn="show",on={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},sn=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Qe(t).find(on.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Qe(this._element).hasClass(nn)&&(this._isTransitioning=!0);var n=Qe.Event(Ze.SHOW,{relatedTarget:t});Qe(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Qe(document.body).addClass(en),this._setEscapeEvent(),this._setResizeEvent(),Qe(this._element).on(Ze.CLICK_DISMISS,on.DATA_DISMISS,function(t){return e.hide(t)}),Qe(this._dialog).on(Ze.MOUSEDOWN_DISMISS,function(){Qe(e._element).one(Ze.MOUSEUP_DISMISS,function(t){Qe(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Qe.Event(Ze.HIDE);if(Qe(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Qe(this._element).hasClass(nn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Qe(document).off(Ze.FOCUSIN),Qe(this._element).removeClass(rn),Qe(this._element).off(Ze.CLICK_DISMISS),Qe(this._dialog).off(Ze.MOUSEDOWN_DISMISS),i){var r=gt.getTransitionDurationFromElement(this._element);Qe(this._element).one(gt.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Qe.removeData(this._element,Ge),Qe(window,document,this._element,this._backdrop).off(qe),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=c({},Xe,t),gt.typeCheckConfig(Ye,t,Je),t},t._showElement=function(t){var e=this,n=Qe(this._element).hasClass(nn);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.scrollTop=0,n&&gt.reflow(this._element),Qe(this._element).addClass(rn),this._config.focus&&this._enforceFocus();var i=Qe.Event(Ze.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Qe(e._element).trigger(i)};if(n){var o=gt.getTransitionDurationFromElement(this._element);Qe(this._dialog).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},t._enforceFocus=function(){var e=this;Qe(document).off(Ze.FOCUSIN).on(Ze.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Qe(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Qe(this._element).on(Ze.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Qe(this._element).off(Ze.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Qe(window).on(Ze.RESIZE,function(t){return e.handleUpdate(t)}):Qe(window).off(Ze.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Qe(document.body).removeClass(en),t._resetAdjustments(),t._resetScrollbar(),Qe(t._element).trigger(Ze.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Qe(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Qe(this._element).hasClass(nn)?nn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=tn,n&&Qe(this._backdrop).addClass(n),Qe(this._backdrop).appendTo(document.body),Qe(this._element).on(Ze.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&gt.reflow(this._backdrop),Qe(this._backdrop).addClass(rn),!t)return;if(!n)return void t();var i=gt.getTransitionDurationFromElement(this._backdrop);Qe(this._backdrop).one(gt.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Qe(this._backdrop).removeClass(rn);var r=function(){e._removeBackdrop(),t&&t()};if(Qe(this._element).hasClass(nn)){var o=gt.getTransitionDurationFromElement(this._backdrop);Qe(this._backdrop).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Qe(on.FIXED_CONTENT).each(function(t,e){var n=Qe(e)[0].style.paddingRight,i=Qe(e).css("padding-right");Qe(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Qe(on.STICKY_CONTENT).each(function(t,e){var n=Qe(e)[0].style.marginRight,i=Qe(e).css("margin-right");Qe(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Qe(on.NAVBAR_TOGGLER).each(function(t,e){var n=Qe(e)[0].style.marginRight,i=Qe(e).css("margin-right");Qe(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Qe(document.body).css("padding-right");Qe(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Qe(on.FIXED_CONTENT).each(function(t,e){var n=Qe(e).data("padding-right");"undefined"!=typeof n&&Qe(e).css("padding-right",n).removeData("padding-right")}),Qe(on.STICKY_CONTENT+", "+on.NAVBAR_TOGGLER).each(function(t,e){var n=Qe(e).data("margin-right");"undefined"!=typeof n&&Qe(e).css("margin-right",n).removeData("margin-right")});var t=Qe(document.body).data("padding-right");"undefined"!=typeof t&&Qe(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$e,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Qe(this).data(Ge),e=c({},Xe,Qe(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new r(this,e),Qe(this).data(Ge,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return Xe}}]),r}(),Qe(document).on(Ze.CLICK_DATA_API,on.DATA_TOGGLE,function(t){var e,n=this,i=gt.getSelectorFromElement(this);i&&(e=Qe(i)[0]);var r=Qe(e).data(Ge)?"toggle":c({},Qe(e).data(),Qe(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var o=Qe(e).one(Ze.SHOW,function(t){t.isDefaultPrevented()||o.one(Ze.HIDDEN,function(){Qe(n).is(":visible")&&n.focus()})});sn._jQueryInterface.call(Qe(e),r,this)}),Qe.fn[Ye]=sn._jQueryInterface,Qe.fn[Ye].Constructor=sn,Qe.fn[Ye].noConflict=function(){return Qe.fn[Ye]=ze,sn._jQueryInterface},sn),wi=(ln="tooltip",fn="."+(cn="bs.tooltip"),hn=(an=e).fn[ln],un="bs-tooltip",dn=new RegExp("(^|\\s)"+un+"\\S+","g"),mn={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:!(gn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(pn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},vn="out",En={HIDE:"hide"+fn,HIDDEN:"hidden"+fn,SHOW:(_n="show")+fn,SHOWN:"shown"+fn,INSERTED:"inserted"+fn,CLICK:"click"+fn,FOCUSIN:"focusin"+fn,FOCUSOUT:"focusout"+fn,MOUSEENTER:"mouseenter"+fn,MOUSELEAVE:"mouseleave"+fn},yn="fade",bn="show",Tn=".tooltip-inner",Cn=".arrow",wn="hover",In="focus",Dn="click",An="manual",Sn=function(){function i(t,e){if("undefined"==typeof ge)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=an(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),an(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(an(this.getTipElement()).hasClass(bn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),an.removeData(this.element,this.constructor.DATA_KEY),an(this.element).off(this.constructor.EVENT_KEY),an(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&an(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===an(this.element).css("display"))throw new Error("Please use show on visible elements");var t=an.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){an(this.element).trigger(t);var n=an.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=gt.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&an(i).addClass(yn);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:an(this.config.container);an(i).data(this.constructor.DATA_KEY,this),an.contains(this.element.ownerDocument.documentElement,this.tip)||an(i).appendTo(a),an(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new ge(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Cn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),an(i).addClass(bn),"ontouchstart"in document.documentElement&&an(document.body).children().on("mouseover",null,an.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,an(e.element).trigger(e.constructor.Event.SHOWN),t===vn&&e._leave(null,e)};if(an(this.tip).hasClass(yn)){var c=gt.getTransitionDurationFromElement(this.tip);an(this.tip).one(gt.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=an.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==_n&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),an(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(an(this.element).trigger(i),!i.isDefaultPrevented()){if(an(n).removeClass(bn),"ontouchstart"in document.documentElement&&an(document.body).children().off("mouseover",null,an.noop),this._activeTrigger[Dn]=!1,this._activeTrigger[In]=!1,this._activeTrigger[wn]=!1,an(this.tip).hasClass(yn)){var o=gt.getTransitionDurationFromElement(n);an(n).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){an(this.getTipElement()).addClass(un+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||an(this.config.template)[0],this.tip},t.setContent=function(){var t=an(this.getTipElement());this.setElementContent(t.find(Tn),this.getTitle()),t.removeClass(yn+" "+bn)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?an(e).parent().is(t)||t.empty().append(e):t.text(an(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return gn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)an(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==An){var e=t===wn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===wn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;an(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}an(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=c({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||an(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),an(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?In:wn]=!0),an(e.getTipElement()).hasClass(bn)||e._hoverState===_n?e._hoverState=_n:(clearTimeout(e._timeout),e._hoverState=_n,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===_n&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||an(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),an(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?In:wn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=vn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===vn&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=c({},this.constructor.Default,an(this.element).data(),"object"==typeof t&&t?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()),gt.typeCheckConfig(ln,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=an(this.getTipElement()),e=t.attr("class").match(dn);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(an(t).removeClass(yn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=an(this).data(cn),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),an(this).data(cn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return mn}},{key:"NAME",get:function(){return ln}},{key:"DATA_KEY",get:function(){return cn}},{key:"Event",get:function(){return En}},{key:"EVENT_KEY",get:function(){return fn}},{key:"DefaultType",get:function(){return pn}}]),i}(),an.fn[ln]=Sn._jQueryInterface,an.fn[ln].Constructor=Sn,an.fn[ln].noConflict=function(){return an.fn[ln]=hn,Sn._jQueryInterface},Sn),Ii=(Nn="popover",Ln="."+(kn="bs.popover"),Pn=(On=e).fn[Nn],xn="bs-popover",jn=new RegExp("(^|\\s)"+xn+"\\S+","g"),Mn=c({},wi.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>'}),Rn=c({},wi.DefaultType,{content:"(string|element|function)"}),Hn="fade",Fn=".popover-header",Un=".popover-body",Bn={HIDE:"hide"+Ln,HIDDEN:"hidden"+Ln,SHOW:(Wn="show")+Ln,SHOWN:"shown"+Ln,INSERTED:"inserted"+Ln,CLICK:"click"+Ln,FOCUSIN:"focusin"+Ln,FOCUSOUT:"focusout"+Ln,MOUSEENTER:"mouseenter"+Ln,MOUSELEAVE:"mouseleave"+Ln},Kn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){On(this.getTipElement()).addClass(xn+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||On(this.config.template)[0],this.tip},r.setContent=function(){var t=On(this.getTipElement());this.setElementContent(t.find(Fn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Un),e),t.removeClass(Hn+" "+Wn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=On(this.getTipElement()),e=t.attr("class").match(jn);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=On(this).data(kn),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),On(this).data(kn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return Mn}},{key:"NAME",get:function(){return Nn}},{key:"DATA_KEY",get:function(){return kn}},{key:"Event",get:function(){return Bn}},{key:"EVENT_KEY",get:function(){return Ln}},{key:"DefaultType",get:function(){return Rn}}]),i}(wi),On.fn[Nn]=Kn._jQueryInterface,On.fn[Nn].Constructor=Kn,On.fn[Nn].noConflict=function(){return On.fn[Nn]=Pn,Kn._jQueryInterface},Kn),Di=(Qn="scrollspy",Gn="."+(Yn="bs.scrollspy"),qn=(Vn=e).fn[Qn],zn={offset:10,method:"auto",target:""},Xn={offset:"number",method:"string",target:"(string|element)"},Jn={ACTIVATE:"activate"+Gn,SCROLL:"scroll"+Gn,LOAD_DATA_API:"load"+Gn+".data-api"},Zn="dropdown-item",$n="active",ti={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"},ei="offset",ni="position",ii=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+ti.NAV_LINKS+","+this._config.target+" "+ti.LIST_ITEMS+","+this._config.target+" "+ti.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Vn(this._scrollElement).on(Jn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?ei:ni,r="auto"===this._config.method?t:this._config.method,o=r===ni?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Vn.makeArray(Vn(this._selector)).map(function(t){var e,n=gt.getSelectorFromElement(t);if(n&&(e=Vn(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Vn(e)[r]().top+o,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Vn.removeData(this._element,Yn),Vn(this._scrollElement).off(Gn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=c({},zn,"object"==typeof t&&t?t:{})).target){var e=Vn(t.target).attr("id");e||(e=gt.getUID(Qn),Vn(t.target).attr("id",e)),t.target="#"+e}return gt.typeCheckConfig(Qn,t,Xn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Vn(t.join(","));n.hasClass(Zn)?(n.closest(ti.DROPDOWN).find(ti.DROPDOWN_TOGGLE).addClass($n),n.addClass($n)):(n.addClass($n),n.parents(ti.NAV_LIST_GROUP).prev(ti.NAV_LINKS+", "+ti.LIST_ITEMS).addClass($n),n.parents(ti.NAV_LIST_GROUP).prev(ti.NAV_ITEMS).children(ti.NAV_LINKS).addClass($n)),Vn(this._scrollElement).trigger(Jn.ACTIVATE,{relatedTarget:e})},t._clear=function(){Vn(this._selector).filter(ti.ACTIVE).removeClass($n)},n._jQueryInterface=function(e){return this.each(function(){var t=Vn(this).data(Yn);if(t||(t=new n(this,"object"==typeof e&&e),Vn(this).data(Yn,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return zn}}]),n}(),Vn(window).on(Jn.LOAD_DATA_API,function(){for(var t=Vn.makeArray(Vn(ti.DATA_SPY)),e=t.length;e--;){var n=Vn(t[e]);ii._jQueryInterface.call(n,n.data())}}),Vn.fn[Qn]=ii._jQueryInterface,Vn.fn[Qn].Constructor=ii,Vn.fn[Qn].noConflict=function(){return Vn.fn[Qn]=qn,ii._jQueryInterface},ii),Ai=(si="."+(oi="bs.tab"),ai=(ri=e).fn.tab,li={HIDE:"hide"+si,HIDDEN:"hidden"+si,SHOW:"show"+si,SHOWN:"shown"+si,CLICK_DATA_API:"click"+si+".data-api"},ci="dropdown-menu",fi="active",hi="disabled",ui="fade",di="show",pi=".dropdown",gi=".nav, .list-group",mi=".active",_i="> li > .active",vi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Ei=".dropdown-toggle",yi="> .dropdown-menu .active",bi=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&ri(this._element).hasClass(fi)||ri(this._element).hasClass(hi))){var t,i,e=ri(this._element).closest(gi)[0],r=gt.getSelectorFromElement(this._element);if(e){var o="UL"===e.nodeName?_i:mi;i=(i=ri.makeArray(ri(e).find(o)))[i.length-1]}var s=ri.Event(li.HIDE,{relatedTarget:this._element}),a=ri.Event(li.SHOW,{relatedTarget:i});if(i&&ri(i).trigger(s),ri(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(t=ri(r)[0]),this._activate(this._element,e);var l=function(){var t=ri.Event(li.HIDDEN,{relatedTarget:n._element}),e=ri.Event(li.SHOWN,{relatedTarget:i});ri(i).trigger(t),ri(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){ri.removeData(this._element,oi),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?ri(e).find(_i):ri(e).children(mi))[0],o=n&&r&&ri(r).hasClass(ui),s=function(){return i._transitionComplete(t,r,n)};if(r&&o){var a=gt.getTransitionDurationFromElement(r);ri(r).one(gt.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){ri(e).removeClass(di+" "+fi);var i=ri(e.parentNode).find(yi)[0];i&&ri(i).removeClass(fi),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(ri(t).addClass(fi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),gt.reflow(t),ri(t).addClass(di),t.parentNode&&ri(t.parentNode).hasClass(ci)){var r=ri(t).closest(pi)[0];r&&ri(r).find(Ei).addClass(fi),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=ri(this),e=t.data(oi);if(e||(e=new i(this),t.data(oi,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.1"}}]),i}(),ri(document).on(li.CLICK_DATA_API,vi,function(t){t.preventDefault(),bi._jQueryInterface.call(ri(this),"show")}),ri.fn.tab=bi._jQueryInterface,ri.fn.tab.Constructor=bi,ri.fn.tab.noConflict=function(){return ri.fn.tab=ai,bi._jQueryInterface},bi);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=gt,t.Alert=mt,t.Button=_t,t.Carousel=vt,t.Collapse=Et,t.Dropdown=Ti,t.Modal=Ci,t.Popover=Ii,t.Scrollspy=Di,t.Tab=Ai,t.Tooltip=wi,Object.defineProperty(t,"__esModule",{value:!0})});
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],t):t(e.bootstrap={},e.jQuery)}(this,function(e,t){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function l(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},t=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),t.forEach(function(e){var t,n,i;t=r,i=o[n=e],n in t?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i})}return r}for(var r,n,o,a,c,u,f,h,d,p,m,g,_,v,y,E,b,w,C,T,S,D,A,I,O,N,k,x,P,L,j,H,M,F,W,R,U,B,q,K,Q,Y,V,z,G,J,Z,X,$,ee,te,ne,ie,re,oe,se,ae,le,ce,ue,fe,he,de,pe,me,ge,_e,ve,ye,Ee,be,we=function(i){var t="transitionend";function e(e){var t=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(t)},e),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(e){for(;e+=~~(1e6*Math.random()),document.getElementById(e););return e},getSelectorFromElement:function(e){var t=e.getAttribute("data-target");t&&"#"!==t||(t=e.getAttribute("href")||"");try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement:function(e){if(!e)return 0;var t=i(e).css("transition-duration");return parseFloat(t)?(t=t.split(",")[0],1e3*parseFloat(t)):0},reflow:function(e){return e.offsetHeight},triggerTransitionEnd:function(e){i(e).trigger(t)},supportsTransitionEnd:function(){return Boolean(t)},isElement:function(e){return(e[0]||e).nodeType},typeCheckConfig:function(e,t,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=t[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=e,i.event.special[l.TRANSITION_END]={bindType:t,delegateType:t,handle:function(e){if(i(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}},l}(t=t&&t.hasOwnProperty("default")?t.default:t),Ce=(n="alert",a="."+(o="bs.alert"),c=(r=t).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",h="fade",d="show",p=function(){function i(e){this._element=e}var e=i.prototype;return e.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},e.dispose=function(){r.removeData(this._element,o),this._element=null},e._getRootElement=function(e){var t=we.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=r(e).closest("."+f)[0]),n},e._triggerCloseEvent=function(e){var t=r.Event(u.CLOSE);return r(e).trigger(t),t},e._removeElement=function(t){var n=this;if(r(t).removeClass(d),r(t).hasClass(h)){var e=we.getTransitionDurationFromElement(t);r(t).one(we.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(e)}else this._destroyElement(t)},e._destroyElement=function(e){r(e).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var e=r(this),t=e.data(o);t||(t=new i(this),e.data(o,t)),"close"===n&&t[n](this)})},i._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),r.fn[n]=p._jQueryInterface,r.fn[n].Constructor=p,r.fn[n].noConflict=function(){return r.fn[n]=c,p._jQueryInterface},p),Te=(g="button",v="."+(_="bs.button"),y=".data-api",E=(m=t).fn[g],b="active",w="btn",T='[data-toggle^="button"]',S='[data-toggle="buttons"]',D="input",A=".active",I=".btn",O={CLICK_DATA_API:"click"+v+y,FOCUS_BLUR_DATA_API:(C="focus")+v+y+" blur"+v+y},N=function(){function n(e){this._element=e}var e=n.prototype;return e.toggle=function(){var e=!0,t=!0,n=m(this._element).closest(S)[0];if(n){var i=this._element.querySelector(D);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(b))e=!1;else{var r=n.querySelector(A);r&&m(r).removeClass(b)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(b),m(i).trigger("change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(b)),e&&m(this._element).toggleClass(b)},e.dispose=function(){m.removeData(this._element,_),this._element=null},n._jQueryInterface=function(t){return this.each(function(){var e=m(this).data(_);e||(e=new n(this),m(this).data(_,e)),"toggle"===t&&e[t]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),n}(),m(document).on(O.CLICK_DATA_API,T,function(e){e.preventDefault();var t=e.target;m(t).hasClass(w)||(t=m(t).closest(I)),N._jQueryInterface.call(m(t),"toggle")}).on(O.FOCUS_BLUR_DATA_API,T,function(e){var t=m(e.target).closest(I)[0];m(t).toggleClass(C,/^focus(in)?$/.test(e.type))}),m.fn[g]=N._jQueryInterface,m.fn[g].Constructor=N,m.fn[g].noConflict=function(){return m.fn[g]=E,N._jQueryInterface},N),Se=(x="carousel",L="."+(P="bs.carousel"),j=".data-api",H=(k=t).fn[x],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},F={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",R="prev",U="left",B="right",q={SLIDE:"slide"+L,SLID:"slid"+L,KEYDOWN:"keydown"+L,MOUSEENTER:"mouseenter"+L,MOUSELEAVE:"mouseleave"+L,TOUCHEND:"touchend"+L,LOAD_DATA_API:"load"+L+j,CLICK_DATA_API:"click"+L+j},K="carousel",Q="active",Y="slide",V="carousel-item-right",z="carousel-item-left",G="carousel-item-next",J="carousel-item-prev",Z=".active",X=".active.carousel-item",$=".carousel-item",ee=".carousel-item-next, .carousel-item-prev",te=".carousel-indicators",ne="[data-slide], [data-slide-to]",ie='[data-ride="carousel"]',re=function(){function o(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(t),this._element=k(e)[0],this._indicatorsElement=this._element.querySelector(te),this._addEventListeners()}var e=o.prototype;return e.next=function(){this._isSliding||this._slide(W)},e.nextWhenVisible=function(){!document.hidden&&k(this._element).is(":visible")&&"hidden"!==k(this._element).css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(R)},e.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(ee)&&(we.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(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))},e.to=function(e){var t=this;this._activeElement=this._element.querySelector(X);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)k(this._element).one(q.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=n<e?W:R;this._slide(i,this._items[e])}},e.dispose=function(){k(this._element).off(L),k.removeData(this._element,P),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(e){return e=l({},M,e),we.typeCheckConfig(x,e,F),e},e._addEventListeners=function(){var t=this;this._config.keyboard&&k(this._element).on(q.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(k(this._element).on(q.MOUSEENTER,function(e){return t.pause(e)}).on(q.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&k(this._element).on(q.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},e._keydown=function(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()}},e._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll($)):[],this._items.indexOf(e)},e._getItemByDirection=function(e,t){var n=e===W,i=e===R,r=this._getItemIndex(t),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return t;var s=(r+(e===R?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(this._element.querySelector(X)),r=k.Event(q.SLIDE,{relatedTarget:e,direction:t,from:i,to:n});return k(this._element).trigger(r),r},e._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(Z));k(t).removeClass(Q);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&k(n).addClass(Q)}},e._slide=function(e,t){var n,i,r,o=this,s=this._element.querySelector(X),a=this._getItemIndex(s),l=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(l),u=Boolean(this._interval);if(e===W?(n=z,i=G,r=U):(n=V,i=J,r=B),l&&k(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l);var f=k.Event(q.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(k(this._element).hasClass(Y)){k(l).addClass(i),we.reflow(l),k(s).addClass(n),k(l).addClass(n);var h=we.getTransitionDurationFromElement(s);k(s).one(we.TRANSITION_END,function(){k(l).removeClass(n+" "+i).addClass(Q),k(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return k(o._element).trigger(f)},0)}).emulateTransitionEnd(h)}else k(s).removeClass(Q),k(l).addClass(Q),this._isSliding=!1,k(this._element).trigger(f);u&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var e=k(this).data(P),t=l({},M,k(this).data());"object"==typeof i&&(t=l({},t,i));var n="string"==typeof i?i:t.slide;if(e||(e=new o(this,t),k(this).data(P,e)),"number"==typeof i)e.to(i);else if("string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}else t.interval&&(e.pause(),e.cycle())})},o._dataApiClickHandler=function(e){var t=we.getSelectorFromElement(this);if(t){var n=k(t)[0];if(n&&k(n).hasClass(K)){var i=l({},k(n).data(),k(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(k(n),i),r&&k(n).data(P).to(r),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return M}}]),o}(),k(document).on(q.CLICK_DATA_API,ne,re._dataApiClickHandler),k(window).on(q.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(ie)),t=0,n=e.length;t<n;t++){var i=k(e[t]);re._jQueryInterface.call(i,i.data())}}),k.fn[x]=re._jQueryInterface,k.fn[x].Constructor=re,k.fn[x].noConflict=function(){return k.fn[x]=H,re._jQueryInterface},re),De=(se="collapse",le="."+(ae="bs.collapse"),ce=(oe=t).fn[se],ue={toggle:!0,parent:""},fe={toggle:"boolean",parent:"(string|element)"},he={SHOW:"show"+le,SHOWN:"shown"+le,HIDE:"hide"+le,HIDDEN:"hidden"+le,CLICK_DATA_API:"click"+le+".data-api"},de="show",pe="collapse",me="collapsing",ge="collapsed",_e="width",ve="height",ye=".show, .collapsing",Ee='[data-toggle="collapse"]',be=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=oe.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(Ee)),i=0,r=n.length;i<r;i++){var o=n[i],s=we.getSelectorFromElement(o),a=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=a.prototype;return e.toggle=function(){oe(this._element).hasClass(de)?this.hide():this.show()},e.show=function(){var e,t,n=this;if(!this._isTransitioning&&!oe(this._element).hasClass(de)&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(ye)).filter(function(e){return e.getAttribute("data-parent")===n._config.parent})).length&&(e=null),!(e&&(t=oe(e).not(this._selector).data(ae))&&t._isTransitioning))){var i=oe.Event(he.SHOW);if(oe(this._element).trigger(i),!i.isDefaultPrevented()){e&&(a._jQueryInterface.call(oe(e).not(this._selector),"hide"),t||oe(e).data(ae,null));var r=this._getDimension();oe(this._element).removeClass(pe).addClass(me),this._element.style[r]=0,this._triggerArray.length&&oe(this._triggerArray).removeClass(ge).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=we.getTransitionDurationFromElement(this._element);oe(this._element).one(we.TRANSITION_END,function(){oe(n._element).removeClass(me).addClass(pe).addClass(de),n._element.style[r]="",n.setTransitioning(!1),oe(n._element).trigger(he.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},e.hide=function(){var e=this;if(!this._isTransitioning&&oe(this._element).hasClass(de)){var t=oe.Event(he.HIDE);if(oe(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",we.reflow(this._element),oe(this._element).addClass(me).removeClass(pe).removeClass(de);var i=this._triggerArray.length;if(0<i)for(var r=0;r<i;r++){var o=this._triggerArray[r],s=we.getSelectorFromElement(o);if(null!==s)oe([].slice.call(document.querySelectorAll(s))).hasClass(de)||oe(o).addClass(ge).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=we.getTransitionDurationFromElement(this._element);oe(this._element).one(we.TRANSITION_END,function(){e.setTransitioning(!1),oe(e._element).removeClass(me).addClass(pe).trigger(he.HIDDEN)}).emulateTransitionEnd(a)}}},e.setTransitioning=function(e){this._isTransitioning=e},e.dispose=function(){oe.removeData(this._element,ae),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(e){return(e=l({},ue,e)).toggle=Boolean(e.toggle),we.typeCheckConfig(se,e,fe),e},e._getDimension=function(){return oe(this._element).hasClass(_e)?_e:ve},e._getParent=function(){var n=this,e=null;we.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var t='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(e.querySelectorAll(t));return oe(i).each(function(e,t){n._addAriaAndCollapsedClass(a._getTargetFromElement(t),[t])}),e},e._addAriaAndCollapsedClass=function(e,t){if(e){var n=oe(e).hasClass(de);t.length&&oe(t).toggleClass(ge,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(e){var t=we.getSelectorFromElement(e);return t?document.querySelector(t):null},a._jQueryInterface=function(i){return this.each(function(){var e=oe(this),t=e.data(ae),n=l({},ue,e.data(),"object"==typeof i&&i?i:{});if(!t&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),t||(t=new a(this,n),e.data(ae,t)),"string"==typeof i){if("undefined"==typeof t[i])throw new TypeError('No method named "'+i+'"');t[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ue}}]),a}(),oe(document).on(he.CLICK_DATA_API,Ee,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var n=oe(this),t=we.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(t));oe(i).each(function(){var e=oe(this),t=e.data(ae)?"toggle":n.data();be._jQueryInterface.call(e,t)})}),oe.fn[se]=be._jQueryInterface,oe.fn[se].Constructor=be,oe.fn[se].noConflict=function(){return oe.fn[se]=ce,be._jQueryInterface},be),Ae="undefined"!=typeof window&&"undefined"!=typeof document,Ie=["Edge","Trident","Firefox"],Oe=0,Ne=0;Ne<Ie.length;Ne+=1)if(Ae&&0<=navigator.userAgent.indexOf(Ie[Ne])){Oe=1;break}var ke=Ae&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},Oe))}};function xe(e){return e&&"[object Function]"==={}.toString.call(e)}function Pe(e,t){if(1!==e.nodeType)return[];var n=getComputedStyle(e,null);return t?n[t]:n}function Le(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function je(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Pe(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?e:je(Le(e))}var He=Ae&&!(!window.MSInputMethodContext||!document.documentMode),Me=Ae&&/MSIE 10/.test(navigator.userAgent);function Fe(e){return 11===e?He:10===e?Me:He||Me}function We(e){if(!e)return document.documentElement;for(var t=Fe(10)?document.body:null,n=e.offsetParent;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===Pe(n,"position")?We(n):n:e?e.ownerDocument.documentElement:document.documentElement}function Re(e){return null!==e.parentNode?Re(e.parentNode):e}function Ue(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?e:t,r=n?t:e,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(e!==l&&t!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&We(s.firstElementChild)!==s?We(l):l;var c=Re(e);return c.host?Ue(c.host,t):Ue(e,Re(t).host)}function Be(e){var t="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function qe(e,t){var n="x"===t?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+i+"Width"],10)}function Ke(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],Fe(10)?n["offset"+e]+i["margin"+("Height"===e?"Top":"Left")]+i["margin"+("Height"===e?"Bottom":"Right")]:0)}function Qe(){var e=document.body,t=document.documentElement,n=Fe(10)&&getComputedStyle(t);return{height:Ke("Height",e,t,n),width:Ke("Width",e,t,n)}}var Ye=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),Ve=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};function Ge(e){return ze({},e,{right:e.left+e.width,bottom:e.top+e.height})}function Je(e){var t={};try{if(Fe(10)){t=e.getBoundingClientRect();var n=Be(e,"top"),i=Be(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}else t=e.getBoundingClientRect()}catch(e){}var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},o="HTML"===e.nodeName?Qe():{},s=o.width||e.clientWidth||r.right-r.left,a=o.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,c=e.offsetHeight-a;if(l||c){var u=Pe(e);l-=qe(u,"x"),c-=qe(u,"y"),r.width-=l,r.height-=c}return Ge(r)}function Ze(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Fe(10),r="HTML"===t.nodeName,o=Je(e),s=Je(t),a=je(e),l=Pe(t),c=parseFloat(l.borderTopWidth,10),u=parseFloat(l.borderLeftWidth,10);n&&"HTML"===t.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=Ge({top:o.top-s.top-c,left:o.left-s.left-u,width:o.width,height:o.height});if(f.marginTop=0,f.marginLeft=0,!i&&r){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);f.top-=c-h,f.bottom-=c-h,f.left-=u-d,f.right-=u-d,f.marginTop=h,f.marginLeft=d}return(i&&!n?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(f=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Be(t,"top"),r=Be(t,"left"),o=n?-1:1;return e.top+=i*o,e.bottom+=i*o,e.left+=r*o,e.right+=r*o,e}(f,t)),f}function Xe(e){if(!e||!e.parentElement||Fe())return document.documentElement;for(var t=e.parentElement;t&&"none"===Pe(t,"transform");)t=t.parentElement;return t||document.documentElement}function $e(e,t,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?Xe(e):Ue(e,t);if("viewport"===i)o=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,i=Ze(e,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:Be(n),a=t?0:Be(n,"left");return Ge({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=je(Le(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var l=Ze(a,s,r);if("HTML"!==a.nodeName||function e(t){var n=t.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===Pe(t,"position")||e(Le(t)))}(s))o=l;else{var c=Qe(),u=c.height,f=c.width;o.top+=l.top-l.marginTop,o.bottom=u+l.top,o.left+=l.left-l.marginLeft,o.right=f+l.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function et(e,t,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=$e(i,n,o,r),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(a).map(function(e){return ze({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),c=l.filter(function(e){var t=e.width,n=e.height;return t>=i.clientWidth&&n>=i.clientHeight}),u=0<c.length?c[0].key:l[0].key,f=e.split("-")[1];return u+(f?"-"+f:"")}function tt(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return Ze(n,i?Xe(t):Ue(t,n),i)}function nt(e){var t=getComputedStyle(e),n=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function it(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function rt(e,t,n){n=n.split("-")[0];var i=nt(e),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=t[s]+t[l]/2-i[l]/2,r[a]=n===a?t[a]-i[c]:t[it(a)],r}function ot(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function st(e,n,t){return(void 0===t?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=ot(e,function(e){return e[t]===n});return e.indexOf(i)}(e,"name",t))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var t=e.function||e.fn;e.enabled&&xe(t)&&(n.offsets.popper=Ge(n.offsets.popper),n.offsets.reference=Ge(n.offsets.reference),n=t(n,e))}),n}function at(e,n){return e.some(function(e){var t=e.name;return e.enabled&&t===n})}function lt(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var r=t[i],o=r?""+r+n:e;if("undefined"!=typeof document.body.style[o])return o}return null}function ct(e){var t=e.ownerDocument;return t?t.defaultView:window}function ut(e,t,n,i){n.updateBound=i,ct(e).addEventListener("resize",n.updateBound,{passive:!0});var r=je(e);return function e(t,n,i,r){var o="BODY"===t.nodeName,s=o?t.ownerDocument.defaultView:t;s.addEventListener(n,i,{passive:!0}),o||e(je(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function ft(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,ct(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function ht(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function dt(n,i){Object.keys(i).forEach(function(e){var t="";-1!==["width","height","top","right","bottom","left"].indexOf(e)&&ht(i[e])&&(t="px"),n.style[e]=i[e]+t})}function pt(e,t,n){var i=ot(e,function(e){return e.name===t}),r=!!i&&e.some(function(e){return e.name===n&&e.enabled&&e.order<i.order});if(!r){var o="`"+t+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var mt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],gt=mt.slice(3);function _t(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=gt.indexOf(e),i=gt.slice(n+1).concat(gt.slice(0,n));return t?i.reverse():i}var vt="flip",yt="clockwise",Et="counterclockwise";function bt(e,r,o,t){var s=[0,0],a=-1!==["right","left"].indexOf(t),n=e.split(/(\+|\-)/).map(function(e){return e.trim()}),i=n.indexOf(ot(n,function(e){return-1!==e.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(e,t){var n=(1===t?!a:a)?"height":"width",i=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,i){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return e;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Ge(a)[t]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(e,n,r,o)})})).forEach(function(n,i){n.forEach(function(e,t){ht(e)&&(s[i]+=e*("-"===n[t-1]?-1:1))})}),s}var wt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:Ve({},l,o[l]),end:Ve({},l,o[l]+o[c]-s[c])};e.offsets.popper=ze({},s,u[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,i=e.placement,r=e.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=ht(+n)?[+n,0]:bt(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,i){var t=i.boundariesElement||We(e.instance.popper);e.instance.reference===t&&(t=We(t));var n=lt("transform"),r=e.instance.popper.style,o=r.top,s=r.left,a=r[n];r.top="",r.left="",r[n]="";var l=$e(e.instance.popper,e.instance.reference,i.padding,t,e.positionFixed);r.top=o,r.left=s,r[n]=a,i.boundaries=l;var c=i.priority,u=e.offsets.popper,f={primary:function(e){var t=u[e];return u[e]<l[e]&&!i.escapeWithReference&&(t=Math.max(u[e],l[e])),Ve({},e,t)},secondary:function(e){var t="right"===e?"left":"top",n=u[t];return u[e]>l[e]&&!i.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),Ve({},t,n)}};return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=ze({},u,f[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(e.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(e.offsets.popper[l]=o(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!pt(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],o=e.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",u=l?"Top":"Left",f=u.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=nt(i)[c];a[d]-p<s[f]&&(e.offsets.popper[f]-=s[f]-(a[d]-p)),a[f]+p>s[d]&&(e.offsets.popper[f]+=a[f]+p-s[d]),e.offsets.popper=Ge(e.offsets.popper);var m=a[f]+a[c]/2-p/2,g=Pe(e.instance.popper),_=parseFloat(g["margin"+u],10),v=parseFloat(g["border"+u+"Width"],10),y=m-e.offsets.popper[f]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),e.arrowElement=i,e.offsets.arrow=(Ve(n={},f,Math.round(y)),Ve(n,h,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(at(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=$e(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=it(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case vt:E=[_,v];break;case yt:E=_t(_);break;case Et:E=_t(_,!0);break;default:E=m.behavior}return E.forEach(function(e,t){if(_!==e||E.length===t+1)return p;_=p.placement.split("-")[0],v=it(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)<o(r.right)||"top"===_&&o(i.bottom)>o(r.top)||"bottom"===_&&o(i.top)<o(r.bottom),a=o(i.left)<o(g.left),l=o(i.right)>o(g.right),c=o(i.top)<o(g.top),u=o(i.bottom)>o(g.bottom),f="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&u,h=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(h&&"start"===y&&a||h&&"end"===y&&l||!h&&"start"===y&&c||!h&&"end"===y&&u);(s||f||d)&&(p.flipped=!0,(s||f)&&(_=E[t+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=ze({},p.offsets.popper,rt(p.instance.popper,p.offsets.reference,p.placement)),p=st(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),e.placement=it(t),e.offsets.popper=Ge(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!pt(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=ot(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,i=t.y,r=e.offsets.popper,o=ot(e.instance.modifiers,function(e){return"applyStyle"===e.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:t.gpuAcceleration,a=Je(We(e.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.round(r.top),bottom:Math.round(r.bottom),right:Math.floor(r.right)},u="bottom"===n?"top":"bottom",f="right"===i?"left":"right",h=lt("transform"),d=void 0,p=void 0;if(p="bottom"===u?-a.height+c.bottom:c.top,d="right"===f?-a.width+c.right:c.left,s&&h)l[h]="translate3d("+d+"px, "+p+"px, 0)",l[u]=0,l[f]=0,l.willChange="transform";else{var m="bottom"===u?-1:1,g="right"===f?-1:1;l[u]=p*m,l[f]=d*g,l.willChange=u+", "+f}var _={"x-placement":e.placement};return e.attributes=ze({},_,e.attributes),e.styles=ze({},l,e.styles),e.arrowStyles=ze({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,n;return dt(e.instance.popper,e.styles),t=e.instance.popper,n=e.attributes,Object.keys(n).forEach(function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)}),e.arrowElement&&Object.keys(e.arrowStyles).length&&dt(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,i,r){var o=tt(r,t,e,n.positionFixed),s=et(n.placement,o,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute("x-placement",s),dt(t,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ct=function(){function o(e,t){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=ke(this.update.bind(this)),this.options=ze({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(ze({},o.Defaults.modifiers,i.modifiers)).forEach(function(e){n.options.modifiers[e]=ze({},o.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return ze({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&xe(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Ye(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=tt(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=et(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=rt(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=st(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,at(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[lt("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ut(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return ft.call(this)}}]),o}();Ct.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ct.placements=mt,Ct.Defaults=wt;var Tt,St,Dt,At,It,Ot,Nt,kt,xt,Pt,Lt,jt,Ht,Mt,Ft,Wt,Rt,Ut,Bt,qt,Kt,Qt,Yt,Vt,zt,Gt,Jt,Zt,Xt,$t,en,tn,nn,rn,on,sn,an,ln,cn,un,fn,hn,dn,pn,mn,gn,_n,vn,yn,En,bn,wn,Cn,Tn,Sn,Dn,An,In,On,Nn,kn,xn,Pn,Ln,jn,Hn,Mn,Fn,Wn,Rn,Un,Bn,qn,Kn,Qn,Yn,Vn,zn,Gn,Jn,Zn,Xn,$n,ei,ti,ni,ii,ri,oi,si,ai,li,ci,ui,fi,hi,di,pi,mi,gi,_i,vi,yi,Ei,bi,wi,Ci,Ti,Si,Di,Ai,Ii,Oi,Ni,ki,xi,Pi,Li,ji,Hi,Mi,Fi,Wi,Ri,Ui,Bi=(St="dropdown",At="."+(Dt="bs.dropdown"),It=".data-api",Ot=(Tt=t).fn[St],Nt=new RegExp("38|40|27"),kt={HIDE:"hide"+At,HIDDEN:"hidden"+At,SHOW:"show"+At,SHOWN:"shown"+At,CLICK:"click"+At,CLICK_DATA_API:"click"+At+It,KEYDOWN_DATA_API:"keydown"+At+It,KEYUP_DATA_API:"keyup"+At+It},xt="disabled",Pt="show",Lt="dropup",jt="dropright",Ht="dropleft",Mt="dropdown-menu-right",Ft="position-static",Wt='[data-toggle="dropdown"]',Rt=".dropdown form",Ut=".dropdown-menu",Bt=".navbar-nav",qt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Kt="top-start",Qt="top-end",Yt="bottom-start",Vt="bottom-end",zt="right-start",Gt="left-start",Jt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Zt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Xt=function(){function c(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=c.prototype;return e.toggle=function(){if(!this._element.disabled&&!Tt(this._element).hasClass(xt)){var e=c._getParentFromElement(this._element),t=Tt(this._menu).hasClass(Pt);if(c._clearMenus(),!t){var n={relatedTarget:this._element},i=Tt.Event(kt.SHOW,n);if(Tt(e).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof Ct)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=e:we.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&Tt(e).addClass(Ft),this._popper=new Ct(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===Tt(e).closest(Bt).length&&Tt(document.body).children().on("mouseover",null,Tt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Tt(this._menu).toggleClass(Pt),Tt(e).toggleClass(Pt).trigger(Tt.Event(kt.SHOWN,n))}}}},e.dispose=function(){Tt.removeData(this._element,Dt),Tt(this._element).off(At),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;Tt(this._element).on(kt.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},e._getConfig=function(e){return e=l({},this.constructor.Default,Tt(this._element).data(),e),we.typeCheckConfig(St,e,this.constructor.DefaultType),e},e._getMenuElement=function(){if(!this._menu){var e=c._getParentFromElement(this._element);e&&(this._menu=e.querySelector(Ut))}return this._menu},e._getPlacement=function(){var e=Tt(this._element.parentNode),t=Yt;return e.hasClass(Lt)?(t=Kt,Tt(this._menu).hasClass(Mt)&&(t=Qt)):e.hasClass(jt)?t=zt:e.hasClass(Ht)?t=Gt:Tt(this._menu).hasClass(Mt)&&(t=Vt),t},e._detectNavbar=function(){return 0<Tt(this._element).closest(".navbar").length},e._getPopperConfig=function(){var t=this,e={};"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=l({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},c._jQueryInterface=function(t){return this.each(function(){var e=Tt(this).data(Dt);if(e||(e=new c(this,"object"==typeof t?t:null),Tt(this).data(Dt,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},c._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var t=[].slice.call(document.querySelectorAll(Wt)),n=0,i=t.length;n<i;n++){var r=c._getParentFromElement(t[n]),o=Tt(t[n]).data(Dt),s={relatedTarget:t[n]};if(e&&"click"===e.type&&(s.clickEvent=e),o){var a=o._menu;if(Tt(r).hasClass(Pt)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&Tt.contains(r,e.target))){var l=Tt.Event(kt.HIDE,s);Tt(r).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&Tt(document.body).children().off("mouseover",null,Tt.noop),t[n].setAttribute("aria-expanded","false"),Tt(a).removeClass(Pt),Tt(r).removeClass(Pt).trigger(Tt.Event(kt.HIDDEN,s)))}}}},c._getParentFromElement=function(e){var t,n=we.getSelectorFromElement(e);return n&&(t=document.querySelector(n)),t||e.parentNode},c._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||Tt(e.target).closest(Ut).length)):Nt.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!Tt(this).hasClass(xt))){var t=c._getParentFromElement(this),n=Tt(t).hasClass(Pt);if((n||27===e.which&&32===e.which)&&(!n||27!==e.which&&32!==e.which)){var i=[].slice.call(t.querySelectorAll(qt));if(0!==i.length){var r=i.indexOf(e.target);38===e.which&&0<r&&r--,40===e.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===e.which){var o=t.querySelector(Wt);Tt(o).trigger("focus")}Tt(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Jt}},{key:"DefaultType",get:function(){return Zt}}]),c}(),Tt(document).on(kt.KEYDOWN_DATA_API,Wt,Xt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API,Ut,Xt._dataApiKeydownHandler).on(kt.CLICK_DATA_API+" "+kt.KEYUP_DATA_API,Xt._clearMenus).on(kt.CLICK_DATA_API,Wt,function(e){e.preventDefault(),e.stopPropagation(),Xt._jQueryInterface.call(Tt(this),"toggle")}).on(kt.CLICK_DATA_API,Rt,function(e){e.stopPropagation()}),Tt.fn[St]=Xt._jQueryInterface,Tt.fn[St].Constructor=Xt,Tt.fn[St].noConflict=function(){return Tt.fn[St]=Ot,Xt._jQueryInterface},Xt),qi=(en="modal",nn="."+(tn="bs.modal"),rn=($t=t).fn[en],on={backdrop:!0,keyboard:!0,focus:!0,show:!0},sn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},an={HIDE:"hide"+nn,HIDDEN:"hidden"+nn,SHOW:"show"+nn,SHOWN:"shown"+nn,FOCUSIN:"focusin"+nn,RESIZE:"resize"+nn,CLICK_DISMISS:"click.dismiss"+nn,KEYDOWN_DISMISS:"keydown.dismiss"+nn,MOUSEUP_DISMISS:"mouseup.dismiss"+nn,MOUSEDOWN_DISMISS:"mousedown.dismiss"+nn,CLICK_DATA_API:"click"+nn+".data-api"},ln="modal-scrollbar-measure",cn="modal-backdrop",un="modal-open",fn="fade",hn="show",dn=".modal-dialog",pn='[data-toggle="modal"]',mn='[data-dismiss="modal"]',gn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",_n=".sticky-top",vn=function(){function r(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(dn),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var e=r.prototype;return e.toggle=function(e){return this._isShown?this.hide():this.show(e)},e.show=function(e){var t=this;if(!this._isTransitioning&&!this._isShown){$t(this._element).hasClass(fn)&&(this._isTransitioning=!0);var n=$t.Event(an.SHOW,{relatedTarget:e});$t(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),$t(document.body).addClass(un),this._setEscapeEvent(),this._setResizeEvent(),$t(this._element).on(an.CLICK_DISMISS,mn,function(e){return t.hide(e)}),$t(this._dialog).on(an.MOUSEDOWN_DISMISS,function(){$t(t._element).one(an.MOUSEUP_DISMISS,function(e){$t(e.target).is(t._element)&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},e.hide=function(e){var t=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var n=$t.Event(an.HIDE);if($t(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=$t(this._element).hasClass(fn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),$t(document).off(an.FOCUSIN),$t(this._element).removeClass(hn),$t(this._element).off(an.CLICK_DISMISS),$t(this._dialog).off(an.MOUSEDOWN_DISMISS),i){var r=we.getTransitionDurationFromElement(this._element);$t(this._element).one(we.TRANSITION_END,function(e){return t._hideModal(e)}).emulateTransitionEnd(r)}else this._hideModal()}}},e.dispose=function(){$t.removeData(this._element,tn),$t(window,document,this._element,this._backdrop).off(nn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(e){return e=l({},on,e),we.typeCheckConfig(en,e,sn),e},e._showElement=function(e){var t=this,n=$t(this._element).hasClass(fn);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.scrollTop=0,n&&we.reflow(this._element),$t(this._element).addClass(hn),this._config.focus&&this._enforceFocus();var i=$t.Event(an.SHOWN,{relatedTarget:e}),r=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,$t(t._element).trigger(i)};if(n){var o=we.getTransitionDurationFromElement(this._element);$t(this._dialog).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},e._enforceFocus=function(){var t=this;$t(document).off(an.FOCUSIN).on(an.FOCUSIN,function(e){document!==e.target&&t._element!==e.target&&0===$t(t._element).has(e.target).length&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?$t(this._element).on(an.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||$t(this._element).off(an.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?$t(window).on(an.RESIZE,function(e){return t.handleUpdate(e)}):$t(window).off(an.RESIZE)},e._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){$t(document.body).removeClass(un),e._resetAdjustments(),e._resetScrollbar(),$t(e._element).trigger(an.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&($t(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(e){var t=this,n=$t(this._element).hasClass(fn)?fn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=cn,n&&this._backdrop.classList.add(n),$t(this._backdrop).appendTo(document.body),$t(this._element).on(an.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&we.reflow(this._backdrop),$t(this._backdrop).addClass(hn),!e)return;if(!n)return void e();var i=we.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(we.TRANSITION_END,e).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){$t(this._backdrop).removeClass(hn);var r=function(){t._removeBackdrop(),e&&e()};if($t(this._element).hasClass(fn)){var o=we.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else e&&e()},e._adjustDialog=function(){var 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")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(gn)),t=[].slice.call(document.querySelectorAll(_n));$t(e).each(function(e,t){var n=t.style.paddingRight,i=$t(t).css("padding-right");$t(t).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),$t(t).each(function(e,t){var n=t.style.marginRight,i=$t(t).css("margin-right");$t(t).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=$t(document.body).css("padding-right");$t(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},e._resetScrollbar=function(){var e=[].slice.call(document.querySelectorAll(gn));$t(e).each(function(e,t){var n=$t(t).data("padding-right");$t(t).removeData("padding-right"),t.style.paddingRight=n||""});var t=[].slice.call(document.querySelectorAll(""+_n));$t(t).each(function(e,t){var n=$t(t).data("margin-right");"undefined"!=typeof n&&$t(t).css("margin-right",n).removeData("margin-right")});var n=$t(document.body).data("padding-right");$t(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var e=document.createElement("div");e.className=ln,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},r._jQueryInterface=function(n,i){return this.each(function(){var e=$t(this).data(tn),t=l({},on,$t(this).data(),"object"==typeof n&&n?n:{});if(e||(e=new r(this,t),$t(this).data(tn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](i)}else t.show&&e.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return on}}]),r}(),$t(document).on(an.CLICK_DATA_API,pn,function(e){var t,n=this,i=we.getSelectorFromElement(this);i&&(t=document.querySelector(i));var r=$t(t).data(tn)?"toggle":l({},$t(t).data(),$t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var o=$t(t).one(an.SHOW,function(e){e.isDefaultPrevented()||o.one(an.HIDDEN,function(){$t(n).is(":visible")&&n.focus()})});vn._jQueryInterface.call($t(t),r,this)}),$t.fn[en]=vn._jQueryInterface,$t.fn[en].Constructor=vn,$t.fn[en].noConflict=function(){return $t.fn[en]=rn,vn._jQueryInterface},vn),Ki=(En="tooltip",wn="."+(bn="bs.tooltip"),Cn=(yn=t).fn[En],Tn="bs-tooltip",Sn=new RegExp("(^|\\s)"+Tn+"\\S+","g"),In={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:!(An={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Dn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},Nn="out",kn={HIDE:"hide"+wn,HIDDEN:"hidden"+wn,SHOW:(On="show")+wn,SHOWN:"shown"+wn,INSERTED:"inserted"+wn,CLICK:"click"+wn,FOCUSIN:"focusin"+wn,FOCUSOUT:"focusout"+wn,MOUSEENTER:"mouseenter"+wn,MOUSELEAVE:"mouseleave"+wn},xn="fade",Pn="show",Ln=".tooltip-inner",jn=".arrow",Hn="hover",Mn="focus",Fn="click",Wn="manual",Rn=function(){function i(e,t){if("undefined"==typeof Ct)throw new TypeError("Bootstrap 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(t),this.tip=null,this._setListeners()}var e=i.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=yn(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(yn(this.getTipElement()).hasClass(Pn))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),yn.removeData(this.element,this.constructor.DATA_KEY),yn(this.element).off(this.constructor.EVENT_KEY),yn(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&yn(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===yn(this.element).css("display"))throw new Error("Please use show on visible elements");var e=yn.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){yn(this.element).trigger(e);var n=yn.contains(this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=we.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&yn(i).addClass(xn);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:yn(document).find(this.config.container);yn(i).data(this.constructor.DATA_KEY,this),yn.contains(this.element.ownerDocument.documentElement,this.tip)||yn(i).appendTo(a),yn(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Ct(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:jn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),yn(i).addClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().on("mouseover",null,yn.noop);var l=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,yn(t.element).trigger(t.constructor.Event.SHOWN),e===Nn&&t._leave(null,t)};if(yn(this.tip).hasClass(xn)){var c=we.getTransitionDurationFromElement(this.tip);yn(this.tip).one(we.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},e.hide=function(e){var t=this,n=this.getTipElement(),i=yn.Event(this.constructor.Event.HIDE),r=function(){t._hoverState!==On&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),yn(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(yn(this.element).trigger(i),!i.isDefaultPrevented()){if(yn(n).removeClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().off("mouseover",null,yn.noop),this._activeTrigger[Fn]=!1,this._activeTrigger[Mn]=!1,this._activeTrigger[Hn]=!1,yn(this.tip).hasClass(xn)){var o=we.getTransitionDurationFromElement(n);yn(n).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(e){yn(this.getTipElement()).addClass(Tn+"-"+e)},e.getTipElement=function(){return this.tip=this.tip||yn(this.config.template)[0],this.tip},e.setContent=function(){var e=this.getTipElement();this.setElementContent(yn(e.querySelectorAll(Ln)),this.getTitle()),yn(e).removeClass(xn+" "+Pn)},e.setElementContent=function(e,t){var n=this.config.html;"object"==typeof t&&(t.nodeType||t.jquery)?n?yn(t).parent().is(e)||e.empty().append(t):e.text(yn(t).text()):e[n?"html":"text"](t)},e.getTitle=function(){var 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},e._getAttachment=function(e){return An[e.toUpperCase()]},e._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)yn(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)});else if(e!==Wn){var t=e===Hn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=e===Hn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;yn(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(n,i.config.selector,function(e){return i._leave(e)})}yn(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var 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",""))},e._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Mn:Hn]=!0),yn(t.getTipElement()).hasClass(Pn)||t._hoverState===On?t._hoverState=On:(clearTimeout(t._timeout),t._hoverState=On,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===On&&t.show()},t.config.delay.show):t.show())},e._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Mn:Hn]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Nn,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===Nn&&t.hide()},t.config.delay.hide):t.hide())},e._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},e._getConfig=function(e){return"number"==typeof(e=l({},this.constructor.Default,yn(this.element).data(),"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),we.typeCheckConfig(En,e,this.constructor.DefaultType),e},e._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},e._cleanTipClass=function(){var e=yn(this.getTipElement()),t=e.attr("class").match(Sn);null!==t&&t.length&&e.removeClass(t.join(""))},e._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},e._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(yn(e).removeClass(xn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},i._jQueryInterface=function(n){return this.each(function(){var e=yn(this).data(bn),t="object"==typeof n&&n;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),yn(this).data(bn,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return In}},{key:"NAME",get:function(){return En}},{key:"DATA_KEY",get:function(){return bn}},{key:"Event",get:function(){return kn}},{key:"EVENT_KEY",get:function(){return wn}},{key:"DefaultType",get:function(){return Dn}}]),i}(),yn.fn[En]=Rn._jQueryInterface,yn.fn[En].Constructor=Rn,yn.fn[En].noConflict=function(){return yn.fn[En]=Cn,Rn._jQueryInterface},Rn),Qi=(Bn="popover",Kn="."+(qn="bs.popover"),Qn=(Un=t).fn[Bn],Yn="bs-popover",Vn=new RegExp("(^|\\s)"+Yn+"\\S+","g"),zn=l({},Ki.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>'}),Gn=l({},Ki.DefaultType,{content:"(string|element|function)"}),Jn="fade",Xn=".popover-header",$n=".popover-body",ei={HIDE:"hide"+Kn,HIDDEN:"hidden"+Kn,SHOW:(Zn="show")+Kn,SHOWN:"shown"+Kn,INSERTED:"inserted"+Kn,CLICK:"click"+Kn,FOCUSIN:"focusin"+Kn,FOCUSOUT:"focusout"+Kn,MOUSEENTER:"mouseenter"+Kn,MOUSELEAVE:"mouseleave"+Kn},ti=function(e){var t,n;function i(){return e.apply(this,arguments)||this}n=e,(t=i).prototype=Object.create(n.prototype),(t.prototype.constructor=t).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(e){Un(this.getTipElement()).addClass(Yn+"-"+e)},r.getTipElement=function(){return this.tip=this.tip||Un(this.config.template)[0],this.tip},r.setContent=function(){var e=Un(this.getTipElement());this.setElementContent(e.find(Xn),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find($n),t),e.removeClass(Jn+" "+Zn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var e=Un(this.getTipElement()),t=e.attr("class").match(Vn);null!==t&&0<t.length&&e.removeClass(t.join(""))},i._jQueryInterface=function(n){return this.each(function(){var e=Un(this).data(qn),t="object"==typeof n?n:null;if((e||!/destroy|hide/.test(n))&&(e||(e=new i(this,t),Un(this).data(qn,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return zn}},{key:"NAME",get:function(){return Bn}},{key:"DATA_KEY",get:function(){return qn}},{key:"Event",get:function(){return ei}},{key:"EVENT_KEY",get:function(){return Kn}},{key:"DefaultType",get:function(){return Gn}}]),i}(Ki),Un.fn[Bn]=ti._jQueryInterface,Un.fn[Bn].Constructor=ti,Un.fn[Bn].noConflict=function(){return Un.fn[Bn]=Qn,ti._jQueryInterface},ti),Yi=(ii="scrollspy",oi="."+(ri="bs.scrollspy"),si=(ni=t).fn[ii],ai={offset:10,method:"auto",target:""},li={offset:"number",method:"string",target:"(string|element)"},ci={ACTIVATE:"activate"+oi,SCROLL:"scroll"+oi,LOAD_DATA_API:"load"+oi+".data-api"},ui="dropdown-item",fi="active",hi='[data-spy="scroll"]',di=".active",pi=".nav, .list-group",mi=".nav-link",gi=".nav-item",_i=".list-group-item",vi=".dropdown",yi=".dropdown-item",Ei=".dropdown-toggle",bi="offset",wi="position",Ci=function(){function n(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+mi+","+this._config.target+" "+_i+","+this._config.target+" "+yi,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,ni(this._scrollElement).on(ci.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process()}var e=n.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?bi:wi,r="auto"===this._config.method?e:this._config.method,o=r===wi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(e){var t,n=we.getSelectorFromElement(e);if(n&&(t=document.querySelector(n)),t){var i=t.getBoundingClientRect();if(i.width||i.height)return[ni(t)[r]().top+o,n]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){ni.removeData(this._element,ri),ni(this._scrollElement).off(oi),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(e){if("string"!=typeof(e=l({},ai,"object"==typeof e&&e?e:{})).target){var t=ni(e.target).attr("id");t||(t=we.getUID(ii),ni(e.target).attr("id",t)),e.target="#"+t}return we.typeCheckConfig(ii,e,li),e},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),n<=e){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||e<this._offsets[r+1])&&this._activate(this._targets[r])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",");e=e.map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'});var n=ni([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass(ui)?(n.closest(vi).find(Ei).addClass(fi),n.addClass(fi)):(n.addClass(fi),n.parents(pi).prev(mi+", "+_i).addClass(fi),n.parents(pi).prev(gi).children(mi).addClass(fi)),ni(this._scrollElement).trigger(ci.ACTIVATE,{relatedTarget:t})},e._clear=function(){var e=[].slice.call(document.querySelectorAll(this._selector));ni(e).filter(di).removeClass(fi)},n._jQueryInterface=function(t){return this.each(function(){var e=ni(this).data(ri);if(e||(e=new n(this,"object"==typeof t&&t),ni(this).data(ri,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ai}}]),n}(),ni(window).on(ci.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(hi)),t=e.length;t--;){var n=ni(e[t]);Ci._jQueryInterface.call(n,n.data())}}),ni.fn[ii]=Ci._jQueryInterface,ni.fn[ii].Constructor=Ci,ni.fn[ii].noConflict=function(){return ni.fn[ii]=si,Ci._jQueryInterface},Ci),Vi=(Di="."+(Si="bs.tab"),Ai=(Ti=t).fn.tab,Ii={HIDE:"hide"+Di,HIDDEN:"hidden"+Di,SHOW:"show"+Di,SHOWN:"shown"+Di,CLICK_DATA_API:"click"+Di+".data-api"},Oi="dropdown-menu",Ni="active",ki="disabled",xi="fade",Pi="show",Li=".dropdown",ji=".nav, .list-group",Hi=".active",Mi="> li > .active",Fi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Wi=".dropdown-toggle",Ri="> .dropdown-menu .active",Ui=function(){function i(e){this._element=e}var e=i.prototype;return e.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&Ti(this._element).hasClass(Ni)||Ti(this._element).hasClass(ki))){var e,i,t=Ti(this._element).closest(ji)[0],r=we.getSelectorFromElement(this._element);if(t){var o="UL"===t.nodeName?Mi:Hi;i=(i=Ti.makeArray(Ti(t).find(o)))[i.length-1]}var s=Ti.Event(Ii.HIDE,{relatedTarget:this._element}),a=Ti.Event(Ii.SHOW,{relatedTarget:i});if(i&&Ti(i).trigger(s),Ti(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(e=document.querySelector(r)),this._activate(this._element,t);var l=function(){var e=Ti.Event(Ii.HIDDEN,{relatedTarget:n._element}),t=Ti.Event(Ii.SHOWN,{relatedTarget:i});Ti(i).trigger(e),Ti(n._element).trigger(t)};e?this._activate(e,e.parentNode,l):l()}}},e.dispose=function(){Ti.removeData(this._element,Si),this._element=null},e._activate=function(e,t,n){var i=this,r=("UL"===t.nodeName?Ti(t).find(Mi):Ti(t).children(Hi))[0],o=n&&r&&Ti(r).hasClass(xi),s=function(){return i._transitionComplete(e,r,n)};if(r&&o){var a=we.getTransitionDurationFromElement(r);Ti(r).one(we.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},e._transitionComplete=function(e,t,n){if(t){Ti(t).removeClass(Pi+" "+Ni);var i=Ti(t.parentNode).find(Ri)[0];i&&Ti(i).removeClass(Ni),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(Ti(e).addClass(Ni),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),we.reflow(e),Ti(e).addClass(Pi),e.parentNode&&Ti(e.parentNode).hasClass(Oi)){var r=Ti(e).closest(Li)[0];if(r){var o=[].slice.call(r.querySelectorAll(Wi));Ti(o).addClass(Ni)}e.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var e=Ti(this),t=e.data(Si);if(t||(t=new i(this),e.data(Si,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),Ti(document).on(Ii.CLICK_DATA_API,Fi,function(e){e.preventDefault(),Ui._jQueryInterface.call(Ti(this),"show")}),Ti.fn.tab=Ui._jQueryInterface,Ti.fn.tab.Constructor=Ui,Ti.fn.tab.noConflict=function(){return Ti.fn.tab=Ai,Ui._jQueryInterface},Ui);!function(e){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(t),e.Util=we,e.Alert=Ce,e.Button=Te,e.Carousel=Se,e.Collapse=De,e.Dropdown=Bi,e.Modal=qi,e.Popover=Qi,e.Scrollspy=Yi,e.Tab=Vi,e.Tooltip=Ki,Object.defineProperty(e,"__esModule",{value:!0})});
7
7
  //# sourceMappingURL=bootstrap.bundle.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","length","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","_createClass","key","get","on","Constructor","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","source","getClientRect","offsets","right","left","bottom","top","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","getWindow","defaultView","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","removeAttribute","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","removeChild","Utils","global","PopperUtils","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","boundary","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","referenceElement","_getPopperConfig","noop","destroy","stopPropagation","constructor","_getPlacement","$parentDropdown","offsetConf","_objectSpread","popperConfig","toggles","context","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","animation","template","title","delay","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement"],"mappings":"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","sourcesContent":["/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\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*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\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 */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && 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 */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\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 */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\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 */\nfunction 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\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar 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 */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\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 */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\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 var 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 TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return 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 */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\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 */\nfunction 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 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\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 var 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/**\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 */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\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 */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var 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/*\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\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var 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\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\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 */\nfunction getBoundingClientRect(element) {\n var 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 var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var 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 var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var 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 var 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\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var 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 var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\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 (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\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 */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\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\nfunction 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 var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\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 */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\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 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\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 */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var 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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\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 */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\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 */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\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 */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\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 */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var 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 var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\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 */\nfunction 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\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 */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\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 */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var 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\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 */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var 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(this.state, this.popper, this.reference, this.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 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\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(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : '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/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\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 */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction 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 explicity 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/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\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 */\nfunction setupEventListeners(reference, options, state, updateBound) {\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 var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\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 */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction 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(function (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\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 */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\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 */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\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 */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\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 */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\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 */\nfunction 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 */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var 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 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\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/**\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 */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var 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 var 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 var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\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 var invertTop = sideA === 'bottom' ? -1 : 1;\n var 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 var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\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 */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\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 */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var 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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var 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 var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = 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 = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\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 */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\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-right` (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 */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar 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 */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar 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 */\nfunction 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 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var 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(function (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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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 = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = 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\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 */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var 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 var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var 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 var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\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 */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var 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 var 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 var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\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 var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\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 var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (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(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (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 */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\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\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 */\nfunction preventOverflow(data, options) {\n var boundariesElement = 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 var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\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 var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\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 */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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\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 */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\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 */\nvar modifiers = {\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 unitless, 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 * > More on this [reading 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 * An 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 has always 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 eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point 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 conjuction 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\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 you 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 informations used by Popper.js\n * this object get 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\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, 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 */\nvar Defaults = {\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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as 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 function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\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 = _extends({}, 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(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\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(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var 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\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\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\n }]);\n return Popper;\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\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.1'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.1): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]}
1
+ {"version":3,"sources":["../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","_createClass","key","get","on","Constructor","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","hasAttribute","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","parentNode","slice","querySelectorAll","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","carousels","i","len","$carousel","SHOW","SHOWN","HIDE","HIDDEN","_isTransitioning","_triggerArray","makeArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","assign","source","getClientRect","offsets","right","left","bottom","top","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","getWindow","defaultView","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","instance","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","removeAttribute","onLoad","modifierOptions","Popper","classCallCheck","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","removeChild","Utils","global","PopperUtils","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","boundary","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","referenceElement","_getPopperConfig","noop","destroy","stopPropagation","constructor","_getPlacement","$parentDropdown","offsetConf","_objectSpread","popperConfig","toggles","context","clickEvent","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","createElement","className","add","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this10","animation","template","title","delay","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","$tip","tabClass","join","popperData","popperInstance","initConfigAnimation","_Tooltip","_getContent","method","ACTIVATE","SCROLL","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","nodes","scrollSpys","$spy","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList"],"mappings":"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","sourcesContent":["/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\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*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\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 */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && 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 */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\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 */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\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 */\nfunction 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\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar 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 */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\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 */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\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 var 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 TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return 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 */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\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 */\nfunction 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 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\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 var 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/**\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 */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\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 */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var 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/*\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\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var 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\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\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 */\nfunction getBoundingClientRect(element) {\n var 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 var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var 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 var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var 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 var 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\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var 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 var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\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 (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\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 */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\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\nfunction 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 var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\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 */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\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 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\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 */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var 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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\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 */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\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 */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\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 */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\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 */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var 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 var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\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 */\nfunction 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\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 */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\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 */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var 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\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 */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var 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(this.state, this.popper, this.reference, this.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 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\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(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : '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/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\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 */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction 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 explicity 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/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\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 */\nfunction setupEventListeners(reference, options, state, updateBound) {\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 var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\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 */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction 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(function (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\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 */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\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 */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\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 */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\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 */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\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 */\nfunction 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 */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var 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 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\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/**\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 */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var 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 var 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 var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\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 var invertTop = sideA === 'bottom' ? -1 : 1;\n var 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 var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\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 */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\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 */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var 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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var 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 var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = 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 = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\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 */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\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-right` (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 */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar 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 */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar 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 */\nfunction 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 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var 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(function (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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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 = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = 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\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 */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var 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 var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var 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 var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\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 */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var 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 var 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 var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\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 var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\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 var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (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(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (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 */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\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\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 */\nfunction preventOverflow(data, options) {\n var boundariesElement = 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 var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\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 var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\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 */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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\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 */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\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 */\nvar modifiers = {\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 unitless, 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 * > More on this [reading 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 * An 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 has always 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 eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point 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 conjuction 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\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 you 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 informations used by Popper.js\n * this object get 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\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, 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 */\nvar Defaults = {\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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as 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 function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\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 = _extends({}, 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(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\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(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var 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\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\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\n }]);\n return Popper;\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\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => elem.getAttribute('data-parent') === this._config.parent)\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(document).find(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n const nodes = [].slice.call(document.querySelectorAll(this._selector))\n $(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY))\n\n const scrollSpysLength = scrollSpys.length\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))\n $(dropdownToggleList).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v4.1.1 (https://getbootstrap.com/)
2
+ * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
@@ -70,7 +70,7 @@
70
70
 
71
71
  /**
72
72
  * --------------------------------------------------------------------------
73
- * Bootstrap (v4.1.1): util.js
73
+ * Bootstrap (v4.1.3): util.js
74
74
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75
75
  * --------------------------------------------------------------------------
76
76
  */
@@ -147,8 +147,7 @@
147
147
  }
148
148
 
149
149
  try {
150
- var $selector = $$$1(document).find(selector);
151
- return $selector.length > 0 ? selector : null;
150
+ return document.querySelector(selector) ? selector : null;
152
151
  } catch (err) {
153
152
  return null;
154
153
  }
@@ -203,7 +202,7 @@
203
202
 
204
203
  /**
205
204
  * --------------------------------------------------------------------------
206
- * Bootstrap (v4.1.1): alert.js
205
+ * Bootstrap (v4.1.3): alert.js
207
206
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
208
207
  * --------------------------------------------------------------------------
209
208
  */
@@ -215,7 +214,7 @@
215
214
  * ------------------------------------------------------------------------
216
215
  */
217
216
  var NAME = 'alert';
218
- var VERSION = '4.1.1';
217
+ var VERSION = '4.1.3';
219
218
  var DATA_KEY = 'bs.alert';
220
219
  var EVENT_KEY = "." + DATA_KEY;
221
220
  var DATA_API_KEY = '.data-api';
@@ -278,7 +277,7 @@
278
277
  var parent = false;
279
278
 
280
279
  if (selector) {
281
- parent = $$$1(selector)[0];
280
+ parent = document.querySelector(selector);
282
281
  }
283
282
 
284
283
  if (!parent) {
@@ -378,7 +377,7 @@
378
377
 
379
378
  /**
380
379
  * --------------------------------------------------------------------------
381
- * Bootstrap (v4.1.1): button.js
380
+ * Bootstrap (v4.1.3): button.js
382
381
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
383
382
  * --------------------------------------------------------------------------
384
383
  */
@@ -390,7 +389,7 @@
390
389
  * ------------------------------------------------------------------------
391
390
  */
392
391
  var NAME = 'button';
393
- var VERSION = '4.1.1';
392
+ var VERSION = '4.1.3';
394
393
  var DATA_KEY = 'bs.button';
395
394
  var EVENT_KEY = "." + DATA_KEY;
396
395
  var DATA_API_KEY = '.data-api';
@@ -435,14 +434,14 @@
435
434
  var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
436
435
 
437
436
  if (rootElement) {
438
- var input = $$$1(this._element).find(Selector.INPUT)[0];
437
+ var input = this._element.querySelector(Selector.INPUT);
439
438
 
440
439
  if (input) {
441
440
  if (input.type === 'radio') {
442
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
441
+ if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
443
442
  triggerChangeEvent = false;
444
443
  } else {
445
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
444
+ var activeElement = rootElement.querySelector(Selector.ACTIVE);
446
445
 
447
446
  if (activeElement) {
448
447
  $$$1(activeElement).removeClass(ClassName.ACTIVE);
@@ -455,7 +454,7 @@
455
454
  return;
456
455
  }
457
456
 
458
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
457
+ input.checked = !this._element.classList.contains(ClassName.ACTIVE);
459
458
  $$$1(input).trigger('change');
460
459
  }
461
460
 
@@ -465,7 +464,7 @@
465
464
  }
466
465
 
467
466
  if (addAriaPressed) {
468
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
467
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
469
468
  }
470
469
 
471
470
  if (triggerChangeEvent) {
@@ -542,7 +541,7 @@
542
541
 
543
542
  /**
544
543
  * --------------------------------------------------------------------------
545
- * Bootstrap (v4.1.1): carousel.js
544
+ * Bootstrap (v4.1.3): carousel.js
546
545
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
547
546
  * --------------------------------------------------------------------------
548
547
  */
@@ -554,7 +553,7 @@
554
553
  * ------------------------------------------------------------------------
555
554
  */
556
555
  var NAME = 'carousel';
557
- var VERSION = '4.1.1';
556
+ var VERSION = '4.1.3';
558
557
  var DATA_KEY = 'bs.carousel';
559
558
  var EVENT_KEY = "." + DATA_KEY;
560
559
  var DATA_API_KEY = '.data-api';
@@ -633,7 +632,7 @@
633
632
  this.touchTimeout = null;
634
633
  this._config = this._getConfig(config);
635
634
  this._element = $$$1(element)[0];
636
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
635
+ this._indicatorsElement = this._element.querySelector(Selector.INDICATORS);
637
636
 
638
637
  this._addEventListeners();
639
638
  } // Getters
@@ -667,7 +666,7 @@
667
666
  this._isPaused = true;
668
667
  }
669
668
 
670
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
669
+ if (this._element.querySelector(Selector.NEXT_PREV)) {
671
670
  Util.triggerTransitionEnd(this._element);
672
671
  this.cycle(true);
673
672
  }
@@ -694,7 +693,7 @@
694
693
  _proto.to = function to(index) {
695
694
  var _this = this;
696
695
 
697
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
696
+ this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
698
697
 
699
698
  var activeIndex = this._getItemIndex(this._activeElement);
700
699
 
@@ -800,7 +799,7 @@
800
799
  };
801
800
 
802
801
  _proto._getItemIndex = function _getItemIndex(element) {
803
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
802
+ this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : [];
804
803
  return this._items.indexOf(element);
805
804
  };
806
805
 
@@ -825,7 +824,7 @@
825
824
  _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
826
825
  var targetIndex = this._getItemIndex(relatedTarget);
827
826
 
828
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
827
+ var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM));
829
828
 
830
829
  var slideEvent = $$$1.Event(Event.SLIDE, {
831
830
  relatedTarget: relatedTarget,
@@ -839,7 +838,8 @@
839
838
 
840
839
  _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
841
840
  if (this._indicatorsElement) {
842
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
841
+ var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE));
842
+ $$$1(indicators).removeClass(ClassName.ACTIVE);
843
843
 
844
844
  var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
845
845
 
@@ -852,7 +852,7 @@
852
852
  _proto._slide = function _slide(direction, element) {
853
853
  var _this3 = this;
854
854
 
855
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
855
+ var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
856
856
 
857
857
  var activeElementIndex = this._getItemIndex(activeElement);
858
858
 
@@ -1018,11 +1018,13 @@
1018
1018
 
1019
1019
  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
1020
1020
  $$$1(window).on(Event.LOAD_DATA_API, function () {
1021
- $$$1(Selector.DATA_RIDE).each(function () {
1022
- var $carousel = $$$1(this);
1021
+ var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE));
1022
+
1023
+ for (var i = 0, len = carousels.length; i < len; i++) {
1024
+ var $carousel = $$$1(carousels[i]);
1023
1025
 
1024
1026
  Carousel._jQueryInterface.call($carousel, $carousel.data());
1025
- });
1027
+ }
1026
1028
  });
1027
1029
  /**
1028
1030
  * ------------------------------------------------------------------------
@@ -1043,7 +1045,7 @@
1043
1045
 
1044
1046
  /**
1045
1047
  * --------------------------------------------------------------------------
1046
- * Bootstrap (v4.1.1): collapse.js
1048
+ * Bootstrap (v4.1.3): collapse.js
1047
1049
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1048
1050
  * --------------------------------------------------------------------------
1049
1051
  */
@@ -1055,7 +1057,7 @@
1055
1057
  * ------------------------------------------------------------------------
1056
1058
  */
1057
1059
  var NAME = 'collapse';
1058
- var VERSION = '4.1.1';
1060
+ var VERSION = '4.1.3';
1059
1061
  var DATA_KEY = 'bs.collapse';
1060
1062
  var EVENT_KEY = "." + DATA_KEY;
1061
1063
  var DATA_API_KEY = '.data-api';
@@ -1103,14 +1105,17 @@
1103
1105
  this._isTransitioning = false;
1104
1106
  this._element = element;
1105
1107
  this._config = this._getConfig(config);
1106
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1107
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
1108
+ this._triggerArray = $$$1.makeArray(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1109
+ var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
1108
1110
 
1109
- for (var i = 0; i < tabToggles.length; i++) {
1110
- var elem = tabToggles[i];
1111
+ for (var i = 0, len = toggleList.length; i < len; i++) {
1112
+ var elem = toggleList[i];
1111
1113
  var selector = Util.getSelectorFromElement(elem);
1114
+ var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1115
+ return foundElem === element;
1116
+ });
1112
1117
 
1113
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
1118
+ if (selector !== null && filterElement.length > 0) {
1114
1119
  this._selector = selector;
1115
1120
 
1116
1121
  this._triggerArray.push(elem);
@@ -1151,7 +1156,9 @@
1151
1156
  var activesData;
1152
1157
 
1153
1158
  if (this._parent) {
1154
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
1159
+ actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
1160
+ return elem.getAttribute('data-parent') === _this._config.parent;
1161
+ });
1155
1162
 
1156
1163
  if (actives.length === 0) {
1157
1164
  actives = null;
@@ -1186,7 +1193,7 @@
1186
1193
  $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
1187
1194
  this._element.style[dimension] = 0;
1188
1195
 
1189
- if (this._triggerArray.length > 0) {
1196
+ if (this._triggerArray.length) {
1190
1197
  $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
1191
1198
  }
1192
1199
 
@@ -1227,14 +1234,15 @@
1227
1234
  this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1228
1235
  Util.reflow(this._element);
1229
1236
  $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
1237
+ var triggerArrayLength = this._triggerArray.length;
1230
1238
 
1231
- if (this._triggerArray.length > 0) {
1232
- for (var i = 0; i < this._triggerArray.length; i++) {
1239
+ if (triggerArrayLength > 0) {
1240
+ for (var i = 0; i < triggerArrayLength; i++) {
1233
1241
  var trigger = this._triggerArray[i];
1234
1242
  var selector = Util.getSelectorFromElement(trigger);
1235
1243
 
1236
1244
  if (selector !== null) {
1237
- var $elem = $$$1(selector);
1245
+ var $elem = $$$1([].slice.call(document.querySelectorAll(selector)));
1238
1246
 
1239
1247
  if (!$elem.hasClass(ClassName.SHOW)) {
1240
1248
  $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
@@ -1295,11 +1303,12 @@
1295
1303
  parent = this._config.parent[0];
1296
1304
  }
1297
1305
  } else {
1298
- parent = $$$1(this._config.parent)[0];
1306
+ parent = document.querySelector(this._config.parent);
1299
1307
  }
1300
1308
 
1301
1309
  var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1302
- $$$1(parent).find(selector).each(function (i, element) {
1310
+ var children = [].slice.call(parent.querySelectorAll(selector));
1311
+ $$$1(children).each(function (i, element) {
1303
1312
  _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1304
1313
  });
1305
1314
  return parent;
@@ -1309,7 +1318,7 @@
1309
1318
  if (element) {
1310
1319
  var isOpen = $$$1(element).hasClass(ClassName.SHOW);
1311
1320
 
1312
- if (triggerArray.length > 0) {
1321
+ if (triggerArray.length) {
1313
1322
  $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1314
1323
  }
1315
1324
  }
@@ -1318,7 +1327,7 @@
1318
1327
 
1319
1328
  Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1320
1329
  var selector = Util.getSelectorFromElement(element);
1321
- return selector ? $$$1(selector)[0] : null;
1330
+ return selector ? document.querySelector(selector) : null;
1322
1331
  };
1323
1332
 
1324
1333
  Collapse._jQueryInterface = function _jQueryInterface(config) {
@@ -1376,7 +1385,8 @@
1376
1385
 
1377
1386
  var $trigger = $$$1(this);
1378
1387
  var selector = Util.getSelectorFromElement(this);
1379
- $$$1(selector).each(function () {
1388
+ var selectors = [].slice.call(document.querySelectorAll(selector));
1389
+ $$$1(selectors).each(function () {
1380
1390
  var $target = $$$1(this);
1381
1391
  var data = $target.data(DATA_KEY);
1382
1392
  var config = data ? 'toggle' : $trigger.data();
@@ -1403,7 +1413,7 @@
1403
1413
 
1404
1414
  /**
1405
1415
  * --------------------------------------------------------------------------
1406
- * Bootstrap (v4.1.1): dropdown.js
1416
+ * Bootstrap (v4.1.3): dropdown.js
1407
1417
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1408
1418
  * --------------------------------------------------------------------------
1409
1419
  */
@@ -1415,7 +1425,7 @@
1415
1425
  * ------------------------------------------------------------------------
1416
1426
  */
1417
1427
  var NAME = 'dropdown';
1418
- var VERSION = '4.1.1';
1428
+ var VERSION = '4.1.3';
1419
1429
  var DATA_KEY = 'bs.dropdown';
1420
1430
  var EVENT_KEY = "." + DATA_KEY;
1421
1431
  var DATA_API_KEY = '.data-api';
@@ -1624,14 +1634,16 @@
1624
1634
  if (!this._menu) {
1625
1635
  var parent = Dropdown._getParentFromElement(this._element);
1626
1636
 
1627
- this._menu = $$$1(parent).find(Selector.MENU)[0];
1637
+ if (parent) {
1638
+ this._menu = parent.querySelector(Selector.MENU);
1639
+ }
1628
1640
  }
1629
1641
 
1630
1642
  return this._menu;
1631
1643
  };
1632
1644
 
1633
1645
  _proto._getPlacement = function _getPlacement() {
1634
- var $parentDropdown = $$$1(this._element).parent();
1646
+ var $parentDropdown = $$$1(this._element.parentNode);
1635
1647
  var placement = AttachmentMap.BOTTOM; // Handle dropup
1636
1648
 
1637
1649
  if ($parentDropdown.hasClass(ClassName.DROPUP)) {
@@ -1719,9 +1731,9 @@
1719
1731
  return;
1720
1732
  }
1721
1733
 
1722
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
1734
+ var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
1723
1735
 
1724
- for (var i = 0; i < toggles.length; i++) {
1736
+ for (var i = 0, len = toggles.length; i < len; i++) {
1725
1737
  var parent = Dropdown._getParentFromElement(toggles[i]);
1726
1738
 
1727
1739
  var context = $$$1(toggles[i]).data(DATA_KEY);
@@ -1729,6 +1741,10 @@
1729
1741
  relatedTarget: toggles[i]
1730
1742
  };
1731
1743
 
1744
+ if (event && event.type === 'click') {
1745
+ relatedTarget.clickEvent = event;
1746
+ }
1747
+
1732
1748
  if (!context) {
1733
1749
  continue;
1734
1750
  }
@@ -1767,7 +1783,7 @@
1767
1783
  var selector = Util.getSelectorFromElement(element);
1768
1784
 
1769
1785
  if (selector) {
1770
- parent = $$$1(selector)[0];
1786
+ parent = document.querySelector(selector);
1771
1787
  }
1772
1788
 
1773
1789
  return parent || element.parentNode;
@@ -1799,7 +1815,7 @@
1799
1815
 
1800
1816
  if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1801
1817
  if (event.which === ESCAPE_KEYCODE) {
1802
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
1818
+ var toggle = parent.querySelector(Selector.DATA_TOGGLE);
1803
1819
  $$$1(toggle).trigger('focus');
1804
1820
  }
1805
1821
 
@@ -1807,7 +1823,7 @@
1807
1823
  return;
1808
1824
  }
1809
1825
 
1810
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
1826
+ var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
1811
1827
 
1812
1828
  if (items.length === 0) {
1813
1829
  return;
@@ -1885,7 +1901,7 @@
1885
1901
 
1886
1902
  /**
1887
1903
  * --------------------------------------------------------------------------
1888
- * Bootstrap (v4.1.1): modal.js
1904
+ * Bootstrap (v4.1.3): modal.js
1889
1905
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1890
1906
  * --------------------------------------------------------------------------
1891
1907
  */
@@ -1897,7 +1913,7 @@
1897
1913
  * ------------------------------------------------------------------------
1898
1914
  */
1899
1915
  var NAME = 'modal';
1900
- var VERSION = '4.1.1';
1916
+ var VERSION = '4.1.3';
1901
1917
  var DATA_KEY = 'bs.modal';
1902
1918
  var EVENT_KEY = "." + DATA_KEY;
1903
1919
  var DATA_API_KEY = '.data-api';
@@ -1941,8 +1957,7 @@
1941
1957
  DATA_TOGGLE: '[data-toggle="modal"]',
1942
1958
  DATA_DISMISS: '[data-dismiss="modal"]',
1943
1959
  FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
1944
- STICKY_CONTENT: '.sticky-top',
1945
- NAVBAR_TOGGLER: '.navbar-toggler'
1960
+ STICKY_CONTENT: '.sticky-top'
1946
1961
  /**
1947
1962
  * ------------------------------------------------------------------------
1948
1963
  * Class Definition
@@ -1957,7 +1972,7 @@
1957
1972
  function Modal(element, config) {
1958
1973
  this._config = this._getConfig(config);
1959
1974
  this._element = element;
1960
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
1975
+ this._dialog = element.querySelector(Selector.DIALOG);
1961
1976
  this._backdrop = null;
1962
1977
  this._isShown = false;
1963
1978
  this._isBodyOverflowing = false;
@@ -2214,7 +2229,7 @@
2214
2229
  this._backdrop.className = ClassName.BACKDROP;
2215
2230
 
2216
2231
  if (animate) {
2217
- $$$1(this._backdrop).addClass(animate);
2232
+ this._backdrop.classList.add(animate);
2218
2233
  }
2219
2234
 
2220
2235
  $$$1(this._backdrop).appendTo(document.body);
@@ -2308,23 +2323,19 @@
2308
2323
  if (this._isBodyOverflowing) {
2309
2324
  // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2310
2325
  // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
2311
- // Adjust fixed content padding
2312
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2313
- var actualPadding = $$$1(element)[0].style.paddingRight;
2326
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
2327
+ var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
2328
+
2329
+ $$$1(fixedContent).each(function (index, element) {
2330
+ var actualPadding = element.style.paddingRight;
2314
2331
  var calculatedPadding = $$$1(element).css('padding-right');
2315
2332
  $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2316
2333
  }); // Adjust sticky content margin
2317
2334
 
2318
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
2319
- var actualMargin = $$$1(element)[0].style.marginRight;
2335
+ $$$1(stickyContent).each(function (index, element) {
2336
+ var actualMargin = element.style.marginRight;
2320
2337
  var calculatedMargin = $$$1(element).css('margin-right');
2321
2338
  $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2322
- }); // Adjust navbar-toggler margin
2323
-
2324
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
2325
- var actualMargin = $$$1(element)[0].style.marginRight;
2326
- var calculatedMargin = $$$1(element).css('margin-right');
2327
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
2328
2339
  }); // Adjust body padding
2329
2340
 
2330
2341
  var actualPadding = document.body.style.paddingRight;
@@ -2335,15 +2346,15 @@
2335
2346
 
2336
2347
  _proto._resetScrollbar = function _resetScrollbar() {
2337
2348
  // Restore fixed content padding
2338
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
2349
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
2350
+ $$$1(fixedContent).each(function (index, element) {
2339
2351
  var padding = $$$1(element).data('padding-right');
2352
+ $$$1(element).removeData('padding-right');
2353
+ element.style.paddingRight = padding ? padding : '';
2354
+ }); // Restore sticky content
2340
2355
 
2341
- if (typeof padding !== 'undefined') {
2342
- $$$1(element).css('padding-right', padding).removeData('padding-right');
2343
- }
2344
- }); // Restore sticky content and navbar-toggler margin
2345
-
2346
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
2356
+ var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
2357
+ $$$1(elements).each(function (index, element) {
2347
2358
  var margin = $$$1(element).data('margin-right');
2348
2359
 
2349
2360
  if (typeof margin !== 'undefined') {
@@ -2352,10 +2363,8 @@
2352
2363
  }); // Restore body padding
2353
2364
 
2354
2365
  var padding = $$$1(document.body).data('padding-right');
2355
-
2356
- if (typeof padding !== 'undefined') {
2357
- $$$1(document.body).css('padding-right', padding).removeData('padding-right');
2358
- }
2366
+ $$$1(document.body).removeData('padding-right');
2367
+ document.body.style.paddingRight = padding ? padding : '';
2359
2368
  };
2360
2369
 
2361
2370
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
@@ -2420,7 +2429,7 @@
2420
2429
  var selector = Util.getSelectorFromElement(this);
2421
2430
 
2422
2431
  if (selector) {
2423
- target = $$$1(selector)[0];
2432
+ target = document.querySelector(selector);
2424
2433
  }
2425
2434
 
2426
2435
  var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
@@ -2463,7 +2472,7 @@
2463
2472
 
2464
2473
  /**
2465
2474
  * --------------------------------------------------------------------------
2466
- * Bootstrap (v4.1.1): tooltip.js
2475
+ * Bootstrap (v4.1.3): tooltip.js
2467
2476
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2468
2477
  * --------------------------------------------------------------------------
2469
2478
  */
@@ -2475,7 +2484,7 @@
2475
2484
  * ------------------------------------------------------------------------
2476
2485
  */
2477
2486
  var NAME = 'tooltip';
2478
- var VERSION = '4.1.1';
2487
+ var VERSION = '4.1.3';
2479
2488
  var DATA_KEY = 'bs.tooltip';
2480
2489
  var EVENT_KEY = "." + DATA_KEY;
2481
2490
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@@ -2685,7 +2694,7 @@
2685
2694
  var attachment = this._getAttachment(placement);
2686
2695
 
2687
2696
  this.addAttachmentClass(attachment);
2688
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
2697
+ var container = this.config.container === false ? document.body : $$$1(document).find(this.config.container);
2689
2698
  $$$1(tip).data(this.constructor.DATA_KEY, this);
2690
2699
 
2691
2700
  if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
@@ -2824,9 +2833,9 @@
2824
2833
  };
2825
2834
 
2826
2835
  _proto.setContent = function setContent() {
2827
- var $tip = $$$1(this.getTipElement());
2828
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
2829
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
2836
+ var tip = this.getTipElement();
2837
+ this.setElementContent($$$1(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());
2838
+ $$$1(tip).removeClass(ClassName.FADE + " " + ClassName.SHOW);
2830
2839
  };
2831
2840
 
2832
2841
  _proto.setElementContent = function setElementContent($element, content) {
@@ -3019,15 +3028,18 @@
3019
3028
  var $tip = $$$1(this.getTipElement());
3020
3029
  var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
3021
3030
 
3022
- if (tabClass !== null && tabClass.length > 0) {
3031
+ if (tabClass !== null && tabClass.length) {
3023
3032
  $tip.removeClass(tabClass.join(''));
3024
3033
  }
3025
3034
  };
3026
3035
 
3027
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
3036
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
3037
+ var popperInstance = popperData.instance;
3038
+ this.tip = popperInstance.popper;
3039
+
3028
3040
  this._cleanTipClass();
3029
3041
 
3030
- this.addAttachmentClass(this._getAttachment(data.placement));
3042
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
3031
3043
  };
3032
3044
 
3033
3045
  _proto._fixTransition = function _fixTransition() {
@@ -3130,7 +3142,7 @@
3130
3142
 
3131
3143
  /**
3132
3144
  * --------------------------------------------------------------------------
3133
- * Bootstrap (v4.1.1): popover.js
3145
+ * Bootstrap (v4.1.3): popover.js
3134
3146
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3135
3147
  * --------------------------------------------------------------------------
3136
3148
  */
@@ -3142,7 +3154,7 @@
3142
3154
  * ------------------------------------------------------------------------
3143
3155
  */
3144
3156
  var NAME = 'popover';
3145
- var VERSION = '4.1.1';
3157
+ var VERSION = '4.1.3';
3146
3158
  var DATA_KEY = 'bs.popover';
3147
3159
  var EVENT_KEY = "." + DATA_KEY;
3148
3160
  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
@@ -3327,7 +3339,7 @@
3327
3339
 
3328
3340
  /**
3329
3341
  * --------------------------------------------------------------------------
3330
- * Bootstrap (v4.1.1): scrollspy.js
3342
+ * Bootstrap (v4.1.3): scrollspy.js
3331
3343
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3332
3344
  * --------------------------------------------------------------------------
3333
3345
  */
@@ -3339,7 +3351,7 @@
3339
3351
  * ------------------------------------------------------------------------
3340
3352
  */
3341
3353
  var NAME = 'scrollspy';
3342
- var VERSION = '4.1.1';
3354
+ var VERSION = '4.1.3';
3343
3355
  var DATA_KEY = 'bs.scrollspy';
3344
3356
  var EVENT_KEY = "." + DATA_KEY;
3345
3357
  var DATA_API_KEY = '.data-api';
@@ -3421,13 +3433,13 @@
3421
3433
  this._offsets = [];
3422
3434
  this._targets = [];
3423
3435
  this._scrollHeight = this._getScrollHeight();
3424
- var targets = $$$1.makeArray($$$1(this._selector));
3436
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
3425
3437
  targets.map(function (element) {
3426
3438
  var target;
3427
3439
  var targetSelector = Util.getSelectorFromElement(element);
3428
3440
 
3429
3441
  if (targetSelector) {
3430
- target = $$$1(targetSelector)[0];
3442
+ target = document.querySelector(targetSelector);
3431
3443
  }
3432
3444
 
3433
3445
  if (target) {
@@ -3524,7 +3536,9 @@
3524
3536
  return;
3525
3537
  }
3526
3538
 
3527
- for (var i = this._offsets.length; i--;) {
3539
+ var offsetLength = this._offsets.length;
3540
+
3541
+ for (var i = offsetLength; i--;) {
3528
3542
  var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3529
3543
 
3530
3544
  if (isActiveTarget) {
@@ -3544,7 +3558,7 @@
3544
3558
  queries = queries.map(function (selector) {
3545
3559
  return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
3546
3560
  });
3547
- var $link = $$$1(queries.join(','));
3561
+ var $link = $$$1([].slice.call(document.querySelectorAll(queries.join(','))));
3548
3562
 
3549
3563
  if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
3550
3564
  $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
@@ -3565,7 +3579,8 @@
3565
3579
  };
3566
3580
 
3567
3581
  _proto._clear = function _clear() {
3568
- $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
3582
+ var nodes = [].slice.call(document.querySelectorAll(this._selector));
3583
+ $$$1(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
3569
3584
  }; // Static
3570
3585
 
3571
3586
 
@@ -3612,9 +3627,10 @@
3612
3627
 
3613
3628
 
3614
3629
  $$$1(window).on(Event.LOAD_DATA_API, function () {
3615
- var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
3630
+ var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
3631
+ var scrollSpysLength = scrollSpys.length;
3616
3632
 
3617
- for (var i = scrollSpys.length; i--;) {
3633
+ for (var i = scrollSpysLength; i--;) {
3618
3634
  var $spy = $$$1(scrollSpys[i]);
3619
3635
 
3620
3636
  ScrollSpy._jQueryInterface.call($spy, $spy.data());
@@ -3639,7 +3655,7 @@
3639
3655
 
3640
3656
  /**
3641
3657
  * --------------------------------------------------------------------------
3642
- * Bootstrap (v4.1.1): tab.js
3658
+ * Bootstrap (v4.1.3): tab.js
3643
3659
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3644
3660
  * --------------------------------------------------------------------------
3645
3661
  */
@@ -3651,7 +3667,7 @@
3651
3667
  * ------------------------------------------------------------------------
3652
3668
  */
3653
3669
  var NAME = 'tab';
3654
- var VERSION = '4.1.1';
3670
+ var VERSION = '4.1.3';
3655
3671
  var DATA_KEY = 'bs.tab';
3656
3672
  var EVENT_KEY = "." + DATA_KEY;
3657
3673
  var DATA_API_KEY = '.data-api';
@@ -3733,7 +3749,7 @@
3733
3749
  }
3734
3750
 
3735
3751
  if (selector) {
3736
- target = $$$1(selector)[0];
3752
+ target = document.querySelector(selector);
3737
3753
  }
3738
3754
 
3739
3755
  this._activate(this._element, listElement);
@@ -3815,7 +3831,8 @@
3815
3831
  var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
3816
3832
 
3817
3833
  if (dropdownElement) {
3818
- $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
3834
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
3835
+ $$$1(dropdownToggleList).addClass(ClassName.ACTIVE);
3819
3836
  }
3820
3837
 
3821
3838
  element.setAttribute('aria-expanded', true);
@@ -3887,7 +3904,7 @@
3887
3904
 
3888
3905
  /**
3889
3906
  * --------------------------------------------------------------------------
3890
- * Bootstrap (v4.1.1): index.js
3907
+ * Bootstrap (v4.1.3): index.js
3891
3908
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3892
3909
  * --------------------------------------------------------------------------
3893
3910
  */