j1-template 2021.3.1 → 2022.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/ads/ad.html +14 -14
  3. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +4 -4
  4. data/_includes/themes/j1/layouts/content_generator_post.html +4 -4
  5. data/_includes/themes/j1/modules/navigator/generator.html +9 -11
  6. data/_includes/themes/j1/modules/search/docsearch.html +1 -1
  7. data/_includes/themes/j1/procedures/global/create_bs_button.proc +5 -5
  8. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +5 -3
  9. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  10. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +3 -3
  11. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  12. data/_layouts/default.html +66 -22
  13. data/_layouts/home.html +1 -1
  14. data/_layouts/raw.html +2 -1
  15. data/assets/data/article_navigator/index.html +1 -1
  16. data/assets/data/authclient.html +11 -11
  17. data/assets/data/banner.html +7 -25
  18. data/assets/data/cookieconsent.html +20 -20
  19. data/assets/data/{fam.html → fab.html} +42 -24
  20. data/assets/data/gallery_customizer.html +6 -6
  21. data/assets/data/menu.html +55 -55
  22. data/assets/data/mmenu.html +53 -53
  23. data/assets/data/panel.html +17 -23
  24. data/assets/data/private.json +5 -1
  25. data/assets/data/quicklinks.html +7 -8
  26. data/assets/data/rtext_resizer.html +1 -1
  27. data/assets/data/themes.bootswatch.json +75 -0
  28. data/assets/data/themes.json +6 -6
  29. data/assets/data/translator.html +23 -23
  30. data/assets/error_pages/HTTP445.html +110 -0
  31. data/assets/themes/j1/adapter/js/bmd.js +1 -1
  32. data/assets/themes/j1/adapter/js/clipboard.js +1 -1
  33. data/assets/themes/j1/adapter/js/cookieConsent.js +7 -1
  34. data/assets/themes/j1/adapter/js/{fam.js → fab.js} +121 -116
  35. data/assets/themes/j1/adapter/js/j1.js +242 -174
  36. data/assets/themes/j1/adapter/js/mmenu.js +18 -24
  37. data/assets/themes/j1/adapter/js/navigator.js +6 -4
  38. data/assets/themes/j1/adapter/js/themer.js +13 -4
  39. data/assets/themes/j1/adapter/js/toccer.js +37 -76
  40. data/assets/themes/j1/adapter/js/translator.js +6 -0
  41. data/assets/themes/j1/core/country-flags/css/theme/uno.min.css +15 -0
  42. data/assets/themes/j1/core/css/animate.min.css +1 -1
  43. data/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css +1 -1
  44. data/assets/themes/j1/core/css/icon-fonts/materialdesign-light.min.css +1 -1
  45. data/assets/themes/j1/core/css/icon-fonts/materialdesign.min.css +1 -1
  46. data/assets/themes/j1/core/css/icon-fonts/mdi.css +22307 -0
  47. data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -0
  48. data/assets/themes/j1/core/css/icon-fonts/mdil.css +1222 -0
  49. data/assets/themes/j1/core/css/icon-fonts/mdil.min.css +1 -0
  50. data/assets/themes/j1/core/css/icon-fonts/twemoji.css +4 -0
  51. data/assets/themes/j1/core/css/icon-fonts/twemoji.min.css +1 -1
  52. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +5341 -4730
  53. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -1
  54. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +8301 -0
  55. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.min.css +3 -0
  56. data/assets/themes/j1/core/css/themes/{uno-dark → unodark}/bootstrap.css +5284 -4646
  57. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -0
  58. data/assets/themes/j1/core/css/themes/{uno-light → unolight}/bootstrap.css +12188 -12734
  59. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +23 -0
  60. data/assets/themes/j1/core/css/vendor.css +2 -28
  61. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  62. data/assets/themes/j1/core/js/template.js +8201 -10407
  63. data/assets/themes/j1/core/js/template.min.js +20 -30
  64. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  65. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  66. data/assets/themes/j1/modules/bmd/js/bmd.js +2280 -0
  67. data/assets/themes/j1/modules/bmd/js/bmd.min.js +20 -0
  68. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +5072 -0
  69. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +7 -0
  70. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +1 -0
  71. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +19 -17
  72. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  73. data/assets/themes/j1/modules/datatables/js/datatables.js +1 -1
  74. data/assets/themes/j1/modules/datatables/js/datatables.min.js +5 -5
  75. data/assets/themes/j1/modules/{fam/css/theme/uno/fam.css → fab/css/theme/uno/fab.css} +32 -28
  76. data/assets/themes/j1/modules/{fam/css/theme/uno/fam.min.css → fab/css/theme/uno/fab.min.css} +3 -3
  77. data/assets/themes/j1/modules/{materialize → fab}/js/cash.js +20 -2
  78. data/assets/themes/j1/modules/{fam/js/fam.js → fab/js/fab.js} +4 -2
  79. data/assets/themes/j1/modules/{util → gtag-opt-in}/js/gtag-opt-in.js +15 -1
  80. data/assets/themes/j1/modules/gtag-opt-in/js/gtag-opt-in.min.js +15 -0
  81. data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +3 -3
  82. data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +6 -6
  83. data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +2 -2
  84. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.js +1 -1
  85. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js +1 -1
  86. data/assets/themes/j1/modules/iframeResizer/js/resizer.min.js +1 -1
  87. data/assets/themes/j1/modules/jquery/js/jquery.js +2 -2
  88. data/assets/themes/j1/modules/jquery/js/jquery.min.js +1 -1
  89. data/assets/themes/j1/modules/jquery/js/jqueryUI.js +7 -7
  90. data/assets/themes/j1/modules/jquery/js/jqueryUI.min.js +3 -3
  91. data/assets/themes/j1/modules/lightGallery/js/core/j1/lightgallery-x.min.js +1 -1
  92. data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.min.js +1 -1
  93. data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.min.js +1 -1
  94. data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-x-video.min.js +1 -1
  95. data/assets/themes/j1/modules/lightGallery/js/modules/lg-thumbnail.min.js +4 -1
  96. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  97. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  98. data/assets/themes/j1/modules/lunrSearch/js/mustache.js +1 -1
  99. data/assets/themes/j1/modules/lunrSearch/js/mustache.min.js +1 -1
  100. data/assets/themes/j1/modules/lunrSearch/js/uri.js +1 -1
  101. data/assets/themes/j1/modules/lunrSearch/js/uri.min.js +7 -7
  102. data/assets/themes/j1/modules/materialize/js/autocomplete.js +1 -1
  103. data/assets/themes/j1/modules/materialize/js/bin/materialize.js +12374 -0
  104. data/assets/themes/j1/modules/materialize/js/bin/materialize.min.js +6 -0
  105. data/assets/themes/j1/modules/materialize/js/global.js +1 -1
  106. data/assets/themes/j1/modules/materialize/js/select.js +1 -1
  107. data/assets/themes/j1/modules/materialize/js/{tapTarget.js → tapTarget.cash.js} +1 -1
  108. data/assets/themes/j1/modules/materialize/js/tapTarget.jQuery.js +187 -0
  109. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +1 -1
  110. data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +1 -1
  111. data/assets/themes/j1/modules/msDropdown/css/themes/uno/msDropdown.css +278 -0
  112. data/assets/themes/j1/modules/popper/js/popper.js +1670 -2346
  113. data/assets/themes/j1/modules/popper/js/popper.min.js +6 -4
  114. data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -1
  115. data/assets/themes/j1/modules/scroller/js/scroller.js +2 -2
  116. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  117. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +8 -8
  118. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -431
  119. data/assets/themes/j1/modules/translator/js/translator.js +6 -2
  120. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  121. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +3 -3
  122. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +1 -1
  123. data/assets/themes/j1/modules/videojs/js/video.min.js +2 -2
  124. data/lib/j1/version.rb +3 -3
  125. data/lib/starter_web/Gemfile +2 -2
  126. data/lib/starter_web/_config.yml +21 -24
  127. data/lib/starter_web/_data/_defaults/j1_config.yml +1 -1
  128. data/lib/starter_web/_data/{private.default.yml → _defaults/private.yml} +2 -0
  129. data/lib/starter_web/_data/_defaults/resources.yml +1 -1
  130. data/lib/starter_web/_data/blocks/banner.yml +71 -68
  131. data/lib/starter_web/_data/blocks/defaults/banner.yml +5 -5
  132. data/lib/starter_web/_data/blocks/defaults/panel.yml +3 -3
  133. data/lib/starter_web/_data/blocks/panel.yml +171 -73
  134. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +42 -35
  135. data/lib/starter_web/_data/j1_config.yml +3 -3
  136. data/lib/starter_web/_data/layouts/article_navigator.yml +1 -1
  137. data/lib/starter_web/_data/layouts/blog_archive.yml +1 -1
  138. data/lib/starter_web/_data/layouts/collection.yml +1 -1
  139. data/lib/starter_web/_data/layouts/default.yml +1 -1
  140. data/lib/starter_web/_data/layouts/home.yml +6 -26
  141. data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -1
  142. data/lib/starter_web/_data/layouts/page.yml +1 -1
  143. data/lib/starter_web/_data/layouts/post.yml +1 -1
  144. data/lib/starter_web/_data/modules/defaults/attics.yml +1 -1
  145. data/lib/starter_web/_data/modules/defaults/{fam.yml → fab.yml} +8 -7
  146. data/lib/starter_web/_data/modules/defaults/navigator.yml +3 -0
  147. data/lib/starter_web/_data/modules/defaults/rtable.yml +2 -1
  148. data/lib/starter_web/_data/modules/defaults/scoller.yml +33 -0
  149. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -1
  150. data/lib/starter_web/_data/modules/defaults/toccer.yml +5 -4
  151. data/lib/starter_web/_data/modules/{fam.yml → fab.yml} +31 -31
  152. data/lib/starter_web/_data/modules/scroller.yml +2 -2
  153. data/lib/starter_web/_data/modules/toccer.yml +3 -5
  154. data/lib/starter_web/_data/private.yml +3 -1
  155. data/lib/starter_web/_data/resources.yml +48 -34
  156. data/lib/starter_web/_includes/attributes.asciidoc +121 -122
  157. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  158. data/lib/starter_web/assets/images/pages/roundtrip/500_themes/themes-menu-1280x800.jpg +0 -0
  159. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +1 -4
  160. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +2 -2
  161. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -2
  162. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +2 -2
  163. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -1
  164. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -1
  165. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +2 -2
  166. data/lib/starter_web/index.html +1 -1
  167. data/lib/starter_web/package.json +4 -10
  168. data/lib/starter_web/pages/_test_pages/100_side-bar-tester.adoc +244 -0
  169. data/lib/starter_web/pages/_test_pages/_includes/attributes.asciidoc +110 -0
  170. data/lib/starter_web/pages/_test_pages/_includes/documents/100_gistblock.asciidoc +28 -0
  171. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_info.asciidoc +14 -0
  172. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  173. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  174. data/lib/starter_web/pages/_test_pages/_includes/documents/410_central_success.asciidoc +11 -0
  175. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_left_info.asciidoc +11 -0
  176. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_right_success.asciidoc +11 -0
  177. data/lib/starter_web/pages/_test_pages/_includes/documents/410_table_bs_modal_examples.asciidoc +47 -0
  178. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_info.asciidoc +11 -0
  179. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_left_info.asciidoc +11 -0
  180. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_right_success.asciidoc +11 -0
  181. data/lib/starter_web/pages/_test_pages/_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  182. data/lib/starter_web/pages/_test_pages/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  183. data/lib/starter_web/pages/_test_pages/accordion-01-tester.adoc +220 -0
  184. data/lib/starter_web/pages/_test_pages/accordion-02-tester.adoc +177 -0
  185. data/lib/starter_web/pages/_test_pages/accordion-03-tester.adoc +148 -0
  186. data/lib/starter_web/pages/_test_pages/attribute-changes-01-tester.adoc +226 -0
  187. data/lib/starter_web/pages/_test_pages/backdrop-tester.adoc +109 -0
  188. data/lib/starter_web/pages/_test_pages/button-tester-1.adoc +127 -0
  189. data/lib/starter_web/pages/_test_pages/card-tester.adoc +128 -0
  190. data/lib/starter_web/pages/_test_pages/cookieConsent.adoc +96 -0
  191. data/lib/starter_web/pages/_test_pages/deepl.0.adoc +258 -0
  192. data/lib/starter_web/pages/_test_pages/deepl.adoc +204 -0
  193. data/lib/starter_web/pages/_test_pages/desandro-button.adoc +171 -0
  194. data/lib/starter_web/pages/_test_pages/desandro.adoc +147 -0
  195. data/lib/starter_web/pages/_test_pages/flipcard-1-tester.adoc +308 -0
  196. data/lib/starter_web/pages/_test_pages/formular-01-tester.adoc +167 -0
  197. data/lib/starter_web/pages/_test_pages/formular-02-tester.adoc +727 -0
  198. data/lib/starter_web/pages/_test_pages/google-translate-tester.0.adoc +113 -0
  199. data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +233 -0
  200. data/lib/starter_web/pages/_test_pages/google-translate-tester.3.adoc +149 -0
  201. data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +239 -0
  202. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-2.adoc +183 -0
  203. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-3.adoc +235 -0
  204. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-4.adoc +222 -0
  205. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-5.adoc +119 -0
  206. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.1.adoc +236 -0
  207. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.adoc +225 -0
  208. data/lib/starter_web/pages/_test_pages/list-group-tester.adoc +265 -0
  209. data/lib/starter_web/pages/_test_pages/tictok.adoc +127 -0
  210. data/lib/starter_web/pages/public/about/about_site.adoc +1 -1
  211. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
  212. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
  213. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
  214. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.a2p +1 -1
  215. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  216. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  217. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  218. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +26 -5
  219. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +3 -3
  220. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +3 -3
  221. data/lib/starter_web/pages/public/blog/navigator/archive.html +3 -3
  222. data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
  223. data/lib/starter_web/pages/public/learn/quickstart.adoc +2 -2
  224. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  225. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
  226. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +6 -7
  227. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
  228. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
  229. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +3 -3
  230. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
  231. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +4 -4
  232. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +13 -11
  233. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
  234. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_bottom_info.asciidoc +3 -3
  235. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +1 -1
  236. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +1 -1
  237. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_central_success.asciidoc +1 -1
  238. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_full_height_left_info.asciidoc +1 -1
  239. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_full_height_right_success.asciidoc +1 -1
  240. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_top_info.asciidoc +1 -1
  241. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_top_left_info.asciidoc +1 -1
  242. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/410_top_right_success.asciidoc +1 -1
  243. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +51 -51
  244. data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -2
  245. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +2 -2
  246. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +2 -2
  247. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +6 -6
  248. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +2 -2
  249. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +2 -2
  250. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +2 -2
  251. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +5 -6
  252. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -2
  253. data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +1 -1
  254. data/lib/starter_web/pages/public/panels/intro_panel/_includes/attributes.asciidoc +55 -0
  255. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +53 -5
  256. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1688 -686
  257. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  258. data/lib/starter_web/utilsrv/package.json +2 -1
  259. metadata +80 -29
  260. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +0 -1
  261. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +0 -1
  262. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.css +0 -12177
  263. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.min.css +0 -8
  264. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.full.js +0 -6930
  265. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +0 -6936
  266. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js.map +0 -1
  267. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.min.js +0 -1
  268. data/assets/themes/j1/modules/popper/js/popper.js.map +0 -1
  269. data/assets/themes/j1/modules/util/js/domready.js +0 -146
  270. data/lib/starter_web/_data/_defaults/j1_config.1.yml +0 -478
  271. data/lib/starter_web/_data/_defaults/private.default.yml +0 -119
  272. data/lib/starter_web/_data/blocks/defaults/panel.1.yml +0 -256
  273. data/lib/starter_web/_data/blocks/defaults/panel.2.yml +0 -250
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/event-handler.js","../../js/src/dom/data.js","../../js/src/base-component.js","../../js/src/util/component-functions.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/dom/selector-engine.js","../../js/src/util/swipe.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/util/scrollbar.js","../../js/src/util/backdrop.js","../../js/src/util/focustrap.js","../../js/src/modal.js","../../js/src/offcanvas.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","document","querySelector","getElementFromSelector","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","jquery","nodeType","getElement","length","typeCheckConfig","componentName","config","configTypes","property","Object","keys","expectedTypes","value","valueType","prototype","toString","call","match","toLowerCase","RegExp","test","TypeError","toUpperCase","isVisible","getClientRects","getComputedStyle","getPropertyValue","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","reflow","offsetHeight","getjQuery","jQuery","window","body","DOMContentLoadedCallbacks","isRTL","dir","defineJQueryPlugin","plugin","callback","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","readyState","addEventListener","push","execute","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","index","indexOf","listLength","Math","max","min","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","Set","getUidEvent","uid","getEvent","findHandler","events","delegationSelector","uidEventList","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","has","addHandler","oneOff","wrapFn","relatedTarget","delegateTarget","this","handlers","previousFn","replace","domElements","querySelectorAll","i","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","elementEvent","slice","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","elementMap","Map","Data","set","instance","instanceMap","size","console","error","Array","from","remove","delete","BaseComponent","constructor","_element","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","static","getInstance","VERSION","Error","enableDismissTrigger","component","method","clickEvent","tagName","closest","getOrCreateInstance","Alert","close","_destroyElement","each","data","undefined","SELECTOR_DATA_TOGGLE","Button","toggle","setAttribute","normalizeData","val","normalizeDataKey","chr","button","Manipulator","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","bsKeys","dataset","filter","pureKey","charAt","getDataAttribute","offset","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","position","offsetTop","offsetLeft","SelectorEngine","find","concat","Element","findOne","children","child","matches","parents","ancestor","prev","previous","previousElementSibling","next","nextElementSibling","focusableChildren","focusables","map","join","el","Default","leftCallback","rightCallback","endCallback","DefaultType","Swipe","isSupported","_config","_getConfig","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","absDeltaX","abs","direction","add","pointerType","navigator","maxTouchPoints","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLID","CLASS_NAME_ACTIVE","SELECTOR_ACTIVE_ITEM","KEY_TO_DIRECTION","ArrowLeft","ArrowRight","interval","keyboard","slide","pause","wrap","touch","Carousel","super","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","activeIndex","_getItemIndex","order","_keydown","_addTouchEventListeners","itemImg","swipeConfig","clearTimeout","_getItemByOrder","isNext","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","_setActiveIndicatorElement","activeIndicator","indicators","indicator","parseInt","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","triggerSlidEvent","completeCallBack","action","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","carousel","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","parent","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_initializeChildren","_addAriaAndCollapsedClass","_isShown","hide","show","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","style","scrollSize","selected","triggerArray","isOpen","selectorElements","ESCAPE_KEY","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","reference","display","popperConfig","autoClose","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","focus","_completeHide","destroy","update","Popper","referenceElement","_getPopperConfig","isDisplayStatic","modifiers","modifier","enabled","createPopper","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","placement","options","_selectMenuItem","items","toggles","context","composedPath","isMenuTarget","isActive","stopPropagation","getToggleButton","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","getWidth","documentWidth","clientWidth","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","overflow","styleProp","scrollbarWidth","_applyManipulationCallback","actualValue","removeProperty","callBack","sel","EVENT_MOUSEDOWN","className","rootElement","clickCallback","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","createElement","append","TAB_NAV_BACKWARD","trapElement","autofocus","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","elements","shiftKey","EVENT_HIDDEN","EVENT_SHOW","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_STATIC","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","scrollTop","_triggerBackdropTransition","_resetAdjustments","currentTarget","scrollHeight","isModalOverflowing","clientHeight","overflowY","isBodyOverflowing","paddingLeft","paddingRight","showEvent","allReadyOpen","OPEN_SELECTOR","scroll","Offcanvas","visibility","blur","alreadyOpen","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","innerHTML","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","template","title","delay","html","container","fallbackPlacements","customClass","sanitize","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","shadowRoot","isInTheDom","ownerDocument","getTitle","tipId","prefix","floor","random","getElementById","getUID","attachment","_getAttachment","_addAttachmentClass","_resolvePossibleFunction","prevHoverState","_cleanTipClass","setContent","_sanitizeAndSetContent","content","templateElement","setElementContent","textContent","updateAttachment","_getDelegateConfig","phase","_handlePopperPlacementChange","onFirstUpdate","_getBasicClassPrefix","triggers","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","token","state","popper","Popover","_getContent","SELECTOR_LINK_ITEMS","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","listGroup","navItem","activeNodes","node","spy","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","listElement","itemSelector","hideEvent","complete","active","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","_onInteraction","isInteracting"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return Object.prototype.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = `#${hrefAttr.split('#')[1]}`\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0]\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst getElement = obj => {\n // it's a jQuery object or a node element\n if (isElement(obj)) {\n return obj.jquery ? obj[0] : obj\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return document.querySelector(obj)\n }\n\n return null\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = callback => {\n if (typeof callback === 'function') {\n callback()\n }\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\n if (index === -1) {\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0]\n }\n\n const listLength = list.length\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getElementFromSelector,\n getjQuery,\n getNextActiveElement,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst customEventsRegex = /^(mouseenter|mouseleave)/i\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n event.delegateTarget = element\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n event.delegateTarget = target\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (const uidEvent of uidEventList) {\n const event = events[uidEvent]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n let typeEvent = getTypeEvent(originalTypeEvent)\n const isNative = nativeEvents.has(typeEvent)\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (customEventsRegex.test(originalTypeEvent)) {\n const wrapFn = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n if (delegationFn) {\n delegationFn = wrapFn(delegationFn)\n } else {\n handler = wrapFn(handler)\n }\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey]\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n const storeElementEvent = events[typeEvent] || {}\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers]\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.has(typeEvent)\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, { bubbles, cancelable: true })\n }\n\n // merge custom information in our event\n if (typeof args !== 'undefined') {\n for (const key of Object.keys(args)) {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n }\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\nimport {\n executeAfterTransition,\n getElement\n} from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.1.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent {\n constructor(element) {\n element = getElement(element)\n\n if (!element) {\n return\n }\n\n this._element = element\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\" for each component!')\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { getElementFromSelector, isDisabled } from './index'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this)\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible } from '../util/index'\n\n/**\n * Constants\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (ancestor.matches(selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(', ')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, typeCheckConfig } from './index'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n leftCallback: null,\n rightCallback: null,\n endCallback: null\n}\n\nconst DefaultType = {\n leftCallback: '(function|null)',\n rightCallback: '(function|null)',\n endCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe {\n constructor(element, config) {\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport Swipe from './util/swipe'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const itemImg of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(DIRECTION_LEFT),\n rightCallback: () => this._slide(DIRECTION_RIGHT),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(direction)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap)\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (const indicator of indicators) {\n if (Number.parseInt(indicator.getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicator.classList.add(CLASS_NAME_ACTIVE)\n indicator.setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n if (this._isSliding) {\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const triggerSlidEvent = () => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(triggerSlidEvent, 0)\n }\n\n this._queueCallback(completeCallBack, activeElement, true)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n triggerSlidEvent()\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static carouselInterface(element, config) {\n const data = Carousel.getOrCreateInstance(element, config)\n\n let { _config } = data\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 (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Carousel.getInstance(target).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.carouselInterface(carousel, Carousel.getInstance(carousel))\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getSelectorFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n toggle: true,\n parent: null\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(null|element)'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._isTransitioning = false\n this._config = this._getConfig(config)\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const elem = getElementFromSelector(trigger)\n\n if (elem && !this._isShown(elem)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(elem => !children.includes(elem))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const elem of triggerArray) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const _config = {}\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n const data = Collapse.getOrCreateInstance(this, _config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, 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.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport {\n defineJQueryPlugin,\n getElement,\n getElementFromSelector,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_NAVBAR = 'navbar'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\n\nconst Default = {\n offset: [0, 2],\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null,\n autoClose: true\n}\n\nconst DefaultType = {\n offset: '(array|string|function)',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)',\n autoClose: '(boolean|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n // Totally disable Popper for Dropdowns in Navbar\n if (this._inNavbar) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'none')\n } else {\n this._createPopper(parent)\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 && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const elem of [].concat(...document.body.children)) {\n EventHandler.on(elem, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\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 for (const elem of [].concat(...document.body.children)) {\n EventHandler.off(elem, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper(parent) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n const isDisplayStatic = popperConfig.modifiers.find(modifier => modifier.name === 'applyStyles' && modifier.enabled === false)\n\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n\n if (isDisplayStatic) {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static')\n }\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(el => isVisible(el))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const toggle of toggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n if (!context._isShown()) {\n continue\n }\n\n const relatedTarget = {\n relatedTarget: context._element\n }\n\n if (event) {\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (!isActive && event.key === ESCAPE_KEY) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (isDisabled(this)) {\n return\n }\n\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (event.key === ESCAPE_KEY) {\n instance.hide()\n return\n }\n\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\n if (!isActive) {\n instance.show()\n }\n\n instance._selectMenuItem(event)\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\nimport { isElement } from './index'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, 'paddingRight')\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProp)\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _saveInitialAttribute(element, styleProp) {\n const actualValue = element.style[styleProp]\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProp) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n } else {\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel)\n }\n }\n }\n}\n\nexport default ScrollBarHelper\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n className: 'modal-backdrop',\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body', // give the choice to place backdrop under different elements\n clickCallback: null\n}\n\nconst DefaultType = {\n className: 'string',\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n if (this._config.isAnimated) {\n reflow(this._getElement())\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n this._config.rootElement.append(this._getElement())\n\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\nimport { typeCheckConfig } from './index'\n\n/**\n * Constants\n */\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nconst Default = {\n trapElement: null, // The element to trap focus inside of\n autofocus: true\n}\n\nconst DefaultType = {\n trapElement: 'element',\n autofocus: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap {\n constructor(config) {\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n // Public\n activate() {\n const { trapElement, autofocus } = this._config\n\n if (this._isActive) {\n return\n }\n\n if (autofocus) {\n trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n _handleFocusin(event) {\n const { target } = event\n const { trapElement } = this._config\n\n if (target === document || target === trapElement || trapElement.contains(target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n}\n\nexport default FocusTrap\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isRTL,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport ScrollBarHelper from './util/scrollbar'\nimport BaseComponent from './base-component'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n this._queueCallback(() => this._hideModal(), this._element, isAnimated)\n }\n\n dispose() {\n for (const htmlElement of [window, this._dialog]) {\n EventHandler.off(htmlElement, EVENT_KEY)\n }\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated)\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _showBackdrop(callback) {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === true) {\n this.hide()\n } else if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n }\n })\n\n this._backdrop.show(callback)\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const { classList, scrollHeight, style } = this._element\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight\n\n // return if the following background transition hasn't yet completed\n if ((!isModalOverflowing && style.overflowY === 'hidden') || classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden'\n }\n\n classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n this._queueCallback(() => {\n style.overflowY = ''\n }, this._dialog)\n }\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if ((!isBodyOverflowing && isModalOverflowing && !isRTL()) || (isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${scrollbarWidth}px`\n }\n\n if ((isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking moddal toggler while another one is open\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (allReadyOpen) {\n Modal.getInstance(allReadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport ScrollBarHelper from './util/scrollbar'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport Backdrop from './util/backdrop'\nimport FocusTrap from './util/focustrap'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n if (!this._config.scroll) {\n this._focustrap.activate()\n }\n\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _initializeBackDrop() {\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible: this._config.backdrop,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: () => this.hide()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const el of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(el).show()\n }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport {\n defineJQueryPlugin,\n findShadowRoot,\n getElement,\n getUID,\n isElement,\n isRTL,\n noop,\n typeCheckConfig\n} from './util/index'\nimport { DefaultAllowlist, sanitizeHtml } from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div>' +\n '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n}\n\nconst 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: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n}\n\nconst 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 * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element)\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._config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get Event() {\n return Event\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const context = this._initializeOnDelegatedTarget(event)\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\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 EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this.tip) {\n this.tip.remove()\n }\n\n this._disposePopper()\n super.dispose()\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = shadowRoot === null ?\n this._element.ownerDocument.documentElement.contains(this._element) :\n shadowRoot.contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`\n // This will be removed later in favor of a `setContent` method\n if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {\n this._disposePopper()\n this.tip.remove()\n this.tip = null\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this._element.setAttribute('aria-describedby', tipId)\n\n if (this._config.animation) {\n tip.classList.add(CLASS_NAME_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\n Data.set(tip, this.constructor.DATA_KEY, this)\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.Event.INSERTED)\n }\n\n if (this._popper) {\n this._popper.update()\n } else {\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n const customClass = this._resolvePossibleFunction(this._config.customClass)\n if (customClass) {\n tip.classList.add(...customClass.split(' '))\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 for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n const prevHoverState = this._hoverState\n\n this._hoverState = null\n EventHandler.trigger(this._element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(complete, this.tip, isAnimated)\n }\n\n hide() {\n if (!this._popper) {\n return\n }\n\n const tip = this.getTipElement()\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (this._hoverState !== HOVER_STATE_SHOW) {\n tip.remove()\n }\n\n this._cleanTipClass()\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)\n\n this._disposePopper()\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_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 for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n const isAnimated = this.tip.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(complete, this.tip, isAnimated)\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.update()\n }\n }\n\n // Protected\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this._config.template\n\n const tip = element.children[0]\n this.setContent(tip)\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n\n this.tip = tip\n return this.tip\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER)\n }\n\n _sanitizeAndSetContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!content && templateElement) {\n templateElement.remove()\n return\n }\n\n // we use append for html objects to maintain js events\n this.setElementContent(templateElement, content)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (isElement(content)) {\n content = getElement(content)\n\n // content is a DOM node or a jQuery\n if (this._config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.append(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this._config.html) {\n if (this._config.sanitize) {\n content = sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn)\n }\n\n element.innerHTML = content // lgtm [js/xss-through-dom]\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n const title = this._element.getAttribute('data-bs-original-title') || this._config.title\n\n return this._resolvePossibleFunction(title)\n }\n\n updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end'\n }\n\n if (attachment === 'left') {\n return 'start'\n }\n\n return attachment\n }\n\n // Private\n _initializeOnDelegatedTarget(event, context) {\n return context || this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(val => Number.parseInt(val, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(content) {\n return typeof content === 'function' ? content.call(this._element) : content\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: data => this._handlePopperPlacementChange(data)\n }\n ],\n onFirstUpdate: data => {\n if (data.options.placement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n }\n }\n\n return {\n ...defaultBsPopperConfig,\n ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event => this.toggle(event))\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\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 EventHandler.on(this._element, eventIn, this._config.selector, event => this._enter(event))\n EventHandler.on(this._element, eventOut, this._config.selector, event => this._leave(event))\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._config.selector) {\n this._config = {\n ...this._config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n const originalTitleType = typeof this._element.getAttribute('data-bs-original-title')\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '')\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context._config.delay || !context._config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context._config.delay.show)\n }\n\n _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context)\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = context._element.contains(event.relatedTarget)\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context._config.delay || !context._config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context._config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttr of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr]\n }\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const key in this._config) {\n if (this.constructor.Default[key] !== this._config[key]) {\n config[key] = this._config[key]\n }\n }\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const basicClassPrefixRegex = new RegExp(`(^|\\\\s)${this._getBasicClassPrefix()}\\\\S+`, 'g')\n const tabClass = tip.getAttribute('class').match(basicClassPrefixRegex)\n if (tabClass !== null && tabClass.length > 0) {\n for (const tClass of tabClass.map(token => token.trim())) {\n tip.classList.remove(tClass)\n }\n }\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX\n }\n\n _handlePopperPlacementChange(popperData) {\n const { state } = popperData\n\n if (!state) {\n return\n }\n\n this.tip = state.elements.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(state.placement))\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Tooltip from './tooltip'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst 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 * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get Event() {\n return Event\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent(tip) {\n this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE)\n this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT)\n }\n\n // Private\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n _getBasicClassPrefix() {\n return CLASS_PREFIX\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElement,\n getSelectorFromElement,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._scrollElement = this._element.tagName === 'BODY' ? window : this._element\n this._config = this._getConfig(config)\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, () => this._process())\n\n this.refresh()\n this._process()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)\n .map(element => {\n const targetSelector = getSelectorFromElement(element)\n const target = targetSelector ? SelectorEngine.findOne(targetSelector) : null\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n\n for (const item of targets) {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n }\n }\n\n dispose() {\n EventHandler.off(this._scrollElement, EVENT_KEY)\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n config.target = getElement(config.target) || document.documentElement\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n 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 :\n 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 + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n 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' || scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = SELECTOR_LINK_ITEMS.split(',')\n .map(selector => `${selector}[data-bs-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','), this._config.target)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n } else {\n for (const listGroup of SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP)) {\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 for (const item of SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n\n // Handle special case when .nav-link is inside .nav-item\n for (const navItem of SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)) {\n for (const item of SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)) {\n item.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n const activeNodes = SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n\n for (const node of activeNodes) {\n node.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = ScrollSpy.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {\n new ScrollSpy(spy) // eslint-disable-line no-new\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(ScrollSpy)\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n isDisabled,\n reflow\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * Class definition\n */\n\nclass Tab extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE))) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = previous ?\n EventHandler.trigger(previous, EVENT_HIDE, { relatedTarget: this._element }) :\n null\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(this._element, listElement)\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, { relatedTarget: this._element })\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget: previous })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n // Private\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(element, active, callback)\n\n if (active && isTransitioning) {\n active.classList.remove(CLASS_NAME_SHOW)\n this._queueCallback(complete, element, true)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n let parent = element.parentNode\n if (parent && parent.nodeName === 'LI') {\n parent = parent.parentNode\n }\n\n if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n for (const dropdown of SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement)) {\n dropdown.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const data = Tab.getOrCreateInstance(this)\n data.show()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tab)\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport BaseComponent from './base-component'\nimport { enableDismissTrigger } from './util/component-functions'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`\nconst EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_FOCUSOUT = `focusout${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide' // @deprecated - kept here only for backwards compatibility\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 5000\n}\n\n/**\n * Class definition\n */\n\nclass Toast extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._timeout = null\n this._hasMouseInteraction = false\n this._hasKeyboardInteraction = false\n this._setListeners()\n }\n\n // Getters\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n this._maybeScheduleHide()\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE) // @deprecated\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE) // @deprecated\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.add(CLASS_NAME_SHOWING)\n this._queueCallback(complete, this._element, this._config.animation)\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n super.dispose()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType)\n\n return config\n }\n\n _maybeScheduleHide() {\n if (!this._config.autohide) {\n return\n }\n\n if (this._hasMouseInteraction || this._hasKeyboardInteraction) {\n return\n }\n\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n\n _onInteraction(event, isInteracting) {\n switch (event.type) {\n case 'mouseover':\n case 'mouseout':\n this._hasMouseInteraction = isInteracting\n break\n case 'focusin':\n case 'focusout':\n this._hasKeyboardInteraction = isInteracting\n break\n default:\n break\n }\n\n if (isInteracting) {\n this._clearTimeout()\n return\n }\n\n const nextElement = event.relatedTarget\n if (this._element === nextElement || this._element.contains(nextElement)) {\n return\n }\n\n this._maybeScheduleHide()\n }\n\n _setListeners() {\n EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false))\n EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true))\n EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false))\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Toast.getOrCreateInstance(this, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Toast)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Toast)\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.1.3): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Offcanvas from './src/offcanvas'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Offcanvas,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}